Merge branch 'maint'

This commit is contained in:
John Ralls 2020-12-10 15:04:55 -08:00
commit 6df3ce8880
147 changed files with 4707 additions and 3719 deletions

View File

@ -1,9 +1,9 @@
name: ci-tests-docker
on: [push]
on: [push, pull_request]
jobs:
ci_tests_archlinux:
runs-on: ubuntu-latest
name: Test Docker Action
name: Arch Linux (via Docker) CI
steps:
- name: Checkout
uses: actions/checkout@v2

View File

@ -1,14 +1,15 @@
name: ci-tests
on: [push]
on: [push, pull_request]
jobs:
ci_tests_ubuntu-18:
runs-on: ubuntu-18.04
name: Ubuntu-18.04 Tests
name: Ubuntu-18.04 CI Tests
env:
TZ: America/Los_Angeles
steps:
- name: Checkout
uses: actions/checkout@v2
- run: sudo apt-get update
- name: Install additional dependencies
run: sudo apt-get install -y cmake libxslt-dev xsltproc ninja-build libboost-all-dev libgtk-3-dev guile-2.2-dev libgwengui-gtk3-dev libaqbanking-dev libofx-dev libdbi-dev libdbd-sqlite3 libwebkit2gtk-4.0-dev googletest
- name: Install language packs.
@ -36,7 +37,7 @@ jobs:
path: ${{ github.workspace }}/build/Testing/Temporary/LastTest.log
ci_tests_ubuntu-20:
runs-on: ubuntu-20.04
name: Ubuntu-20.04 Tests
name: Ubuntu-20.04 CI Tests
env:
TZ: America/Los_Angeles
steps:
@ -49,7 +50,7 @@ jobs:
sudo apt-get update -y
sudo apt-get upgrade -y
- name: Install additional dependencies
run: sudo apt-get install -y cmake libxslt-dev xsltproc ninja-build libboost-all-dev libgtk-3-dev guile-2.2-dev libgwengui-gtk3-dev libaqbanking-dev libofx-dev libdbi-dev libdbd-sqlite3 libwebkit2gtk-4.0-dev googletest
run: sudo apt-get install -y cmake libxslt-dev xsltproc ninja-build libboost-all-dev libgtk-3-dev guile-3.0-dev libgwengui-gtk3-dev libaqbanking-dev libofx-dev libdbi-dev libdbd-sqlite3 libwebkit2gtk-4.0-dev googletest
- name: Install language packs.
run: sudo apt-get --reinstall install -y language-pack-en language-pack-fr
- run: |

View File

@ -1,9 +1,9 @@
name: mac-tests
on: [push]
on: [push, pull_request]
jobs:
ci_tests_mac:
runs-on: macos-10.15
name: macOS Tests
name: macOS CI Tests
env:
TZ: America/Los_Angeles
steps:

View File

@ -17,8 +17,22 @@
;; Boston, MA 02110-1301, USA gnu@gnu.org
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-module (gnucash engine business-core))
(eval-when (compile load eval expand)
(load-extension "libgnucash-guile" "gnc_guile_bindings_init"))
(use-modules (sw_engine))
(use-modules (srfi srfi-1))
(export gnc:owner-get-address)
(export gnc:owner-get-name-dep)
(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)
(let ((type (gncOwnerGetType owner)))
(cond

View File

@ -23,6 +23,14 @@
;; Boston, MA 02110-1301, USA gnu@gnu.org
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-module (gnucash engine commodity-table))
(export GNC_COMMODITY_NS_CURRENCY)
(export GNC_COMMODITY_NS_NASDAQ)
(export GNC_COMMODITY_NS_NYSE)
(export GNC_COMMODITY_NS_AMEX)
(export GNC_COMMODITY_NS_EUREX)
(export GNC_COMMODITY_NS_MUTUAL)
(define GNC_COMMODITY_NS_CURRENCY "CURRENCY")

View File

@ -24,24 +24,35 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-module (gnucash core-utils)
#:export (N_
G_
NG_
C_
gnc:string-locale<?
gnc:string-locale>?
gnc:version))
(define-module (gnucash core-utils))
;; Guile 2 needs to find the symbols from the extension at compile time already
(eval-when (compile load eval expand)
(load-extension "libgnucash-guile" "gnc_guile_bindings_init"))
(use-modules (sw_core_utils))
(use-modules (ice-9 i18n))
;; Export the swig-wrapped symbols in the public interface of this module
(module-use! (module-public-interface (current-module))
(resolve-interface '(sw_core_utils)))
(export N_)
(export G_)
(export NG_)
(export C_)
(export load-and-reexport)
(export gnc:string-locale<?)
(export gnc:string-locale>?)
(export gnc:version)
;; loads modules and re-exports all its public interface into the
;; current module
(define-syntax load-and-reexport
(syntax-rules ()
((_ (mod ...) ...)
(begin
(use-modules (mod ...))
...
(module-use! (module-public-interface (current-module))
(resolve-interface '(mod ...)))
...))))
(load-and-reexport (sw_core_utils))
(define gnc:version (gnc-version))
@ -49,7 +60,7 @@
(define G_ gnc:gettext)
(define NG_ gnc:ngettext)
(define C_ gnc:C-gettext)
(define-syntax-rule (N_ x) x)
(define N_ identity)
;; the following will define _ to call gnc:gettext for guile up to
;; 2.2. It may be removed in the future when minimum guile is 3.0.

View File

@ -19,93 +19,45 @@
(define-module (gnucash engine))
(use-modules (srfi srfi-1)
(srfi srfi-13))
(eval-when (compile load eval expand)
(load-extension "libgnucash-guile" "gnc_guile_bindings_init"))
(eval-when
(compile load eval expand)
(load-extension "libgnucash-guile" "gnc_guile_bindings_init"))
(use-modules (sw_engine))
(use-modules (srfi srfi-1))
(use-modules (srfi srfi-13))
(use-modules (gnucash core-utils))
; Export the swig-wrapped symbols in the public interface of this module
(let ((i (module-public-interface (current-module))))
(module-use! i (resolve-interface '(sw_engine))))
;; gnc-numeric.scm
(export GNC-RND-FLOOR)
(export GNC-RND-CEIL)
(export GNC-RND-TRUNC)
(export GNC-RND-PROMOTE)
(export GNC-RND-ROUND-HALF-DOWN)
(export GNC-RND-ROUND-HALF-UP)
(export GNC-RND-ROUND)
(export GNC-RND-NEVER)
(export GNC-DENOM-AUTO)
(export GNC-DENOM-REDUCE)
(export GNC-DENOM-FIXED)
(export GNC-DENOM-LCD)
(export GNC-DENOM-SIGFIG)
(export GNC-DENOM-SIGFIGS)
(export GNC-ERROR-OK)
(export GNC-ERROR-ARG)
(export GNC-ERROR-OVERFLOW)
(export GNC-ERROR-DENOM-DIFF)
(export GNC-ERROR-REMAINDER)
(export <gnc-monetary>)
(export gnc:gnc-monetary?)
(export gnc:make-gnc-monetary)
(export gnc:gnc-monetary-commodity)
(export gnc:gnc-monetary-amount)
(export gnc:monetary-neg)
;; commodity-table.scm
(export GNC_COMMODITY_NS_CURRENCY)
(export GNC_COMMODITY_NS_NASDAQ)
(export GNC_COMMODITY_NS_NYSE)
(export GNC_COMMODITY_NS_AMEX)
(export GNC_COMMODITY_NS_EUREX)
(export GNC_COMMODITY_NS_MUTUAL)
; business-core.scm
(export gnc:owner-get-address)
(export gnc:owner-get-name-dep)
(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)
(load-from-path "gnucash/engine/gnc-numeric")
(load-from-path "gnucash/engine/commodity-table")
(load-from-path "gnucash/engine/business-core")
;; 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.")
(let ((descendants (or (gnc-account-get-descendants-sorted account) '())))
(map thunk descendants)))
(define (gnc:account-map-children thunk account)
(issue-deprecation-warning "gnc:account-map-children is deprecated.")
(let ((children (or (gnc-account-get-children-sorted account) '())))
(map thunk children)))
;; 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.")
(apply max
(map (lambda (acct)
(let ((acct-depth (gnc-account-get-current-depth acct)))
(+ acct-depth (- (gnc-account-get-tree-depth acct) 1))))
accounts)))
(load-and-reexport (sw_engine)
(gnucash engine business-core)
(gnucash engine commodity-table)
(gnucash engine gnc-numeric))
(export gnc:account-map-descendants)
(export gnc:account-map-children)
(export account-full-name<?)
(export accounts-get-children-depth)
;; 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))))

View File

@ -21,8 +21,36 @@
;; Boston, MA 02110-1301, USA gnu@gnu.org
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-module (gnucash engine gnc-numeric))
(use-modules (srfi srfi-9))
(export GNC-RND-FLOOR)
(export GNC-RND-CEIL)
(export GNC-RND-TRUNC)
(export GNC-RND-PROMOTE)
(export GNC-RND-ROUND-HALF-DOWN)
(export GNC-RND-ROUND-HALF-UP)
(export GNC-RND-ROUND)
(export GNC-RND-NEVER)
(export GNC-DENOM-AUTO)
(export GNC-DENOM-REDUCE)
(export GNC-DENOM-FIXED)
(export GNC-DENOM-LCD)
(export GNC-DENOM-SIGFIG)
(export GNC-DENOM-SIGFIGS)
(export GNC-ERROR-OK)
(export GNC-ERROR-ARG)
(export GNC-ERROR-OVERFLOW)
(export GNC-ERROR-DENOM-DIFF)
(export GNC-ERROR-REMAINDER)
(export :gnc-monetary)
(export gnc:gnc-monetary?)
(export gnc:make-gnc-monetary)
(export gnc:gnc-monetary-commodity)
(export gnc:gnc-monetary-amount)
(export gnc:monetary-neg)
;; use 'logior' in guile to bit-combine RND and DENOM flags.
(define GNC-RND-FLOOR 1)

View File

@ -17,39 +17,26 @@
(define-module (gnucash utilities))
;; Turn off the scheme compiler's "possibly unbound variable" warnings.
;; In guile 2.0 we get nearly 7500 of them loading the scheme files.
;; This is the default value for auto-compilation-options without "unbound-variable".
;; See module/ice-9/boot-9.scm */
(set! %auto-compilation-options
'(#:warnings (arity-mismatch format duplicate-case-datum bad-case-datum)))
(use-modules (gnucash core-utils))
(use-modules (gnucash engine))
;; Load the srfis (eventually, we should see where these are needed
;; and only have the use-modules statements in those files).
(use-modules (srfi srfi-1))
(use-modules (srfi srfi-8))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Exports
;; from utilities.scm
(export gnc:warn)
(export gnc:error)
(export gnc:msg)
(export gnc:debug)
(export gnc:gui-warn)
(export gnc:gui-error)
(export gnc:gui-msg)
(export addto!)
(export sort-and-delete-duplicates)
(export gnc:list-flatten)
;; Do this stuff very early -- but other than that, don't add any
;; executable code until the end of the file if you can help it.
;; These are needed for a guile 1.3.4 bug
(debug-enable 'backtrace)
(read-enable 'positions)
(debug-set! stack 200000)
(export traverse-list->vec)
(export traverse-vec->list)
(export gnc:substring-replace-from-to)
(export gnc:substring-replace)
(export gnc:html-string-sanitize)
(define (strify items)
(string-join (map (lambda (x) (format #f "~A" x)) items) ""))
@ -72,26 +59,24 @@
;; and will be redefined in UI initialization to display dialog
;; messages
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-public (gnc:gui-warn str1 str2) (gnc:warn str1))
(define-public (gnc:gui-error str1 str2) (gnc:error str1))
(define-public (gnc:gui-msg str1 str2) (gnc:msg str1))
(define (gnc:gui-warn str1 str2) (gnc:warn str1))
(define (gnc:gui-error str1 str2) (gnc:error str1))
(define (gnc:gui-msg str1 str2) (gnc:msg str1))
(define-syntax addto!
(syntax-rules ()
((addto! alist element)
(set! alist (cons element alist)))))
(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-public (traverse-list->vec lst)
(define (traverse-list->vec lst)
(cond
((list? lst) (list->vector (map traverse-list->vec lst)))
(else lst)))
(define-public (traverse-vec->list vec)
(define (traverse-vec->list vec)
(cond
((vector? vec) (map traverse-vec->list (vector->list vec)))
(else vec)))
@ -136,7 +121,7 @@
;; returns "fooxyzfooxyz".
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-public (gnc:substring-replace s1 s2 s3)
(define (gnc:substring-replace s1 s2 s3)
(string-replace-substring s1 s2 s3))
@ -153,7 +138,7 @@
;; start>1 and end-after<=0 will the replace from "start" until end of file
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-public (gnc:substring-replace-from-to s1 s2 s3 start end-after)
(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))
@ -163,7 +148,7 @@
;; function to sanitize strings. the resulting string can be safely
;; added to html.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-public (gnc:html-string-sanitize str)
(define (gnc:html-string-sanitize str)
(with-output-to-string
(lambda ()
(string-for-each

View File

@ -38,8 +38,8 @@
Contas para empréstimo de habitação e juros associados
</gnc-act:short-description>
<gnc-act:long-description>
Desejará seleccionar este conjunto de contas caso tenha contraido um
empréstimo para habitação (emprétimo habitação, juro do empréstimo).
Desejará seleccionar este conjunto de contas caso tenha contraído um
empréstimo para habitação (empréstimo habitação, juro do empréstimo).
</gnc-act:long-description>
<gnc:account version="2.0.0">
<act:name>Root Account</act:name>

View File

@ -32,7 +32,7 @@
xmlns:tte="http://www.gnucash.org/XML/tte"
xmlns:vendor="http://www.gnucash.org/XML/vendor">
<gnc-act:title>
Receitas da esposa
Receitas do cônjuge
</gnc-act:title>
<gnc-act:short-description>
Contas de receitas do cônjuge
@ -59,7 +59,7 @@
<act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
</gnc:account>
<gnc:account version="2.0.0">
<act:name>Salário (esposa)</act:name>
<act:name>Salário (cônjuge)</act:name>
<act:id type="new">7c4495ff132d100b0aa339ce683200dd</act:id>
<act:type>INCOME</act:type>
<act:commodity>
@ -81,14 +81,14 @@
<act:parent type="new">1972cce2e2364f95b2b0bc014502661d</act:parent>
</gnc:account>
<gnc:account version="2.0.0">
<act:name>Impostos (esposa)</act:name>
<act:name>Impostos (cônjuge)</act:name>
<act:id type="new">3cd0ca7d6b0e5f44e4cde2851c3ff387</act:id>
<act:type>EXPENSE</act:type>
<act:commodity>
<cmdty:space>ISO4217</cmdty:space>
<cmdty:id>EUR</cmdty:id>
</act:commodity>
<act:description>Impostos (esposa)</act:description>
<act:description>Impostos (cônjuge)</act:description>
<act:parent type="new">1884bbd7394883ebafec8b9e2eb091a4</act:parent>
</gnc:account>
<gnc:account version="2.0.0">

View File

@ -653,7 +653,7 @@ search_cancel_cb (GtkButton *button, GNCSearchWindow *sw)
static void
search_help_cb (GtkButton *button, GNCSearchWindow *sw)
{
gnc_gnome_help (HF_HELP, HL_FIND_TRANSACTIONS);
gnc_gnome_help (GTK_WINDOW(sw->dialog), HF_HELP, HL_FIND_TRANSACTIONS);
}
static void

View File

@ -261,17 +261,16 @@ install(FILES ${gnome_utils_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gnu
set(GUILE_DEPENDS gnc-gnome-utils scm-engine scm-app-utils)
gnc_add_scheme_targets(scm-gnome-utils-1
SOURCES gnome-utils.scm
OUTPUT_DIR gnucash
DEPENDS "${GUILE_DEPENDS}")
gnc_add_scheme_targets(scm-gnome-utils-2
SOURCES gnc-menu-extensions.scm
OUTPUT_DIR "gnucash/gnome-utils"
DEPENDS "${GUILE_DEPENDS}"
MAKE_LINKS)
gnc_add_scheme_targets(scm-gnome-utils-2
SOURCES gnome-utils.scm
OUTPUT_DIR gnucash
DEPENDS "scm-gnome-utils-1")
add_custom_target(scm-gnome-utils ALL DEPENDS scm-gnome-utils-2 scm-gnome-utils-1)
set_local_dist(gnome_utils_DIST_local CMakeLists.txt ${gnome_utils_SOURCES} ${gnome_utils_HEADERS}

View File

@ -1020,11 +1020,11 @@ gnc_account_window_response_cb (GtkDialog *dialog,
{
case NEW_ACCOUNT:
DEBUG("new acct dialog, HELP");
gnc_gnome_help(HF_HELP, HL_ACC);
gnc_gnome_help (GTK_WINDOW(dialog), HF_HELP, HL_ACC);
break;
case EDIT_ACCOUNT:
DEBUG("edit acct dialog, HELP");
gnc_gnome_help(HF_HELP, HL_ACCEDIT);
gnc_gnome_help (GTK_WINDOW(dialog), HF_HELP, HL_ACCEDIT);
break;
default:
g_assert_not_reached ();

View File

@ -279,7 +279,7 @@ gnc_book_close_response_cb(GtkDialog *dialog, gint response, GtkDialog *unused)
switch (response)
{
case GTK_RESPONSE_HELP:
gnc_gnome_help(HF_HELP, HL_CLOSE_BOOK);
gnc_gnome_help (GTK_WINDOW(dialog), HF_HELP, HL_CLOSE_BOOK);
break;
case GTK_RESPONSE_OK:
cbw->close_date = gnc_date_edit_get_date(GNC_DATE_EDIT(cbw->close_date_widget));

View File

@ -106,9 +106,6 @@ struct commodity_window
typedef struct select_commodity_window SelectCommodityWindow;
typedef struct commodity_window CommodityWindow;
static gnc_commodity_help_callback help_callback = NULL;
/* The commodity selection window */
static SelectCommodityWindow *
gnc_ui_select_commodity_create(const gnc_commodity * orig_sel,
@ -129,17 +126,6 @@ gboolean gnc_ui_commodity_dialog_to_object(CommodityWindow * w);
static void gnc_ui_select_commodity_response_cb (GtkDialog * dialog, gint response, gpointer data);
#endif
/********************************************************************
* gnc_ui_commodity_set_help_callback
********************************************************************/
void
gnc_ui_commodity_set_help_callback (gnc_commodity_help_callback cb)
{
help_callback = cb;
}
/********************************************************************
* gnc_ui_select_commodity_modal_full()
********************************************************************/
@ -890,7 +876,6 @@ gnc_ui_build_commodity_dialog(const char * selected_namespace,
gboolean edit)
{
CommodityWindow * retval = g_new0(CommodityWindow, 1);
GtkWidget *help_button;
GtkWidget *box;
GtkWidget *menu;
GtkWidget *widget, *sec_label;
@ -920,10 +905,6 @@ gnc_ui_build_commodity_dialog(const char * selected_namespace,
retval->edit_commodity = NULL;
help_button = GTK_WIDGET(gtk_builder_get_object (builder, "help_button"));
if (!help_callback)
gtk_widget_hide (help_button);
/* Get widget pointers */
retval->fullname_entry = GTK_WIDGET(gtk_builder_get_object (builder, "fullname_entry"));
retval->mnemonic_entry = GTK_WIDGET(gtk_builder_get_object (builder, "mnemonic_entry"));
@ -1158,8 +1139,7 @@ gnc_ui_common_commodity_modal(gnc_commodity *commodity,
break;
case GTK_RESPONSE_HELP:
DEBUG("case HELP");
if (help_callback)
help_callback ();
gnc_gnome_help (GTK_WINDOW(win->dialog), HF_HELP, HL_COMMODITY);
break;
default: /* Cancel, Escape, Close, etc. */
DEBUG("default: %d", value);

View File

@ -57,16 +57,6 @@ typedef enum
anything. */
} dialog_commodity_mode;
typedef void (* gnc_commodity_help_callback)(void);
/** This function is used to set the action routine for the help
* button in the commodity dialog windows. If the action routine is
* unset, the help button will not be visible to the user.
*
* @param cb The function to be called when the user clicks the help
* button. */
void gnc_ui_commodity_set_help_callback (gnc_commodity_help_callback cb);
/** @name Commodity Selection */
/** @{ */

View File

@ -125,7 +125,7 @@ gnc_ui_file_access_response_cb(GtkDialog *dialog, gint response, GtkDialog *unus
switch ( response )
{
case GTK_RESPONSE_HELP:
gnc_gnome_help( HF_HELP, HL_GLOBPREFS );
gnc_gnome_help (GTK_WINDOW(dialog), HF_HELP, HL_GLOBPREFS );
break;
case GTK_RESPONSE_OK:

View File

@ -1197,7 +1197,7 @@ gnc_preferences_response_cb (GtkDialog *dialog, gint response, GtkDialog *unused
switch (response)
{
case GTK_RESPONSE_HELP:
gnc_gnome_help (HF_HELP, HL_GLOBPREFS);
gnc_gnome_help (GTK_WINDOW(dialog), HF_HELP, HL_GLOBPREFS);
break;
case GTK_RESPONSE_DELETE_EVENT:

View File

@ -695,10 +695,11 @@ gnc_file_query_save (GtkWindow *parent, gboolean can_cancel)
/* private utilities for file open; done in two stages */
#define RESPONSE_NO_FILE 1
#define RESPONSE_NEW 1
#define RESPONSE_OPEN 2
#define RESPONSE_QUIT 3
#define RESPONSE_READONLY 4
#define RESPONSE_FILE 5
static gboolean
gnc_post_file_open (GtkWindow *parent, const char * filename, gboolean is_readonly)
@ -846,22 +847,34 @@ RESTART:
"%s", fmt2);
gtk_window_set_skip_taskbar_hint(GTK_WINDOW(dialog), FALSE);
gnc_gtk_dialog_add_button(dialog, _("_Open Read-Only"),
gnc_gtk_dialog_add_button(dialog, _("Open _Read-Only"),
"emblem-readonly", RESPONSE_READONLY);
gnc_gtk_dialog_add_button(dialog, _("Open with _No File"),
"document-new-symbolic", RESPONSE_NO_FILE);
gnc_gtk_dialog_add_button(dialog, _("Create _New File"),
"document-new-symbolic", RESPONSE_NEW);
gnc_gtk_dialog_add_button(dialog, _("Open _Anyway"),
"document-open-symbolic", RESPONSE_OPEN);
gnc_gtk_dialog_add_button(dialog, _("Open _Folder"),
"folder-open-symbolic", RESPONSE_FILE);
if (shutdown_cb)
{
gtk_dialog_add_button(GTK_DIALOG(dialog),
_("_Quit"), RESPONSE_QUIT);
gtk_dialog_set_default_response (GTK_DIALOG(dialog), RESPONSE_QUIT);
}
else
gtk_dialog_set_default_response (GTK_DIALOG(dialog), RESPONSE_FILE);
rc = gtk_dialog_run(GTK_DIALOG(dialog));
gtk_widget_destroy(dialog);
g_free (displayname);
if (rc == GTK_RESPONSE_DELETE_EVENT)
{
rc = shutdown_cb ? RESPONSE_QUIT : RESPONSE_NO_FILE;
rc = shutdown_cb ? RESPONSE_QUIT : RESPONSE_FILE;
}
switch (rc)
{
@ -879,11 +892,19 @@ RESTART:
/* user told us to ignore locks. So ignore them. */
qof_session_begin (new_session, newfile, SESSION_BREAK_LOCK);
break;
default:
case RESPONSE_NEW:
/* Can't use the given file, so just create a new
* Gnucash window so they can choose File->New, File->Open
* or just "Exit".
* database so that the user will get a window that
* they can click "Exit" on.
*/
gnc_file_new (parent);
break;
default:
/* Can't use the given file, so open a file browser dialog
* so they can choose a different file and get a window that
* they can click "Exit" on.
*/
gnc_file_open (parent);
break;
}
}

View File

@ -90,13 +90,13 @@ gnc_gnome_utils_init (void)
static void
gnc_global_options_help_cb (GNCOptionWin *win, gpointer dat)
{
gnc_gnome_help (HF_HELP, HL_GLOBPREFS);
gnc_gnome_help (GTK_WINDOW(gnc_options_dialog_widget (win)), HF_HELP, HL_GLOBPREFS);
}
static void
gnc_book_options_help_cb (GNCOptionWin *win, gpointer dat)
{
gnc_gnome_help (HF_HELP, HL_BOOK_OPTIONS);
gnc_gnome_help (GTK_WINDOW(gnc_options_dialog_widget (win)), HF_HELP, HL_BOOK_OPTIONS);
}
void
@ -133,7 +133,7 @@ gnc_options_dialog_set_new_book_option_values (GNCOptionDB *odb)
static void
gnc_style_sheet_options_help_cb (GNCOptionWin *win, gpointer dat)
{
gnc_gnome_help (HF_HELP, HL_STYLE_SHEET);
gnc_gnome_help (GTK_WINDOW(gnc_options_dialog_widget (win)), HF_HELP, HL_STYLE_SHEET);
}
void
@ -144,12 +144,6 @@ gnc_options_dialog_set_style_sheet_options_help_cb (GNCOptionWin *win)
NULL);
}
static void
gnc_commodity_help_cb (void)
{
gnc_gnome_help (HF_HELP, HL_COMMODITY);
}
/* gnc_configure_date_format
* sets dateFormat to the current value on the scheme side
*
@ -236,6 +230,61 @@ gnc_add_css_file (void)
g_object_unref (provider_fallback);
}
/* This function fixes an issue with yelp that it does not work with the
* ?anchor varient, see https://gitlab.gnome.org/GNOME/yelp/issues/116
*/
static gchar *
gnc_gnome_help_yelp_anchor_fix (GtkWindow *parent, const char *file_name, const char *anchor)
{
const gchar * const *sdatadirs = g_get_system_data_dirs ();
const gchar * const *langs = g_get_language_names ();
gchar *lookfor = g_strconcat ("gnome/help/", file_name, NULL);
gchar *help_path = NULL;
gchar *help_file = NULL;
gchar *full_path = NULL;
gchar *uri = NULL;
for (; *sdatadirs; sdatadirs++)
{
gchar *filepath = g_build_filename (*sdatadirs, lookfor, NULL);
if (g_file_test (filepath, G_FILE_TEST_EXISTS))
help_path = g_strdup (filepath);
g_free (filepath);
}
g_free (lookfor);
if (!help_path)
{
gnc_error_dialog (parent, "%s\n%s", _(msg_no_help_found), _(msg_no_help_reason));
PERR("Unable to find 'gnome/help' directory");
return NULL;
}
// add the file extension, currently .xml
help_file = g_strconcat (file_name, ".xml", NULL);
for (; *langs; langs++)
{
gchar *filename = g_build_filename (help_path, *langs, help_file, NULL);
if (g_file_test (filename, G_FILE_TEST_EXISTS))
full_path = g_strdup (filename);
g_free (filename);
}
g_free (help_path);
g_free (help_file);
if (full_path)
uri = g_strconcat ("ghelp:", full_path, "?", anchor, NULL);
else
{
gnc_error_dialog (parent, "%s\n%s", _(msg_no_help_found), _(msg_no_help_reason));
PERR("Unable to find valid help language directory");
return NULL;
}
g_free (full_path);
return uri;
}
#ifdef MAC_INTEGRATION
/* Don't be alarmed if this function looks strange to you: It's
@ -243,7 +292,7 @@ gnc_add_css_file (void)
* toolkit.
*/
void
gnc_gnome_help (const char *dir, const char *detail)
gnc_gnome_help (GtkWindow *parent, const char *dir, const char *detail)
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSString *subdir = [NSString stringWithUTF8String: dir];
@ -284,9 +333,9 @@ gnc_gnome_help (const char *dir, const char *detail)
componentsJoinedByString: @"-"];
if (![[NSFileManager defaultManager] fileExistsAtPath: docs_dir])
{
gnc_error_dialog(NULL, "%s\n%s\n%s: %s", _(msg_no_help_found),
_(msg_no_help_reason),
_(msg_no_help_location), [docs_dir UTF8String]);
gnc_error_dialog (parent, "%s\n%s\n%s: %s", _(msg_no_help_found),
_(msg_no_help_reason),
_(msg_no_help_location), [docs_dir UTF8String]);
[pool release];
return;
}
@ -376,13 +425,13 @@ gnc_gnome_help (const char *dir, const char *detail)
[[NSWorkspace sharedWorkspace] openURL: url];
else
{
gnc_error_dialog(NULL, "%s\n%s", _(msg_no_help_found), _(msg_no_help_reason));
gnc_error_dialog (parent, "%s\n%s", _(msg_no_help_found), _(msg_no_help_reason));
}
[pool release];
}
#elif defined G_OS_WIN32 /* G_OS_WIN32 */
void
gnc_gnome_help (const char *file_name, const char *anchor)
gnc_gnome_help (GtkWindow *parent, const char *file_name, const char *anchor)
{
const gchar * const *lang;
gchar *pkgdatadir, *fullpath, *found = NULL;
@ -404,7 +453,7 @@ gnc_gnome_help (const char *file_name, const char *anchor)
if (!found)
{
gnc_error_dialog (NULL, "%s\n%s", _(msg_no_help_found), _(msg_no_help_reason));
gnc_error_dialog (parent, "%s\n%s", _(msg_no_help_found), _(msg_no_help_reason));
}
else
{
@ -414,20 +463,21 @@ gnc_gnome_help (const char *file_name, const char *anchor)
}
#else
void
gnc_gnome_help (const char *file_name, const char *anchor)
gnc_gnome_help (GtkWindow *parent, const char *file_name, const char *anchor)
{
GError *error = NULL;
gchar *uri = NULL;
gboolean success;
gboolean success = TRUE;
if (anchor)
uri = g_strconcat ("ghelp:", file_name, "?", anchor, NULL);
uri = gnc_gnome_help_yelp_anchor_fix (parent, file_name, anchor);
else
uri = g_strconcat ("ghelp:", file_name, NULL);
DEBUG ("Attempting to opening help uri %s", uri);
success = gtk_show_uri_on_window (NULL, uri, gtk_get_current_event_time (), &error);
if (uri)
success = gtk_show_uri_on_window (NULL, uri, gtk_get_current_event_time (), &error);
g_free (uri);
if (success)
@ -435,7 +485,7 @@ gnc_gnome_help (const char *file_name, const char *anchor)
g_assert(error != NULL);
{
gnc_error_dialog(NULL, "%s\n%s", _(msg_no_help_found), _(msg_no_help_reason));
gnc_error_dialog (parent, "%s\n%s", _(msg_no_help_found), _(msg_no_help_reason));
}
PERR ("%s", error->message);
g_error_free(error);
@ -717,7 +767,6 @@ gnc_gui_init(void)
gnc_gui_refresh_all,
NULL);
gnc_ui_commodity_set_help_callback (gnc_commodity_help_cb);
gnc_file_set_shutdown_callback (gnc_shutdown);
gnc_options_dialog_set_global_help_cb (gnc_global_options_help_cb, NULL);

View File

@ -53,11 +53,13 @@ void gnc_add_css_file (void);
* This routine will display an error message
* if it can't find the help file or can't open the help browser.
*
* @param parent The parent window for any dialogs.
*
* @param file_name The name of the help file.
*
* @param anchor The anchor the help browser should scroll to.
*/
void gnc_gnome_help (const char *file_name,
void gnc_gnome_help (GtkWindow *parent, const char *file_name,
const char *anchor);
/** Launch the default browser and open the provided URI.
*/

View File

@ -2442,6 +2442,76 @@ main_window_update_page_color (GncPluginPage *page,
}
void
main_window_update_page_set_read_only_icon (GncPluginPage *page,
gboolean read_only)
{
GncMainWindow *window;
GncMainWindowPrivate *priv;
GtkWidget *tab_widget;
GtkWidget *image = NULL;
GList *children;
gchar *image_name = NULL;
const gchar *icon_name;
ENTER(" ");
window = GNC_MAIN_WINDOW(page->window);
/* Get the notebook tab widget */
main_window_find_tab_widget (window, page, &tab_widget);
priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
if (!tab_widget)
{
LEAVE("no tab widget");
return;
}
if (GTK_IS_EVENT_BOX(tab_widget))
tab_widget = gtk_bin_get_child (GTK_BIN(tab_widget));
/* For each, walk the list of container children to get image widget */
for (children = gtk_container_get_children (GTK_CONTAINER(tab_widget));
children; children = children->next)
{
GtkWidget *widget = children->data;
if (GTK_IS_IMAGE(widget))
image = widget;
}
if (!image)
{
LEAVE("no image to replace");
return;
}
g_object_get (image, "icon-name", &image_name, NULL);
if (read_only)
icon_name = "changes-prevent-symbolic";
else
icon_name = GNC_PLUGIN_PAGE_GET_CLASS(page)->tab_icon;
if (g_strcmp0 (icon_name, image_name) == 0)
{
LEAVE("page icon the same, no need to replace");
g_free (image_name);
return;
}
gtk_container_remove (GTK_CONTAINER(tab_widget), image);
image = gtk_image_new_from_icon_name (icon_name, GTK_ICON_SIZE_MENU);
gtk_widget_show (image);
gtk_container_add (GTK_CONTAINER(tab_widget), image);
gtk_widget_set_margin_start (GTK_WIDGET(image), 5);
gtk_box_reorder_child (GTK_BOX(tab_widget), image, 0);
g_free (image_name);
LEAVE("done");
}
static void
gnc_main_window_tab_entry_activate (GtkWidget *entry,
GncPluginPage *page)
@ -4529,13 +4599,13 @@ gnc_main_window_cmd_window_raise (GtkAction *action,
static void
gnc_main_window_cmd_help_tutorial (GtkAction *action, GncMainWindow *window)
{
gnc_gnome_help (HF_GUIDE, NULL);
gnc_gnome_help (GTK_WINDOW(window), HF_GUIDE, NULL);
}
static void
gnc_main_window_cmd_help_contents (GtkAction *action, GncMainWindow *window)
{
gnc_gnome_help (HF_HELP, NULL);
gnc_gnome_help (GTK_WINDOW(window), HF_HELP, NULL);
}
/** This is a helper function to find a data file and suck it into

View File

@ -185,6 +185,15 @@ void
main_window_update_page_color (GncPluginPage *page,
const gchar *color_in);
/** Update the icon on the page tabs in the main window.
*
* @param page The page to be updated.
* @param read_only If set a padlock icon will be displayed
* for the page tab icon if it had one.
*/
void
main_window_update_page_set_read_only_icon (GncPluginPage *page,
gboolean read_only);
/** Manually add a set of actions to the specified window. Plugins
* whose user interface is not hard coded (e.g. the menu-additions *

View File

@ -15,40 +15,30 @@
;; 51 Franklin Street, Fifth Floor Fax: +1-617-542-2652
;; Boston, MA 02110-1301, USA gnu@gnu.org
(define (gnc:make-extension
;; The type of extension item, either 'menu, 'menu-item, or 'separator
type
;; The name of the extension in the menu
name
;; The guid of object the menu will refer to
guid
;; The tooltip
documentation-string
;; A list of names indicating the menus under which this item is
;; located. The last item indicates the item *after* which this
;; extension will go.
path
;; The script to call when the menu item is selected
script)
(vector type
name
guid
documentation-string
path
script))
(define-module (gnucash gnome-utils gnc-menu-extensions))
(define (gnc:extension-type extension)
(vector-ref extension 0))
(define (gnc:extension-name extension)
(vector-ref extension 1))
(define (gnc:extension-guid extension)
(vector-ref extension 2))
(define (gnc:extension-documentation extension)
(vector-ref extension 3))
(define (gnc:extension-path extension)
(vector-ref extension 4))
(define (gnc:extension-script extension)
(vector-ref extension 5))
(use-modules (srfi srfi-9))
(export gnc:extension-documentation)
(export gnc:extension-guid)
(export gnc:extension-name)
(export gnc:extension-path)
(export gnc:extension-script)
(export gnc:extension-type)
(export gnc:make-extension)
(export gnc:make-menu)
(export gnc:make-menu-item)
(export gnc:make-separator)
(define-record-type :extension
(gnc:make-extension type name guid documentation-string path script)
:extension?
(type gnc:extension-type)
(name gnc:extension-name)
(guid gnc:extension-guid)
(documentation-string gnc:extension-documentation)
(path gnc:extension-path)
(script gnc:extension-script))
(define (gnc:make-menu-item name guid documentation-string path script)
(gnc:make-extension 'menu-item name guid documentation-string path script))

View File

@ -106,7 +106,7 @@ gnc_error_dialog (GtkWindow *parent,
extern void
gnc_gnome_help (const char *file_name, const char *target_link);
gnc_gnome_help (GtkWindow *parent, const char *file_name, const char *target_link);
int gnc_choose_radio_option_dialog (GtkWidget *parent,
const char *title,

View File

@ -19,30 +19,16 @@
(define-module (gnucash gnome-utils))
(eval-when (compile load eval expand)
(load-extension "libgnc-gnome-utils" "scm_init_sw_gnome_utils_module"))
(use-modules (gnucash core-utils))
(use-modules (gnucash engine))
(use-modules (gnucash utilities))
(use-modules (gnucash app-utils))
(eval-when (compile load eval expand)
(load-extension "libgnc-gnome-utils" "scm_init_sw_gnome_utils_module"))
(use-modules (sw_gnome_utils))
; Export the swig-wrapped symbols in the public interface of this module
(let ((i (module-public-interface (current-module))))
(module-use! i (resolve-interface '(sw_gnome_utils))))
;; from gnc-menu-extensions.scm
(export gnc:extension-type)
(export gnc:extension-name)
(export gnc:extension-guid)
(export gnc:extension-documentation)
(export gnc:extension-path)
(export gnc:extension-script)
(export gnc:make-menu-item)
(export gnc:make-menu)
(export gnc:make-separator)
(load-from-path "gnucash/gnome-utils/gnc-menu-extensions")
(load-and-reexport (sw_gnome_utils)
(gnucash gnome-utils gnc-menu-extensions))
;; this function will receive 1 boolean argument, and can be used for
;; any UI init/shutdown routines. For now it will set the

View File

@ -107,7 +107,8 @@ custom_report_dialog_close_cb(GtkWidget* widget, gpointer data)
void
custom_report_help_cb (GtkWidget *widget, gpointer data)
{
gnc_gnome_help(HF_HELP, HL_USAGE_CUSTOMREP);
CustomReportDialog *crd = data;
gnc_gnome_help (GTK_WINDOW(crd->dialog), HF_HELP, HL_USAGE_CUSTOMREP);
}
void

View File

@ -390,7 +390,8 @@ gnc_customer_window_cancel_cb (GtkWidget *widget, gpointer data)
void
gnc_customer_window_help_cb (GtkWidget *widget, gpointer data)
{
gnc_gnome_help(HF_HELP, HL_USAGE_CUSTOMER);
CustomerWindow *cw = data;
gnc_gnome_help (GTK_WINDOW(cw->dialog), HF_HELP, HL_USAGE_CUSTOMER);
}
void

View File

@ -248,7 +248,8 @@ gnc_employee_window_cancel_cb (GtkWidget *widget, gpointer data)
void
gnc_employee_window_help_cb (GtkWidget *widget, gpointer data)
{
gnc_gnome_help(HF_HELP, HL_USAGE_EMPLOYEE);
EmployeeWindow *ew = data;
gnc_gnome_help (GTK_WINDOW(ew->dialog), HF_HELP, HL_USAGE_EMPLOYEE);
}
void

View File

@ -544,13 +544,13 @@ gnc_invoice_window_help_cb (GtkWidget *widget, gpointer data)
switch(owner_type)
{
case GNC_OWNER_CUSTOMER:
gnc_gnome_help (HF_HELP, HL_USAGE_INVOICE);
gnc_gnome_help (GTK_WINDOW(iw->dialog), HF_HELP, HL_USAGE_INVOICE);
break;
case GNC_OWNER_VENDOR:
gnc_gnome_help (HF_HELP, HL_USAGE_BILL);
gnc_gnome_help (GTK_WINDOW(iw->dialog), HF_HELP, HL_USAGE_BILL);
break;
default:
gnc_gnome_help (HF_HELP, HL_USAGE_VOUCHER);
gnc_gnome_help (GTK_WINDOW(iw->dialog), HF_HELP, HL_USAGE_VOUCHER);
break;
}
}

View File

@ -202,7 +202,8 @@ gnc_job_window_cancel_cb (GtkWidget *widget, gpointer data)
void
gnc_job_window_help_cb (GtkWidget *widget, gpointer data)
{
gnc_gnome_help (HF_HELP, HL_USAGE_JOB);
JobWindow *jw = data;
gnc_gnome_help (GTK_WINDOW(jw->dialog), HF_HELP, HL_USAGE_JOB);
}

View File

@ -122,7 +122,7 @@ gnc_ui_new_user_ok_cb (GtkWidget * widget, gpointer data)
}
else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (new_user->tutorial_button)))
{
gnc_gnome_help (HF_GUIDE, NULL);
gnc_gnome_help (GTK_WINDOW(new_user->window), HF_GUIDE, NULL);
gncp_new_user_finish ();
}
gtk_widget_destroy (new_user->window);

View File

@ -232,7 +232,8 @@ gnc_order_window_cancel_cb (GtkWidget *widget, gpointer data)
void
gnc_order_window_help_cb (GtkWidget *widget, gpointer data)
{
gnc_gnome_help(HF_HELP, HL_USAGE_BILL);
OrderWindow *ow = data;
gnc_gnome_help (GTK_WINDOW(ow->dialog), HF_HELP, HL_USAGE_BILL);
}
void

View File

@ -2675,7 +2675,7 @@ gnc_ui_print_check_response_cb(GtkDialog *dialog,
switch (response)
{
case GTK_RESPONSE_HELP:
gnc_gnome_help(HF_HELP, HL_PRINTCHECK);
gnc_gnome_help (GTK_WINDOW(dialog), HF_HELP, HL_PRINTCHECK);
return;
case GTK_RESPONSE_OK:

View File

@ -230,7 +230,7 @@ editor_cancel_button_clicked_cb( GtkButton *b, GncSxEditorDialog *sxed )
static void
editor_help_button_clicked_cb(GtkButton *b, GncSxEditorDialog *sxed)
{
gnc_gnome_help(HF_HELP, HL_SXEDITOR);
gnc_gnome_help (GTK_WINDOW(sxed->dialog), HF_HELP, HL_SXEDITOR);
}

View File

@ -227,7 +227,7 @@ editor_cancel_button_clicked_cb (GtkButton *b, GncSxEditorDialog2 *sxed)
static void
editor_help_button_clicked_cb (GtkButton *b, GncSxEditorDialog2 *sxed)
{
gnc_gnome_help (HF_HELP, HL_SXEDITOR);
gnc_gnome_help (GTK_WINDOW(sxed->dialog), HF_HELP, HL_SXEDITOR);
}

View File

@ -261,7 +261,8 @@ gnc_vendor_window_cancel_cb (GtkWidget *widget, gpointer data)
void
gnc_vendor_window_help_cb (GtkWidget *widget, gpointer data)
{
gnc_gnome_help(HF_HELP, HL_USAGE_VENDOR);
VendorWindow *vw = data;
gnc_gnome_help (GTK_WINDOW(vw->dialog), HF_HELP, HL_USAGE_VENDOR);
}
void

View File

@ -1086,7 +1086,7 @@ gnc_plugin_page_register_ui_update (gpointer various,
GncPluginPageRegisterPrivate* priv;
SplitRegister* reg;
GtkAction* action;
gboolean expanded, voided, read_only = FALSE;
gboolean expanded, voided, read_only = FALSE, read_only_reg = FALSE;
Transaction* trans;
GList* invoices;
CursorClass cursor_class;
@ -1106,62 +1106,84 @@ gnc_plugin_page_register_ui_update (gpointer various,
g_signal_handlers_unblock_by_func
(action, gnc_plugin_page_register_cmd_expand_transaction, page);
/* If we are in a readonly book, or possibly a place holder
* account register make any modifying action inactive */
if (qof_book_is_readonly (gnc_get_current_book()) ||
gnc_split_reg_get_read_only (priv->gsr))
read_only_reg = TRUE;
/* Set available actions based on read only */
trans = gnc_split_register_get_current_trans (reg);
if (trans)
read_only = xaccTransIsReadonlyByPostedDate (trans);
voided = xaccTransHasSplitsInState (trans, VREC);
action = gnc_plugin_page_get_action (GNC_PLUGIN_PAGE (page),
"CutTransactionAction");
gtk_action_set_sensitive (GTK_ACTION (action), !read_only & !voided);
action = gnc_plugin_page_get_action (GNC_PLUGIN_PAGE (page),
"PasteTransactionAction");
gtk_action_set_sensitive (GTK_ACTION (action), !read_only & !voided);
action = gnc_plugin_page_get_action (GNC_PLUGIN_PAGE (page),
"DeleteTransactionAction");
gtk_action_set_sensitive (GTK_ACTION (action), !read_only & !voided);
action = gnc_plugin_page_get_action (GNC_PLUGIN_PAGE (page),
"DuplicateTransactionAction");
gtk_action_set_sensitive (GTK_ACTION (action), TRUE);
if (cursor_class == CURSOR_CLASS_SPLIT)
/* If the register is not read only, make any modifying action active
* to start with */
if (!read_only_reg)
{
const char** iter;
for (iter = readonly_inactive_actions; *iter; ++iter)
{
/* Set the action's sensitivity */
GtkAction* action = gnc_plugin_page_get_action (GNC_PLUGIN_PAGE (page), *iter);
gtk_action_set_sensitive (action, TRUE);
}
main_window_update_page_set_read_only_icon (GNC_PLUGIN_PAGE(page), FALSE);
if (trans)
read_only = xaccTransIsReadonlyByPostedDate (trans);
voided = xaccTransHasSplitsInState (trans, VREC);
action = gnc_plugin_page_get_action (GNC_PLUGIN_PAGE (page),
"CutTransactionAction");
gtk_action_set_sensitive (GTK_ACTION (action), !read_only & !voided);
action = gnc_plugin_page_get_action (GNC_PLUGIN_PAGE (page),
"PasteTransactionAction");
gtk_action_set_sensitive (GTK_ACTION (action), !read_only & !voided);
action = gnc_plugin_page_get_action (GNC_PLUGIN_PAGE (page),
"DeleteTransactionAction");
gtk_action_set_sensitive (GTK_ACTION (action), !read_only & !voided);
action = gnc_plugin_page_get_action (GNC_PLUGIN_PAGE (page),
"DuplicateTransactionAction");
gtk_action_set_sensitive (GTK_ACTION (action), !read_only & TRUE);
if (cursor_class == CURSOR_CLASS_SPLIT)
{
action = gnc_plugin_page_get_action (GNC_PLUGIN_PAGE (page),
"DuplicateTransactionAction");
gtk_action_set_sensitive (GTK_ACTION (action), !read_only & !voided);
}
action = gnc_plugin_page_get_action (GNC_PLUGIN_PAGE (page),
"RemoveTransactionSplitsAction");
gtk_action_set_sensitive (GTK_ACTION (action), !read_only & !voided);
/* Set 'Void' and 'Unvoid' */
if (read_only)
voided = TRUE;
action = gnc_plugin_page_get_action (GNC_PLUGIN_PAGE (page),
"VoidTransactionAction");
gtk_action_set_sensitive (GTK_ACTION (action), !voided);
if (read_only)
voided = FALSE;
action = gnc_plugin_page_get_action (GNC_PLUGIN_PAGE (page),
"UnvoidTransactionAction");
gtk_action_set_sensitive (GTK_ACTION (action), voided);
}
action = gnc_plugin_page_get_action (GNC_PLUGIN_PAGE (page),
"RemoveTransactionSplitsAction");
gtk_action_set_sensitive (GTK_ACTION (action), !read_only & !voided);
/* Set 'Void' and 'Unvoid' */
if (read_only)
voided = TRUE;
action = gnc_plugin_page_get_action (GNC_PLUGIN_PAGE (page),
"VoidTransactionAction");
gtk_action_set_sensitive (GTK_ACTION (action), !voided);
if (read_only)
voided = FALSE;
action = gnc_plugin_page_get_action (GNC_PLUGIN_PAGE (page),
"UnvoidTransactionAction");
gtk_action_set_sensitive (GTK_ACTION (action), voided);
/* Set 'Open and Remove Linked Documents' */
uri = xaccTransGetDocLink (trans);
action = gnc_plugin_page_get_action (GNC_PLUGIN_PAGE(page),
"LinkedTransactionOpenAction");
gtk_action_set_sensitive (GTK_ACTION(action), (uri ? TRUE:FALSE));
if (trans)
{
uri = xaccTransGetDocLink (trans);
gtk_action_set_sensitive (GTK_ACTION(action), (uri ? TRUE:FALSE));
}
/* Set 'ExecAssociatedInvoice'
We can determine an invoice from a txn if either
- it is an invoice transaction
@ -1169,15 +1191,17 @@ gnc_plugin_page_register_ui_update (gpointer various,
*/
action = gnc_plugin_page_get_action (GNC_PLUGIN_PAGE (page),
"JumpLinkedInvoiceAction");
invoices = invoices_from_transaction (trans);
gtk_action_set_sensitive (GTK_ACTION (action), (invoices != NULL));
g_list_free (invoices);
if (trans)
{
invoices = invoices_from_transaction (trans);
gtk_action_set_sensitive (GTK_ACTION (action), (invoices != NULL));
g_list_free (invoices);
}
gnc_plugin_business_split_reg_ui_update (GNC_PLUGIN_PAGE (page));
/* If we are in a readonly book, make any modifying action inactive */
if (qof_book_is_readonly (gnc_get_current_book()))
/* If we are read only, make any modifying action inactive */
if (read_only_reg)
{
const char** iter;
for (iter = readonly_inactive_actions; *iter; ++iter)
@ -1186,6 +1210,7 @@ gnc_plugin_page_register_ui_update (gpointer various,
GtkAction* action = gnc_plugin_page_get_action (GNC_PLUGIN_PAGE (page), *iter);
gtk_action_set_sensitive (action, FALSE);
}
main_window_update_page_set_read_only_icon (GNC_PLUGIN_PAGE(page), TRUE);
}
/* Modifying action descriptions based on cursor class */
@ -1937,7 +1962,7 @@ finish_scrub (GncPluginPage* page)
(GNC_PLUGIN_PAGE(page))),
FALSE,
_("'Check & Repair' is currently running, do you want to abort it?"));
show_abort_verify = FALSE;
if (ret)
@ -3489,6 +3514,27 @@ gnc_plugin_page_register_set_filter_tooltip (GncPluginPageRegister* page)
LEAVE (" ");
}
static void
gnc_plugin_page_register_update_page_icon (GncPluginPage* plugin_page)
{
GncPluginPageRegisterPrivate* priv;
gboolean read_only;
g_return_if_fail (GNC_IS_PLUGIN_PAGE_REGISTER (plugin_page));
priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE (plugin_page);
if (qof_book_is_readonly (gnc_get_current_book()) ||
gnc_split_reg_get_read_only (priv->gsr))
read_only = TRUE;
else
read_only = FALSE;
main_window_update_page_set_read_only_icon (GNC_PLUGIN_PAGE(plugin_page),
read_only);
}
/************************************************************/
/* Report Helper Functions */
/************************************************************/
@ -5020,10 +5066,10 @@ scrub_kp_handler (GtkWidget *widget, GdkEventKey *event, gpointer data)
{
gboolean abort_scrub = gnc_verify_dialog (GTK_WINDOW(widget), FALSE,
_("'Check & Repair' is currently running, do you want to abort it?"));
if (abort_scrub)
gnc_set_abort_scrub (TRUE);
return TRUE;
}
default:
@ -5370,6 +5416,9 @@ gnc_plugin_page_register_event_handler (QofInstance* entity,
main_window_update_page_name (GNC_PLUGIN_PAGE (page), label);
color = gnc_plugin_page_register_get_tab_color (GNC_PLUGIN_PAGE (page));
main_window_update_page_color (GNC_PLUGIN_PAGE (page), color);
// update page icon if read only registers
gnc_plugin_page_register_update_page_icon (GNC_PLUGIN_PAGE (page));
g_free (color);
g_free (label);
}

View File

@ -377,6 +377,8 @@ gnc_plugin_page_report_load_uri (GncPluginPage *page)
gtk_widget_show_all( GTK_WIDGET(priv->container) );
priv->loaded = TRUE;
// this sets the window for the progressbar
gnc_window_set_progressbar_window( GNC_WINDOW(page->window) );
@ -386,8 +388,6 @@ gnc_plugin_page_report_load_uri (GncPluginPage *page)
gnc_html_show_url(priv->html, type, url_location, url_label, 0);
g_free(url_location);
priv->loaded = TRUE;
gnc_plugin_page_report_set_progressbar( page, FALSE );
// this resets the window for the progressbar to NULL

View File

@ -244,9 +244,9 @@ gnc_report_system_help_url_cb (const char *location, const char *label,
g_return_val_if_fail (location != NULL, FALSE);
if (label && (*label != '\0'))
gnc_gnome_help (location, label);
gnc_gnome_help (GTK_WINDOW(result->parent), location, label);
else
gnc_gnome_help (location, NULL);
gnc_gnome_help (GTK_WINDOW(result->parent), location, NULL);
return TRUE;
}

View File

@ -73,7 +73,7 @@ static GtkWidget* add_summary_label( GtkWidget *summarybar, gboolean pack_start,
static void gsr_summarybar_set_arrow_draw (GNCSplitReg *gsr);
static void gnc_split_reg_determine_read_only( GNCSplitReg *gsr );
static void gnc_split_reg_determine_read_only( GNCSplitReg *gsr, gboolean show_dialog );
static gboolean is_trans_readonly_and_warn (GtkWindow *parent, Transaction *trans);
static GNCPlaceholderType gnc_split_reg_get_placeholder( GNCSplitReg *gsr );
@ -378,7 +378,7 @@ gnc_split_reg_init2( GNCSplitReg *gsr )
{
if ( !gsr ) return;
gnc_split_reg_determine_read_only( gsr );
gnc_split_reg_determine_read_only( gsr, TRUE );
gsr_setup_status_widgets( gsr );
/* ordering is important here... setup_status before create_table */
@ -2444,8 +2444,30 @@ gboolean
gtk_callback_bug_workaround (gpointer argp)
{
dialog_args *args = argp;
const gchar *read_only = _("This account register is read-only.");
const gchar *read_only_this = _("This account register is read-only.");
const gchar *read_only_acc = _("The '%s' account register is read-only.");
gchar *read_only = NULL;
GtkWidget *dialog;
GNCLedgerDisplayType ledger_type = gnc_ledger_display_type (args->gsr->ledger);
Account *acc = gnc_ledger_display_leader (args->gsr->ledger);
const gchar *acc_name = NULL;
gchar *tmp = NULL;
if (acc)
{
acc_name = xaccAccountGetName (acc);
if (ledger_type == LD_SINGLE)
read_only = g_strdup_printf (read_only_acc, acc_name);
else
{
gchar *tmp = g_strconcat (acc_name, "+", NULL);
read_only = g_strdup_printf (read_only_acc, tmp);
g_free (tmp);
}
}
else
read_only = g_strdup (read_only_this);
dialog = gtk_message_dialog_new(GTK_WINDOW(args->gsr->window),
GTK_DIALOG_DESTROY_WITH_PARENT,
@ -2456,6 +2478,7 @@ gtk_callback_bug_workaround (gpointer argp)
"%s", args->string);
gnc_dialog_run(GTK_DIALOG(dialog), GNC_PREF_WARN_REG_IS_READ_ONLY);
gtk_widget_destroy(dialog);
g_free(read_only);
g_free(args);
return FALSE;
}
@ -2465,7 +2488,7 @@ gtk_callback_bug_workaround (gpointer argp)
**/
static
void
gnc_split_reg_determine_read_only( GNCSplitReg *gsr )
gnc_split_reg_determine_read_only( GNCSplitReg *gsr, gboolean show_dialog )
{
SplitRegister *reg;
@ -2519,7 +2542,8 @@ gnc_split_reg_determine_read_only( GNCSplitReg *gsr )
args = g_malloc(sizeof(dialog_args));
args->string = string;
args->gsr = gsr;
g_timeout_add (250, gtk_callback_bug_workaround, args); /* 0.25 seconds */
if (show_dialog)
g_timeout_add (250, gtk_callback_bug_workaround, args); /* 0.25 seconds */
}
/* Make the contents immutable */
@ -2608,7 +2632,16 @@ gnc_split_reg_get_summarybar( GNCSplitReg *gsr )
gboolean
gnc_split_reg_get_read_only( GNCSplitReg *gsr )
{
SplitRegister *reg;
g_assert( gsr );
// reset read_only flag
gsr->read_only = FALSE;
gnc_split_reg_determine_read_only (gsr, FALSE);
reg = gnc_ledger_display_get_split_register( gsr->ledger );
gnc_split_register_set_read_only( reg, gsr->read_only );
return gsr->read_only;
}

View File

@ -53,7 +53,7 @@ void gnc_split_reg2_raise (GNCSplitReg2 *gsr);
static GtkWidget* add_summary_label (GtkWidget *summarybar,
const char *label_str);
static void gnc_split_reg2_determine_read_only (GNCSplitReg2 *gsr);
static void gnc_split_reg2_determine_read_only (GNCSplitReg2 *gsr, gboolean show_dialog);
static void gnc_split_reg2_determine_account_pr (GNCSplitReg2 *gsr);
@ -200,7 +200,7 @@ gnc_split_reg2_init2 (GNCSplitReg2 *gsr)
{
if (!gsr) return;
gnc_split_reg2_determine_read_only (gsr);
gnc_split_reg2_determine_read_only (gsr, TRUE);
gnc_split_reg2_determine_account_pr (gsr);
@ -934,8 +934,30 @@ gboolean
gtk_callback_bug_workaround (gpointer argp)
{
dialog_args *args = argp;
const gchar *read_only = _("This account register is read-only.");
const gchar *read_only_this = _("This account register is read-only.");
const gchar *read_only_acc = _("The '%s' account register is read-only.");
gchar *read_only = NULL;
GtkWidget *dialog;
GNCLedgerDisplay2Type ledger_type = gnc_ledger_display2_type (args->gsr->ledger);
Account *acc = gnc_ledger_display2_leader (args->gsr->ledger);
const gchar *acc_name = NULL;
gchar *tmp = NULL;
if (acc)
{
acc_name = xaccAccountGetName (acc);
if (ledger_type == LD2_SINGLE)
read_only = g_strdup_printf (read_only_acc, acc_name);
else
{
gchar *tmp = g_strconcat (acc_name, "+", NULL);
read_only = g_strdup_printf (read_only_acc, tmp);
g_free (tmp);
}
}
else
read_only = g_strdup (read_only_this);
dialog = gtk_message_dialog_new (GTK_WINDOW(args->gsr->window),
GTK_DIALOG_DESTROY_WITH_PARENT,
@ -946,6 +968,7 @@ gtk_callback_bug_workaround (gpointer argp)
"%s", args->string);
gnc_dialog_run (GTK_DIALOG (dialog), GNC_PREF_WARN_REG_IS_READ_ONLY);
gtk_widget_destroy (dialog);
g_free(read_only);
g_free (args);
return FALSE;
}
@ -955,7 +978,7 @@ gtk_callback_bug_workaround (gpointer argp)
**/
static
void
gnc_split_reg2_determine_read_only (GNCSplitReg2 *gsr) //this works
gnc_split_reg2_determine_read_only (GNCSplitReg2 *gsr, gboolean show_dialog)
{
if (qof_book_is_readonly (gnc_get_current_book()))
@ -995,7 +1018,8 @@ gnc_split_reg2_determine_read_only (GNCSplitReg2 *gsr) //this works
gsr->read_only = TRUE;
/* Put up a warning dialog */
args->gsr = gsr;
g_timeout_add (250, gtk_callback_bug_workaround, args); /* 0.25 seconds */
if (show_dialog)
g_timeout_add (250, gtk_callback_bug_workaround, args); /* 0.25 seconds */
}
}
@ -1102,6 +1126,10 @@ gboolean
gnc_split_reg2_get_read_only (GNCSplitReg2 *gsr)
{
g_assert (gsr);
// reset read_only flag
gsr->read_only = FALSE;
gnc_split_reg2_determine_read_only (gsr, FALSE);
return gsr->read_only;
}

View File

@ -1153,7 +1153,8 @@ gnc_reconcile_window_get_current_split(RecnWindow *recnData)
static void
gnc_ui_reconcile_window_help_cb(GtkWidget *widget, gpointer data)
{
gnc_gnome_help(HF_HELP, HL_RECNWIN);
RecnWindow *recnData = data;
gnc_gnome_help (GTK_WINDOW(recnData->window), HF_HELP, HL_RECNWIN);
}

View File

@ -1101,7 +1101,8 @@ gnc_reconcile_window_get_current_split (RecnWindow2 *recnData)
static void
gnc_ui_reconcile_window_help_cb (GtkWidget *widget, gpointer data)
{
gnc_gnome_help (HF_HELP, HL_RECNWIN);
RecnWindow2 *recnData = data;
gnc_gnome_help (GTK_WINDOW(recnData->window), HF_HELP, HL_RECNWIN);
}

View File

@ -135,7 +135,7 @@ mac_find_close_country(NSString *locale_str, NSString *country_str,
NSString *this_locale, *new_locale = nil;
PWARN("Apple Locale is set to a value %s not supported"
" by the C runtime", [locale_str UTF8String]);
while ((this_locale = (NSString*)[locale_iter nextObject]))
while ((this_locale = [(NSString*)[locale_iter nextObject] stringByAppendingString: @".UTF-8"]))
if ([ [ [NSLocale componentsFromLocaleIdentifier: this_locale]
objectForKey: NSLocaleCountryCode]
isEqualToString: country_str] &&
@ -158,7 +158,7 @@ mac_find_close_country(NSString *locale_str, NSString *country_str,
locale_str = new_locale;
else
{
locale_str = @"en_US";
locale_str = @"en_US.UTF-8";
setlocale(LC_ALL, [locale_str UTF8String]);
}
PWARN("Using %s instead.", [locale_str UTF8String]);
@ -233,8 +233,9 @@ set_mac_locale()
{
lang_str = [locale objectForKey: NSLocaleLanguageCode];
country_str = [locale objectForKey: NSLocaleCountryCode];
locale_str = [ [lang_str stringByAppendingString: @"_"]
stringByAppendingString: country_str];
locale_str = [[[lang_str stringByAppendingString: @"_"]
stringByAppendingString: country_str]
stringByAppendingString: @".UTF-8"];
}
@catch (NSException *err)
{
@ -246,7 +247,7 @@ set_mac_locale()
}
/* If we didn't get a valid current locale, the string will be just "_" */
if ([locale_str isEqualToString: @"_"])
locale_str = @"en_US";
locale_str = @"en_US.UTF-8";
lang_str = mac_convert_complex_language(lang_str);
if (!setlocale(LC_ALL, [locale_str UTF8String]))

View File

@ -166,7 +166,7 @@
<description>When a date is entered without year it can be completed so that it will be within the current calendar year or close to the current date based on a sliding window starting a set number of months backwards in time.</description>
</key>
<key name="date-backmonths" type="d">
<default>11.0</default>
<default>6.0</default>
<summary>Maximum number of months to go back.</summary>
<description>Dates will be completed so that they are close to the current date. Enter the maximum number of months to go backwards in time when completing dates.</description>
</key>

View File

@ -336,7 +336,7 @@ Select the type of Export required and the separator that will be used.
<object class="GtkLabel" id="num_accounts_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">0</property>
<property name="label">0</property>
<property name="justify">center</property>
</object>
<packing>

View File

@ -181,7 +181,7 @@
<object class="GtkLabel" id="label814">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">1 /</property>
<property name="label">1 /</property>
<property name="justify">center</property>
</object>
<packing>

View File

@ -47,23 +47,23 @@
</columns>
<data>
<row>
<col id="0" translatable="yes">US</col>
<col id="1" translatable="yes">07/31/2013</col>
<col id="0" translatable="yes" comments="Date format label for 07/31/2013">US</col>
<col id="1" comments="Translation is futile here">07/31/2013</col>
</row>
<row>
<col id="0" translatable="yes">UK</col>
<col id="1" translatable="yes">31/07/2013</col>
<col id="0" translatable="yes" comments="Date format label for 31/07/2013">UK</col>
<col id="1">31/07/2013</col>
</row>
<row>
<col id="0" translatable="yes">Europe</col>
<col id="1" translatable="yes">31.07.2013</col>
<col id="0" translatable="yes" comments="Date format label for 31.07.2013">Europe</col>
<col id="1">31.07.2013</col>
</row>
<row>
<col id="0" translatable="yes">ISO</col>
<col id="1" translatable="yes">2013-07-31</col>
<col id="0" translatable="yes" comments="Date format label for 2013-07-31">ISO</col>
<col id="1">2013-07-31</col>
</row>
<row>
<col id="0" translatable="yes">Locale</col>
<col id="0" translatable="yes" comments="Label for locale settings of formats, …">Locale</col>
<col id="1" comments="Because it will be overwritten no translation is reqired">(dummy)</col>
</row>
</data>
@ -1269,7 +1269,7 @@ many months before the current month</property>
<property name="tooltip_markup">How many automatic decimal places will be filled in.</property>
<property name="tooltip_text" translatable="yes">How many automatic decimal places will be filled in.</property>
<property name="invisible_char">●</property>
<property name="text" translatable="yes">2</property>
<property name="text">2</property>
<property name="primary_icon_activatable">False</property>
<property name="secondary_icon_activatable">False</property>
<property name="adjustment">auto_decimal_places_adj</property>
@ -2081,7 +2081,7 @@ many months before the current month</property>
<property name="tooltip_markup">In some places commercial ATMs (not belonging to a financial institution) are installed in places like convenience stores. These ATMs add their fee directly to the amount instead of showing up as a separate transaction or in your monthly banking fees. For example, you withdraw $100, and you are charged $101,50 plus Interac fees. If you manually entered that $100, the amounts won&amp;apos;t match. You should set this to whatever is the maximum such fee in your area (in units of your local currency), so the transaction will be recognised as a match.</property>
<property name="tooltip_text" translatable="yes">In some places commercial ATMs (not belonging to a financial institution) are installed in places like convenience stores. These ATMs add their fee directly to the amount instead of showing up as a separate transaction or in your monthly banking fees. For example, you withdraw $100, and you are charged $101,50 plus Interac fees. If you manually entered that $100, the amounts won't match. You should set this to whatever is the maximum such fee in your area (in units of your local currency), so the transaction will be recognised as a match.</property>
<property name="invisible_char">●</property>
<property name="text" translatable="yes">2,00</property>
<property name="text">2.00</property>
<property name="primary_icon_activatable">False</property>
<property name="secondary_icon_activatable">False</property>
<property name="adjustment">atm_fee_adj</property>
@ -3518,7 +3518,7 @@ many months before the current month</property>
<property name="tooltip_markup">If the text in the tab is longer than this value (the test is approximate) then the tab label will have the middle cut and replaced with an ellipsis.</property>
<property name="tooltip_text" translatable="yes">If the text in the tab is longer than this value (the test is approximate) then the tab label will have the middle cut and replaced with an ellipsis.</property>
<property name="invisible_char">●</property>
<property name="text" translatable="yes">30</property>
<property name="text">30</property>
<property name="primary_icon_activatable">False</property>
<property name="secondary_icon_activatable">False</property>
<property name="adjustment">tab_width_adj</property>

View File

@ -3,7 +3,7 @@
<interface>
<requires lib="gtk+" version="3.22"/>
<object class="GtkTextBuffer" id="textbuffer1">
<property name="text" translatable="yes">1234567890123456789012345678901234567890</property>
<property name="text">1234567890123456789012345678901234567890</property>
</object>
<object class="GtkWindow" id="progress_dialog">
<property name="visible">True</property>

View File

@ -381,7 +381,7 @@
<object class="GtkLabel" id="num_accounts_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">0</property>
<property name="label">0</property>
<property name="justify">center</property>
</object>
<packing>

View File

@ -761,7 +761,7 @@ If 0, all previous days included</property>
</child>
</object>
<object class="GtkEntryBuffer" id="entrybuffer1">
<property name="text" translatable="yes">0</property>
<property name="text">0</property>
</object>
<object class="GtkDialog" id="sort_by_dialog">
<property name="can_focus">False</property>

View File

@ -252,7 +252,8 @@ gnc_bi_import_gui_cancel_cb (GtkWidget *widget, gpointer data)
void
gnc_bi_import_gui_help_cb (GtkWidget *widget, gpointer data)
{
gnc_gnome_help (HF_GUIDE, HL_IMPORT_BC);
BillImportGui *gui = data;
gnc_gnome_help (GTK_WINDOW(gui->dialog), HF_GUIDE, HL_IMPORT_BC);
}
static void

View File

@ -228,7 +228,8 @@ gnc_customer_import_gui_cancel_cb (GtkWidget *widget, gpointer data)
void
gnc_customer_import_gui_help_cb (GtkWidget *widget, gpointer data)
{
gnc_gnome_help (HF_GUIDE, HL_IMPORT_CUST);
CustomerImportGui *gui = data;
gnc_gnome_help (GTK_WINDOW(gui->dialog), HF_GUIDE, HL_IMPORT_CUST);
}
static void

View File

@ -24,7 +24,44 @@
;; Boston, MA 02110-1301, USA gnu@gnu.org
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-module (gnucash qif-import qif-dialog-utils))
(eval-when (compile load eval expand)
(load-extension "libgnc-gnome" "scm_init_sw_gnome_module"))
(use-modules (srfi srfi-1))
(use-modules (sw_gnome))
(use-modules (gnucash core-utils))
(use-modules (gnucash engine))
(use-modules (gnucash string))
(use-modules (gnucash app-utils))
(use-modules (gnucash qif-import qif-objects))
(use-modules (gnucash qif-import qif-guess-map))
(export default-capital-return-acct)
(export default-cglong-acct)
(export default-cgmid-acct)
(export default-cgshort-acct)
(export default-commission-acct)
(export default-dividend-acct)
(export default-equity-account)
(export default-equity-holding)
(export default-interest-acct)
(export default-margin-interest-acct)
(export default-stock-acct)
(export default-unspec-acct)
(export qif-dialog:make-account-display)
(export qif-dialog:make-category-display)
(export qif-dialog:make-memo-display)
(export qif-dialog:qif-file-loaded?)
(export qif-dialog:unload-qif-file)
(export qif-import:any-new-accts?)
(export qif-import:get-account-name)
(export qif-import:update-security-hash)
(export qif-import:fix-from-acct)
(export qif-import:get-all-accts)
(export qif-import:refresh-match-selection)
(define (default-stock-acct brokerage security)
(string-append brokerage (gnc-get-account-separator-string) security))

View File

@ -24,12 +24,31 @@
;; Boston, MA 02110-1301, USA gnu@gnu.org
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-module (gnucash qif-import qif-file))
(eval-when (compile load eval expand)
(load-extension "libgnc-gnome" "scm_init_sw_gnome_module"))
(use-modules (sw_gnome))
(use-modules (gnucash core-utils))
(use-modules (gnucash engine))
(use-modules (gnucash utilities))
(use-modules (gnucash string))
(use-modules (gnucash app-utils))
(use-modules (ice-9 regex))
(use-modules (srfi srfi-1))
(use-modules (srfi srfi-13))
(use-modules (ice-9 rdelim))
(use-modules (gnucash qif-import qif-objects))
(use-modules (gnucash qif-import qif-utils))
(use-modules (gnucash qif-import qif-parse))
(use-modules (gnucash qif-import qif-dialog-utils))
(export qif-file:check-from-acct)
(export qif-file:parse-fields)
(export qif-file:parse-fields-results)
(export qif-file:read-file)
(export qif-file:reparse-dates)
(define qif-bad-numeric-rexp
(make-regexp "^\\.\\.\\."))

View File

@ -24,9 +24,37 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-module (gnucash qif-import qif-guess-map))
(eval-when (compile load eval expand)
(load-extension "libgnc-gnome" "scm_init_sw_gnome_module"))
(use-modules (gnucash utilities))
(use-modules (gnucash core-utils))
(use-modules (gnucash app-utils))
(use-modules (gnucash engine))
(use-modules (gnucash qif-import qif-objects))
(use-modules (gnucash qif-import qif-dialog-utils))
(use-modules (srfi srfi-13))
(use-modules (ice-9 match))
(export GNC-ASSET-TYPE)
(export GNC-BANK-TYPE)
(export GNC-CASH-TYPE)
(export GNC-CCARD-TYPE)
(export GNC-EQUITY-TYPE)
(export GNC-EXPENSE-TYPE)
(export GNC-INCOME-TYPE)
(export GNC-LIABILITY-TYPE)
(export GNC-MUTUAL-TYPE)
(export GNC-PAYABLE-TYPE)
(export GNC-RECEIVABLE-TYPE)
(export GNC-STOCK-TYPE)
(export qif-import:guess-acct)
(export qif-import:load-map-prefs)
(export qif-import:save-map-prefs)
(define GNC-BANK-TYPE 0)
(define GNC-CASH-TYPE 1)
(define GNC-ASSET-TYPE 2)

View File

@ -25,68 +25,15 @@
(define-module (gnucash qif-import))
(use-modules (gnucash utilities))
(use-modules (gnucash engine))
(use-modules (gnucash app-utils))
(use-modules (gnucash gnome-utils))
;; We do this initialization here because src/gnome isn't a real module.
;; Note: Guile 2 needs to find the symbols from the extension at compile time already
(eval-when (compile load eval expand)
(load-extension "libgnc-gnome" "scm_init_sw_gnome_module"))
(use-modules (gnucash core-utils))
(use-modules (sw_gnome))
(use-modules (ice-9 regex))
(use-modules (srfi srfi-1))
(debug-enable 'backtrace)
(load-from-path "gnucash/qif-import/qif-objects") ;; class definitions
(load-from-path "gnucash/qif-import/qif-parse") ;; string-to-value
(load-from-path "gnucash/qif-import/qif-utils")
(load-from-path "gnucash/qif-import/qif-file") ;; actual file reading
(load-from-path "gnucash/qif-import/qif-dialog-utils") ;; build displays
(load-from-path "gnucash/qif-import/qif-guess-map") ;; build acct mappings
(load-from-path "gnucash/qif-import/qif-to-gnc") ;; conv QIF xtns to GNC
(load-from-path "gnucash/qif-import/qif-merge-groups") ;; merge into user's acct
(export make-qif-file)
(export make-ticker-map)
(export qif-import:get-all-accts)
(export qif-import:fix-from-acct)
(export qif-import:any-new-accts?)
(export qif-import:update-security-hash)
(export qif-import:refresh-match-selection)
(export qif-import:save-map-prefs)
(export qif-import:load-map-prefs)
(export qif-import:qif-to-gnc)
(export qif-import:qif-to-gnc-undo)
(export qif-import:reset-cancel-pause)
(export qif-import:cancel)
(export qif-import:toggle-pause)
(export qif-map-entry:gnc-name)
(export qif-map-entry:set-gnc-name!)
(export qif-map-entry:clone)
(export qif-map-entry:qif-name)
(export qif-map-entry:new-acct?)
(export qif-file:read-file)
(export qif-file:parse-fields)
(export qif-file:parse-fields-results)
(export qif-file:check-from-acct)
(export qif-file:reparse-dates)
(export qif-file:check-from-acct)
(export qif-file:path-to-accountname)
(export qif-file:path)
(export qif-dialog:qif-file-loaded?)
(export qif-dialog:unload-qif-file)
(export qif-dialog:make-account-display)
(export qif-dialog:make-category-display)
(export qif-dialog:make-memo-display)
(export gnc:account-tree-find-duplicates)
(export gnc:account-tree-catenate-and-merge)
(export gnc:prune-matching-transactions)
(load-and-reexport (gnucash qif-import qif-dialog-utils)
(gnucash qif-import qif-file)
(gnucash qif-import qif-guess-map)
(gnucash qif-import qif-merge-groups)
(gnucash qif-import qif-objects)
(gnucash qif-import qif-parse)
(gnucash qif-import qif-to-gnc)
(gnucash qif-import qif-utils)
(gnucash string))

View File

@ -23,6 +23,21 @@
;; Boston, MA 02110-1301, USA gnu@gnu.org
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-module (gnucash qif-import qif-merge-groups))
(eval-when (compile load eval expand)
(load-extension "libgnc-gnome" "scm_init_sw_gnome_module"))
(use-modules (sw_gnome))
(use-modules (gnucash core-utils))
(use-modules (gnucash engine))
(use-modules (gnucash app-utils))
(use-modules (srfi srfi-1))
(use-modules (gnucash qif-import qif-utils))
(export gnc:account-tree-catenate-and-merge)
(export gnc:account-tree-find-duplicates)
(export gnc:prune-matching-transactions)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; gnc:account-tree-find-duplicates

View File

@ -23,6 +23,128 @@
;; Boston, MA 02110-1301, USA gnu@gnu.org
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-module (gnucash qif-import qif-objects))
(eval-when (compile load eval expand)
(load-extension "libgnc-gnome" "scm_init_sw_gnome_module"))
(use-modules (srfi srfi-9))
(use-modules (sw_gnome))
(use-modules (gnucash core-utils))
(use-modules (gnucash engine))
(use-modules (gnucash string))
(use-modules (gnucash qif-import qif-guess-map))
(use-modules (gnucash qif-import qif-parse))
(export <qif-map-entry>)
(export make-qif-acct)
(export make-qif-cat)
(export make-qif-class)
(export make-qif-file)
(export make-qif-map-entry)
(export make-qif-split)
(export make-qif-stock-symbol)
(export make-qif-xtn)
(export make-ticker-map)
(export qif-acct:budget)
(export qif-acct:description)
(export qif-acct:limit)
(export qif-acct:name)
(export qif-acct:set-budget!)
(export qif-acct:set-description!)
(export qif-acct:set-limit!)
(export qif-acct:set-name!)
(export qif-acct:set-type!)
(export qif-acct:type)
(export qif-cat:budget-amt)
(export qif-cat:description)
(export qif-cat:expense-cat)
(export qif-cat:name)
(export qif-cat:set-budget-amt!)
(export qif-cat:set-description!)
(export qif-cat:set-expense-cat!)
(export qif-cat:set-income-cat!)
(export qif-cat:set-name!)
(export qif-cat:set-tax-class!)
(export qif-cat:set-taxable!)
(export qif-cat:tax-class)
(export qif-class:set-description!)
(export qif-class:set-name!)
(export qif-file:accounts)
(export qif-file:add-account!)
(export qif-file:add-cat!)
(export qif-file:add-class!)
(export qif-file:add-xtn!)
(export qif-file:cats)
(export qif-file:path)
(export qif-file:path-to-accountname)
(export qif-file:set-path!)
(export qif-file:set-xtns!)
(export qif-file:xtns)
(export qif-map-entry:allowed-parent-types)
(export qif-map-entry:allowed-types)
(export qif-map-entry:clone)
(export qif-map-entry:description)
(export qif-map-entry:display?)
(export qif-map-entry:gnc-name)
(export qif-map-entry:new-acct?)
(export qif-map-entry:qif-name)
(export qif-map-entry:set-allowed-types!)
(export qif-map-entry:set-description!)
(export qif-map-entry:set-display?!)
(export qif-map-entry:set-gnc-name!)
(export qif-map-entry:set-new-acct?!)
(export qif-map-entry:set-qif-name!)
(export qif-split:amount)
(export qif-split:category)
(export qif-split:category-is-account?)
(export qif-split:mark)
(export qif-split:matching-cleared)
(export qif-split:memo)
(export qif-split:miscx-category)
(export qif-split:set-amount!)
(export qif-split:set-category!)
(export qif-split:set-category-is-account?!)
(export qif-split:set-category-private!)
(export qif-split:set-mark!)
(export qif-split:set-matching-cleared!)
(export qif-split:set-memo!)
(export qif-stock-symbol:set-name!)
(export qif-stock-symbol:set-symbol!)
(export qif-stock-symbol:set-type!)
(export qif-ticker-map:add-ticker!)
(export qif-ticker-map:lookup-symbol)
(export qif-ticker-map:lookup-type)
(export qif-xtn:action)
(export qif-xtn:address)
(export qif-xtn:cleared)
(export qif-xtn:commission)
(export qif-xtn:date)
(export qif-xtn:default-split)
(export qif-xtn:from-acct)
(export qif-xtn:mark)
(export qif-xtn:num-shares)
(export qif-xtn:number)
(export qif-xtn:payee)
(export qif-xtn:security-name)
(export qif-xtn:set-action!)
(export qif-xtn:set-address!)
(export qif-xtn:set-cleared!)
(export qif-xtn:set-commission!)
(export qif-xtn:set-date!)
(export qif-xtn:set-default-split!)
(export qif-xtn:set-from-acct!)
(export qif-xtn:set-mark!)
(export qif-xtn:set-num-shares!)
(export qif-xtn:set-number!)
(export qif-xtn:set-payee!)
(export qif-xtn:set-security-name!)
(export qif-xtn:set-share-price!)
(export qif-xtn:set-split-amounts!)
(export qif-xtn:set-splits!)
(export qif-xtn:share-price)
(export qif-xtn:split-amounts)
(export qif-xtn:splits)
(define (construct class)
(apply (record-constructor class)

View File

@ -23,8 +23,35 @@
;; Boston, MA 02110-1301, USA gnu@gnu.org
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-module (gnucash qif-import qif-parse))
(eval-when (compile load eval expand)
(load-extension "libgnc-gnome" "scm_init_sw_gnome_module"))
(use-modules (sw_gnome))
(use-modules (gnucash core-utils))
(use-modules (gnucash utilities))
(use-modules (gnucash engine))
(use-modules (gnucash qif-import qif-guess-map))
(use-modules (gnucash string))
(use-modules (srfi srfi-1))
(use-modules (srfi srfi-13))
(use-modules (ice-9 regex))
(export qif-parse:check-date-format)
(export qif-parse:check-number-format)
(export qif-parse:check-number-formats)
(export qif-parse:parse-acct-type)
(export qif-parse:parse-action-field)
(export qif-parse:parse-bang-field)
(export qif-parse:parse-cleared-field)
(export qif-parse:parse-date/format)
(export qif-parse:parse-number/format)
(export qif-parse:parse-numbers/format)
(export qif-parse:print-date)
(export qif-parse:print-number)
(export qif-parse:print-numbers)
(export qif-split:parse-category)
(export qif-parse:fix-year)
(define regexp-enabled?
(defined? 'make-regexp))

View File

@ -25,9 +25,26 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-module (gnucash qif-import qif-to-gnc))
(eval-when (compile load eval expand)
(load-extension "libgnc-gnome" "scm_init_sw_gnome_module"))
(use-modules (sw_gnome))
(use-modules (gnucash core-utils))
(use-modules (gnucash engine))
(use-modules (gnucash utilities))
(use-modules (gnucash string))
(use-modules (gnucash app-utils))
(use-modules (gnucash qif-import qif-dialog-utils))
(use-modules (gnucash qif-import qif-objects))
(use-modules (gnucash qif-import qif-utils))
(use-modules (gnucash qif-import qif-guess-map))
(use-modules (srfi srfi-13))
(use-modules (ice-9 match))
(use-modules (gnucash string))
(export qif-import:qif-to-gnc)
(export qif-import:qif-to-gnc-undo)
(export gnc:account-tree-get-transactions)
(define (n- n) (gnc-numeric-neg n))
(define (nsub a b) (gnc-numeric-sub a b 0 GNC-DENOM-LCD))
@ -1240,3 +1257,4 @@
;; Destroy the accounts
(xaccAccountBeginEdit root)
(xaccAccountDestroy root))))

View File

@ -23,9 +23,25 @@
;; Boston, MA 02110-1301, USA gnu@gnu.org
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-module (gnucash qif-import qif-utils))
;; We do this initialization here because src/gnome isn't a real module.
;; Note: Guile 2 needs to find the symbols from the extension at compile time already
(eval-when (compile load eval expand)
(load-extension "libgnc-gnome" "scm_init_sw_gnome_module"))
(use-modules (gnucash utilities))
(use-modules (sw_gnome))
(use-modules (srfi srfi-13))
(export qif-import:canceled)
(export qif-import:check-pause)
(export qif-import:log)
(export qif-import:reset-cancel-pause)
(export qif-import:cancel)
(export qif-import:canceled)
(export qif-import:toggle-pause)
(define qif-import:paused #f)
(define qif-import:canceled #f)
@ -53,4 +69,3 @@
(define (qif-import:check-pause progress-dialog)
(while (and qif-import:paused (not qif-import:canceled))
(gnc-progress-dialog-update progress-dialog)))

View File

@ -16,8 +16,8 @@
;; Boston, MA 02110-1301, USA gnu@gnu.org
(define-module (gnucash string))
(use-modules (srfi srfi-13))
(use-modules (srfi srfi-13))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; gnc:string-rcontains

View File

@ -408,6 +408,17 @@ draw_cell (GnucashSheet *sheet, SheetBlock *block,
color_type = gnc_table_get_color (table, virt_loc, &hatching);
gnucash_get_style_classes (sheet, stylectxt, color_type, use_neg_class);
if (sheet->read_only)
{
if (!gtk_style_context_has_class (stylectxt, GTK_STYLE_CLASS_BACKGROUND))
gtk_style_context_set_state (stylectxt, GTK_STATE_FLAG_INSENSITIVE);
}
else
{
if (gtk_style_context_has_class (stylectxt, GTK_STYLE_CLASS_BACKGROUND))
gtk_style_context_set_state (stylectxt, GTK_STATE_FLAG_NORMAL);
}
// Are we in a read-only row? Then make the background color somewhat more grey.
if ((virt_loc.phys_row_offset < block->style->nrows)
&& (table->model->dividing_row_upper >= 0)
@ -627,6 +638,8 @@ gnucash_sheet_draw_internal (GnucashSheet* sheet, cairo_t* cr,
if (!sheet_block || !sheet_block->style)
return FALSE;
sheet->read_only = gnc_table_model_read_only (sheet->table->model);
for ( ; virt_loc.vcell_loc.virt_row < sheet->num_virt_rows;
virt_loc.vcell_loc.virt_row++ )
{

View File

@ -44,6 +44,7 @@ struct _GnucashSheet
gpointer popup_data;
Table *table;
gboolean read_only;
GtkWidget *reg;

View File

@ -97,7 +97,8 @@ set(GUILE_DEPENDS
gnc_add_scheme_targets(scm-report-1
SOURCES "${report_SCHEME_1}"
OUTPUT_DIR "gnucash/report"
DEPENDS "${GUILE_DEPENDS}")
DEPENDS "${GUILE_DEPENDS}"
MAKE_LINKS)
gnc_add_scheme_targets(scm-report-2
SOURCES "${report_SCHEME_2}"

View File

@ -20,8 +20,43 @@
;; Boston, MA 02110-1301, USA gnu@gnu.org
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(use-modules (ice-9 match))
(define-module (gnucash report commodity-utilities))
(use-modules (gnucash core-utils))
(use-modules (gnucash engine))
(use-modules (gnucash utilities))
(use-modules (gnucash app-utils))
(use-modules (gnucash report report-utilities))
(use-modules (srfi srfi-1))
(use-modules (srfi srfi-26))
(use-modules (ice-9 match))
(export gnc:get-match-commodity-splits)
(export gnc:get-match-commodity-splits-sorted)
(export gnc:get-all-commodity-splits )
(export gnc:exchange-by-euro-numeric)
(export gnc:get-commodity-totalavg-prices)
(export gnc:get-commoditylist-totalavg-prices)
(export gnc:get-commodity-inst-prices)
(export gnc:pricelist-price-find-nearest)
(export gnc:pricealist-lookup-nearest-in-time)
(export gnc:resolve-unknown-comm)
(export gnc:get-exchange-totals)
(export gnc:get-exchange-cost-totals)
(export gnc:make-exchange-alist)
(export gnc:make-exchange-cost-alist)
(export gnc:exchange-by-euro)
(export gnc:exchange-if-same)
(export gnc:make-exchange-function)
(export gnc:exchange-by-pricedb-latest )
(export gnc:exchange-by-pricedb-nearest)
(export gnc:exchange-by-pricealist-nearest)
(export gnc:case-exchange-fn)
(export gnc:case-exchange-time-fn)
(export gnc:case-price-fn)
(export gnc:sum-collector-commodity)
(export gnc:uniform-commodity?)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Functions to get splits with interesting data from accounts.

View File

@ -22,16 +22,30 @@
;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
;; 02111-1307 USA
(define-module (gnucash eguile eguile-html-utilities))
; using all of these seems like overkill --
; not sure which are really required
(use-modules (gnucash engine))
(use-modules (gnucash utilities))
(use-modules (gnucash app-utils))
(use-modules (gnucash report))
(use-modules (ice-9 regex)) ; for regular expressions
(use-modules (srfi srfi-13)) ; for extra string functions
(export string-substitute-alist)
(export font-name-to-style-info-eguile)
(define-public (string-substitute-alist str sub-alist)
(with-output-to-string
(lambda ()
(string-for-each
(lambda (c)
(display
(or (assv-ref sub-alist c)
c)))
str))))
(define (string-repeat s n)
;; return a string made of n copies of string s
(string-join (make-list n s) ""))
@ -87,7 +101,7 @@
(and (defined? 'make-regexp)
(make-regexp "([[:space:]]+(bold|semi-bold|book|regular|medium|light))?([[:space:]]+(normal|roman|italic|oblique))?([[:space:]]+(condensed))?[[:space:]]+([[:digit:]]+)" regexp/icase)))
(define-public (font-name-to-style-info font-name)
(define (font-name-to-style-info-eguile font-name)
;;; Convert a font name as return by a font option to CSS format.
;;; e.g. "URW Bookman L Bold Italic 12" becomes
;;; "font-family: URW Bookman L; font-size: 12pt; font-style: italic; font-weight: bold"

View File

@ -22,6 +22,8 @@
;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
;; 02111-1307 USA
(define-module (gnucash eguile eguile-utilities))
(use-modules (ice-9 match))
; using all of these seems like overkill --
; not sure which are really required
@ -41,7 +43,7 @@
(define-public (gnc-monetary-neg? monetary)
;; return true if the monetary value is negative
(issue-deprecated-warning "gnc-monetary-neg? is deprecated")
(issue-deprecation-warning "gnc-monetary-neg? is deprecated")
(negative? (gnc:gnc-monetary-amount monetary)))
;; 'Safe' versions of cdr and cadr that don't crash

View File

@ -86,18 +86,13 @@
(use-modules (ice-9 regex)) ; for regular expressions
(use-modules (ice-9 rdelim)) ; for read-line
(use-modules (ice-9 local-eval)) ; for the-environment
(use-modules (gnucash app-utils)) ; for _
(use-modules (gnucash core-utils)); for G_ N_
(use-modules (gnucash utilities)) ; for gnc:html-string-sanitize
(define-public (string-substitute-alist str sub-alist)
(with-output-to-string
(lambda ()
(string-for-each
(lambda (c)
(display
(or (assv-ref sub-alist c)
c)))
str))))
(load-and-reexport (gnucash eguile eguile-utilities)
(gnucash eguile eguile-html-utilities))
(export eguile-file-to-string)
;; regexps used to find start and end of code segments
(define startre (and (defined? 'make-regexp) (make-regexp "<\\?scm(:d)?[[:space:]]")))
@ -166,8 +161,3 @@
(unless (eof-object? next)
(local-eval next local-env)
(lp (read))))))))))))
(export eguile-file-to-string)
(load-from-path "gnucash/eguile/eguile-utilities")
(load-from-path "gnucash/eguile/eguile-html-utilities")

View File

@ -495,8 +495,42 @@
;; user. This class simply maps its contents to the html-table.
;;
(define-module (gnucash report html-acct-table))
(use-modules (srfi srfi-2))
(use-modules (srfi srfi-9))
(use-modules (gnucash core-utils))
(use-modules (gnucash engine))
(use-modules (gnucash app-utils))
(use-modules (gnucash report commodity-utilities))
(use-modules (gnucash report report-utilities))
(use-modules (gnucash report html-utilities))
(use-modules (gnucash report html-text))
(use-modules (gnucash report html-table))
(export <html-acct-table>)
(export gnc:html-acct-table?)
(export gnc:_make-html-acct-table_)
(export gnc:make-html-acct-table)
(export gnc:make-html-acct-table/env)
(export gnc:make-html-acct-table/env/accts)
(export gnc:_html-acct-table-matrix_)
(export gnc:_html-acct-table-set-matrix!_)
(export gnc:_html-acct-table-env_)
(export gnc:_html-acct-table-set-env!_)
(export gnc:html-acct-table-add-accounts!)
(export gnc:html-acct-table-num-rows)
(export gnc:html-acct-table-get-row)
(export gnc:html-acct-table-get-cell)
(export gnc:html-acct-table-set-cell!)
(export gnc:html-acct-table-get-row-env)
(export gnc:html-acct-table-set-row-env!)
(export gnc:account-code-less-p)
(export gnc:account-name-less-p)
(export gnc:account-path-less-p)
(export gnc:html-table-add-labeled-amount-line!)
(export gnc:html-table-add-account-balances)
(export gnc-commodity-table)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; <html-acct-table> class
@ -512,6 +546,8 @@
(define (gnc:make-html-acct-table)
(gnc:_make-html-acct-table_ (gnc:make-html-table) #f))
(define gnc:html-acct-table-set-env! gnc:_html-acct-table-set-env!_)
(define (gnc:make-html-acct-table/env env)
(let ((acct-table (gnc:make-html-acct-table)))
(gnc:html-acct-table-set-env! acct-table env)

View File

@ -24,7 +24,25 @@
;; Boston, MA 02110-1301, USA gnu@gnu.org
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-module (gnucash report html-anytag))
(use-modules (srfi srfi-9))
(use-modules (gnucash core-utils))
(use-modules (gnucash report html-style-info))
(use-modules (gnucash report html-document))
(export <html-anytag>)
(export gnc:html-anytag?)
(export gnc:html-anytag-data)
(export gnc:html-anytag-set-data!)
(export gnc:html-anytag-style)
(export gnc:html-anytag-append-data!)
(export gnc:html-anytag-set-style!)
(export gnc:html-anytag-render div doc)
(export gnc:make-html-div)
(export gnc:make-html-div/markup)
(export gnc:make-html-span)
(export gnc:make-html-span/markup)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; <html-anytag> class

View File

@ -21,6 +21,60 @@
;; 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 <html-barchart>)
(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 <html-barchart>
(make-record-type '<html-barchart>
'(width
@ -249,17 +303,6 @@
(set! rownum (+ 1 rownum)))
newcol)))
(define (gnc:not-all-zeros data)
(define (myor list)
(begin
(gnc:debug "list" list)
(if (null? list) #f
(or (car list) (myor (cdr list))))))
(cond ((number? data) (not (= 0 data)))
((list? data) (myor (map gnc:not-all-zeros data)))
(else #f)))
(define (gnc:html-barchart-prepend-column! barchart newcol)
(let ((rows (gnc:html-barchart-data barchart))
(this-row #f)

View File

@ -24,8 +24,36 @@
;; Boston, MA 02110-1301, USA gnu@gnu.org
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-module (gnucash report html-chart))
(use-modules (gnucash core-utils))
(use-modules (gnucash json builder)) ;for building JSON options
(use-modules (gnucash report html-utilities))
(use-modules (srfi srfi-9))
(use-modules (ice-9 match))
;; html-chart.scm
(export gnc:html-chart?)
(export gnc:make-html-chart)
(export gnc:html-chart-data)
(export gnc:html-chart-set-data!)
(export gnc:html-chart-width)
(export gnc:html-chart-set-width!)
(export gnc:html-chart-height)
(export gnc:html-chart-set-height!)
(export gnc:html-chart-type)
(export gnc:html-chart-set-type!)
(export gnc:html-chart-title)
(export gnc:html-chart-get)
(export gnc:html-chart-set!)
(export gnc:html-chart-currency-iso)
(export gnc:html-chart-set-currency-iso!)
(export gnc:html-chart-currency-symbol)
(export gnc:html-chart-set-currency-symbol!)
(export gnc:html-chart-render)
(export gnc:html-chart-set-custom-x-axis-ticks?!)
(export gnc:html-chart-set-custom-y-axis-ticks?!)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
@ -33,8 +61,6 @@
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(use-modules (ice-9 match))
;; nested-alist-set! parameters are
;; lst - a nested alist e.g. (list (cons 'key1 'val1)
;; (cons 'key2 (list (cons 'key2-sub1 'val2a))))

View File

@ -21,9 +21,69 @@
;; Boston, MA 02110-1301, USA gnu@gnu.org
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-module (gnucash report html-document))
(use-modules (gnucash html))
(use-modules (srfi srfi-9))
(use-modules (gnucash report html-anytag))
(use-modules (gnucash report html-barchart))
(use-modules (gnucash report html-chart))
(use-modules (gnucash report html-linechart))
(use-modules (gnucash report html-piechart))
(use-modules (gnucash report html-scatter))
(use-modules (gnucash report html-style-info))
(use-modules (gnucash report html-style-sheet))
(use-modules (gnucash report html-table))
(use-modules (gnucash report html-text))
(use-modules (gnucash report report-utilities))
(use-modules (gnucash utilities))
(use-modules (ice-9 match))
(use-modules (srfi srfi-1))
(use-modules (srfi srfi-9))
(export <html-document>)
(export gnc:html-document?)
(export gnc:make-html-document-internal)
(export gnc:make-html-document)
(export gnc:html-document-set-title!)
(export gnc:html-document-title)
(export gnc:html-document-set-headline!)
(export gnc:html-document-headline)
(export gnc:html-document-set-style-text!)
(export gnc:html-document-style-text)
(export gnc:html-document-set-style-sheet!)
(export gnc:html-document-style-sheet)
(export gnc:html-document-set-style-stack!)
(export gnc:html-document-style-stack)
(export gnc:html-document-set-style-internal!)
(export gnc:html-document-style)
(export gnc:html-document-set-objects!)
(export gnc:html-document-objects)
(export gnc:html-document?)
(export gnc:html-document-set-style!)
(export gnc:html-document-tree-collapse)
(export gnc:html-document-render)
(export gnc:html-document-push-style)
(export gnc:html-document-pop-style)
(export gnc:html-document-add-object!)
(export gnc:html-document-append-objects!)
(export gnc:html-document-fetch-markup-style)
(export gnc:html-document-fetch-data-style)
(export gnc:html-document-markup-start)
(export gnc:html-document-markup-end)
(export gnc:html-document-render-data)
(export gnc:html-document-export-string)
(export gnc:html-document-set-export-string)
(export gnc:html-document-export-error)
(export gnc:html-document-set-export-error)
(export <html-object>)
(export gnc:html-object?)
(export gnc:make-html-object-internal)
(export gnc:make-html-object)
(export gnc:html-object-renderer)
(export gnc:html-object-set-renderer!)
(export gnc:html-object-data)
(export gnc:html-object-set-data!)
(export gnc:html-object-render)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; <html-document> class

View File

@ -24,10 +24,23 @@
;; Boston, MA 02110-1301, USA gnu@gnu.org
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-module (gnucash report html-fonts))
(eval-when (compile load eval expand)
(load-extension "libgnc-report" "scm_init_sw_report_module"))
(use-modules (sw_report))
(use-modules (gnucash core-utils))
(use-modules (gnucash app-utils options))
(use-modules (gnucash report html-document))
(use-modules (ice-9 regex))
;; html-fonts.scm
(export register-font-options)
(export add-css-information-to-doc)
(export font-name-to-style-info)
(define (string-strip s1 s2)
(let ((idx (string-contains-ci s1 s2)))
(string-append

View File

@ -24,6 +24,69 @@
;; Boston, MA 02110-1301, USA gnu@gnu.org
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-module (gnucash report html-linechart))
(use-modules (srfi srfi-1))
(use-modules (gnucash utilities))
(use-modules (gnucash report html-chart)
(gnucash report report-utilities))
(export <html-linechart>)
(export gnc:html-linechart? )
(export gnc:make-html-linechart-internal)
(export gnc:make-html-linechart)
(export gnc:html-linechart-data)
(export gnc:html-linechart-set-data!)
(export gnc:html-linechart-width)
(export gnc:html-linechart-set-width!)
(export gnc:html-linechart-height)
(export gnc:html-linechart-set-height!)
(export gnc:html-linechart-x-axis-label)
(export gnc:html-linechart-set-x-axis-label!)
(export gnc:html-linechart-y-axis-label)
(export gnc:html-linechart-set-y-axis-label!)
(export gnc:html-linechart-row-labels)
(export gnc:html-linechart-set-row-labels!)
(export gnc:html-linechart-row-labels-rotated?)
(export gnc:html-linechart-set-row-labels-rotated?!)
(export gnc:html-linechart-stacked?)
(export gnc:html-linechart-set-stacked?!)
(export gnc:html-linechart-markers?)
(export gnc:html-linechart-set-markers?!)
(export gnc:html-linechart-major-grid?)
(export gnc:html-linechart-set-major-grid?!)
(export gnc:html-linechart-minor-grid?)
(export gnc:html-linechart-set-minor-grid?!)
(export gnc:html-linechart-col-labels)
(export gnc:html-linechart-set-col-labels!)
(export gnc:html-linechart-col-colors)
(export gnc:html-linechart-set-col-colors!)
(export gnc:html-linechart-legend-reversed?)
(export gnc:html-linechart-set-legend-reversed?!)
(export gnc:html-linechart-title)
(export gnc:html-linechart-set-title!)
(export gnc:html-linechart-subtitle)
(export gnc:html-linechart-set-subtitle!)
(export gnc:html-linechart-button-1-line-urls)
(export gnc:html-linechart-set-button-1-line-urls!)
(export gnc:html-linechart-button-2-line-urls)
(export gnc:html-linechart-set-button-2-line-urls!)
(export gnc:html-linechart-button-3-line-urls)
(export gnc:html-linechart-set-button-3-line-urls!)
(export gnc:html-linechart-button-1-legend-urls)
(export gnc:html-linechart-set-button-1-legend-urls!)
(export gnc:html-linechart-button-2-legend-urls)
(export gnc:html-linechart-set-button-2-legend-urls!)
(export gnc:html-linechart-button-3-legend-urls)
(export gnc:html-linechart-set-button-3-legend-urls!)
(export gnc:html-linechart-append-row!)
(export gnc:html-linechart-prepend-row!)
(export gnc:html-linechart-append-column!)
(export gnc:html-linechart-prepend-column!)
(export gnc:html-linechart-render linechart)
(export gnc:html-linechart-set-line-width!)
(export gnc:html-linechart-line-width)
(define <html-linechart>
(make-record-type '<html-linechart>
'(width
@ -304,17 +367,6 @@
(set! rownum (+ 1 rownum)))
newcol)))
(define (gnc:not-all-zeros data)
(define (myor list)
(begin
(gnc:debug "list" list)
(if (null? list) #f
(or (car list) (myor (cdr list))))))
(cond ((number? data) (not (= 0 data)))
((list? data) (myor (map gnc:not-all-zeros data)))
(else #f)))
(define (gnc:html-linechart-prepend-column! linechart newcol)
(let ((rows (gnc:html-linechart-data linechart))
(this-row #f)

View File

@ -21,6 +21,44 @@
;; Boston, MA 02110-1301, USA gnu@gnu.org
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-module (gnucash report html-piechart))
(use-modules (gnucash utilities))
(use-modules (gnucash report html-chart)
(gnucash report report-utilities))
(export <html-piechart>)
(export gnc:html-piechart?)
(export gnc:make-html-piechart-internal)
(export gnc:make-html-piechart)
(export gnc:html-piechart-data)
(export gnc:html-piechart-set-data!)
(export gnc:html-piechart-width)
(export gnc:html-piechart-set-width!)
(export gnc:html-piechart-height)
(export gnc:html-piechart-set-height!)
(export gnc:html-piechart-labels)
(export gnc:html-piechart-set-labels!)
(export gnc:html-piechart-colors)
(export gnc:html-piechart-set-colors!)
(export gnc:html-piechart-title)
(export gnc:html-piechart-set-title!)
(export gnc:html-piechart-subtitle)
(export gnc:html-piechart-set-subtitle!)
(export gnc:html-piechart-button-1-slice-urls)
(export gnc:html-piechart-set-button-1-slice-urls!)
(export gnc:html-piechart-button-2-slice-urls)
(export gnc:html-piechart-set-button-2-slice-urls!)
(export gnc:html-piechart-button-3-slice-urls)
(export gnc:html-piechart-set-button-3-slice-urls!)
(export gnc:html-piechart-button-1-legend-urls)
(export gnc:html-piechart-set-button-1-legend-urls!)
(export gnc:html-piechart-button-2-legend-urls)
(export gnc:html-piechart-set-button-2-legend-urls!)
(export gnc:html-piechart-button-3-legend-urls)
(export gnc:html-piechart-set-button-3-legend-urls!)
(export gnc:html-piechart-render)
(define <html-piechart>
(make-record-type '<html-piechart>
'(width

View File

@ -24,6 +24,37 @@
;; Boston, MA 02110-1301, USA gnu@gnu.org
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-module (gnucash report html-scatter))
(use-modules (gnucash utilities))
(use-modules (gnucash report html-chart)
(gnucash report report-utilities))
(export <html-scatter>)
(export gnc:html-scatter-add-datapoint!)
(export gnc:html-scatter-data)
(export gnc:html-scatter-height)
(export gnc:html-scatter-marker)
(export gnc:html-scatter-markercolor)
(export gnc:html-scatter-render)
(export gnc:html-scatter-set-data!)
(export gnc:html-scatter-set-height!)
(export gnc:html-scatter-set-marker!)
(export gnc:html-scatter-set-markercolor!)
(export gnc:html-scatter-set-subtitle!)
(export gnc:html-scatter-set-title!)
(export gnc:html-scatter-set-width!)
(export gnc:html-scatter-set-x-axis-label!)
(export gnc:html-scatter-set-y-axis-label!)
(export gnc:html-scatter-subtitle)
(export gnc:html-scatter-title)
(export gnc:html-scatter-width)
(export gnc:html-scatter-x-axis-label)
(export gnc:html-scatter-y-axis-label)
(export gnc:html-scatter?)
(export gnc:make-html-scatter)
(export gnc:make-html-scatter-internal)
(define <html-scatter>
(make-record-type '<html-scatter>
'(width

View File

@ -21,8 +21,59 @@
;; Boston, MA 02110-1301, USA gnu@gnu.org
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-module (gnucash report html-style-info))
(use-modules (ice-9 match))
(use-modules (srfi srfi-9))
(use-modules (gnucash utilities))
(use-modules (gnucash engine))
(use-modules (gnucash app-utils))
(export <html-data-style-info>)
(export <html-markup-style-info>)
(export <html-style-table>)
(export gnc:default-html-gnc-monetary-renderer)
(export gnc:default-html-gnc-numeric-renderer)
(export gnc:default-html-number-renderer)
(export gnc:default-html-string-renderer)
(export gnc:html-data-style-info-data)
(export gnc:html-data-style-info-inheritable?)
(export gnc:html-data-style-info-merge)
(export gnc:html-data-style-info-renderer)
(export gnc:html-data-style-info-set-data!)
(export gnc:html-data-style-info-set-inheritable?!)
(export gnc:html-data-style-info-set-renderer!)
(export gnc:html-data-style-info?)
(export gnc:html-data-style-info?)
(export gnc:html-markup-style-info-attributes)
(export gnc:html-markup-style-info-inheritable?)
(export gnc:html-markup-style-info-merge)
(export gnc:html-markup-style-info-set!)
(export gnc:html-markup-style-info-set-attribute!)
(export gnc:html-markup-style-info-set-attributes!)
(export gnc:html-markup-style-info-set-inheritable?!)
(export gnc:html-markup-style-info-set-tag!)
(export gnc:html-markup-style-info-tag)
(export gnc:html-markup-style-info?)
(export gnc:html-style-info-merge)
(export gnc:html-style-table-compile)
(export gnc:html-style-table-compiled)
(export gnc:html-style-table-compiled?)
(export gnc:html-style-table-fetch)
(export gnc:html-style-table-inheritable)
(export gnc:html-style-table-primary)
(export gnc:html-style-table-set!)
(export gnc:html-style-table-set-compiled!)
(export gnc:html-style-table-set-inheritable!)
(export gnc:html-style-table-uncompile)
(export gnc:html-style-table?)
(export gnc:make-html-data-style-info)
(export gnc:make-html-data-style-info-internal)
(export gnc:make-html-markup-style-info)
(export gnc:make-html-markup-style-info-internal)
(export gnc:make-html-style-table)
(export gnc:make-html-style-table-internal)
(export gnc:default-price-renderer)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; <html-markup-style-info> class

View File

@ -21,9 +21,51 @@
;; Boston, MA 02110-1301, USA gnu@gnu.org
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-module (gnucash report html-style-sheet))
(use-modules (srfi srfi-9))
(use-modules (ice-9 match))
(use-modules (gnucash core-utils))
(use-modules (gnucash engine))
(use-modules (gnucash utilities))
(use-modules (gnucash app-utils))
(use-modules (gnucash report html-document))
(use-modules (gnucash report html-style-info))
(export <html-style-sheet-template>)
(export gnc:html-style-sheet-template?)
(export gnc:html-style-sheet-template-version)
(export gnc:html-style-sheet-template-set-version!)
(export gnc:html-style-sheet-template-name)
(export gnc:html-style-sheet-template-set-name!)
(export gnc:html-style-sheet-template-options-generator)
(export gnc:html-style-sheet-template-set-options-generator!)
(export gnc:html-style-sheet-template-renderer)
(export gnc:html-style-sheet-template-set-renderer!)
(export gnc:html-style-sheet-template-find)
(export gnc:define-html-style-sheet)
(export <html-style-sheet>)
(export gnc:html-style-sheet?)
(export gnc:html-style-sheet-name)
(export gnc:html-style-sheet-set-name!)
(export gnc:html-style-sheet-type)
(export gnc:html-style-sheet-set-type!)
(export gnc:html-style-sheet-options)
(export gnc:html-style-sheet-set-options!)
(export gnc:html-style-sheet-renderer)
(export gnc:html-style-sheet-set-renderer!)
(export gnc:make-html-style-sheet-internal)
(export gnc:html-style-sheet-style)
(export gnc:html-style-sheet-set-style!)
(export gnc:make-html-style-sheet)
(export gnc:restore-html-style-sheet)
(export gnc:html-style-sheet-apply-changes)
(export gnc:html-style-sheet-render)
(export gnc:get-html-style-sheets)
(export gnc:get-html-templates)
(export gnc:html-style-sheet-find)
(export gnc:save-style-sheet-options)
(export gnc:html-style-sheet-remove)
(define *gnc:_style-sheet-templates_* (make-hash-table 23))
(define *gnc:_style-sheets_* (make-hash-table 23))

View File

@ -23,8 +23,82 @@
;; Boston, MA 02110-1301, USA gnu@gnu.org
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-module (gnucash report html-table))
(use-modules (srfi srfi-2))
(use-modules (srfi srfi-9))
(use-modules (gnucash engine))
(use-modules (gnucash report html-style-info))
(use-modules (gnucash report html-document))
(use-modules (gnucash report report-utilities))
(export <html-table>)
(export gnc:html-table?)
(export <html-table-cell>)
(export gnc:make-html-table-cell-internal)
(export gnc:make-html-table-cell)
(export gnc:make-html-table-cell/size)
(export gnc:make-html-table-cell/markup)
(export gnc:make-html-table-cell/size/markup)
(export gnc:make-html-table-header-cell)
(export gnc:make-html-table-header-cell/markup)
(export gnc:make-html-table-header-cell/size)
(export gnc:make-html-table-cell/min-width)
(export gnc:html-table-cell?)
(export gnc:html-table-cell-rowspan)
(export gnc:html-table-cell-set-rowspan!)
(export gnc:html-table-cell-colspan)
(export gnc:html-table-cell-set-colspan!)
(export gnc:html-table-cell-tag)
(export gnc:html-table-cell-set-tag!)
(export gnc:html-table-cell-data)
(export gnc:html-table-cell-set-data-internal!)
(export gnc:html-table-cell-style)
(export gnc:html-table-cell-set-style-internal!)
(export gnc:html-table-cell-set-style!)
(export gnc:html-table-cell-append-objects!)
(export gnc:html-table-cell-render)
(export gnc:make-html-table-internal)
(export gnc:make-html-table)
(export gnc:html-table-data)
(export gnc:html-table-set-data!)
(export gnc:html-table-caption)
(export gnc:html-table-set-caption!)
(export gnc:html-table-set-col-headers!)
(export gnc:html-table-multirow-col-headers)
(export gnc:html-table-set-multirow-col-headers!)
(export gnc:html-table-style)
(export gnc:html-table-set-style-internal!)
(export gnc:html-table-row-styles)
(export gnc:html-table-set-row-styles!)
(export gnc:html-table-row-markup-table)
(export gnc:html-table-row-markup)
(export gnc:html-table-set-row-markup-table!)
(export gnc:html-table-set-row-markup!)
(export gnc:html-table-col-styles)
(export gnc:html-table-set-col-styles!)
(export gnc:html-table-col-headers-style)
(export gnc:html-table-set-col-headers-style!)
(export gnc:html-table-row-headers-style)
(export gnc:html-table-set-row-headers-style!)
(export gnc:html-table-set-last-row-style!)
(export gnc:html-table-set-style!)
(export gnc:html-table-set-col-style!)
(export gnc:html-table-set-row-style!)
(export gnc:html-table-row-style)
(export gnc:html-table-col-style)
(export gnc:html-table-num-rows)
(export gnc:html-table-set-num-rows-internal!)
(export gnc:html-table-num-columns)
(export gnc:html-table-append-row/markup!)
(export gnc:html-table-prepend-row/markup!)
(export gnc:html-table-append-row!)
(export gnc:html-table-prepend-row!)
(export gnc:html-table-get-cell)
(export gnc:html-table-set-cell!)
(export gnc:html-table-set-cell/tag!)
(export gnc:html-table-append-column!)
(export gnc:html-table-render)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;

View File

@ -21,9 +21,49 @@
;; Boston, MA 02110-1301, USA gnu@gnu.org
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-module (gnucash report html-text))
(use-modules (gnucash core-utils))
(use-modules (gnucash report html-style-info))
(use-modules (gnucash report html-document))
(use-modules (srfi srfi-9))
(use-modules (ice-9 match))
(export <html-text>)
(export gnc:html-text?)
(export gnc:make-html-text-internal)
(export gnc:make-html-text)
(export gnc:html-text?)
(export gnc:html-text-body)
(export gnc:html-text-set-body-internal!)
(export gnc:html-text-set-body!)
(export gnc:html-text-style)
(export gnc:html-text-set-style-internal!)
(export gnc:html-text-set-style!)
(export gnc:html-text-append!)
(export gnc:html-markup)
(export gnc:html-markup/attr)
(export gnc:html-markup/no-end)
(export gnc:html-markup/attr/no-end)
(export gnc:html-markup/format)
(export gnc:html-markup-p)
(export gnc:html-markup-tt)
(export gnc:html-markup-em)
(export gnc:html-markup-b)
(export gnc:html-markup-i)
(export gnc:html-markup-h1)
(export gnc:html-markup-h2)
(export gnc:html-markup-h3)
(export gnc:html-markup-br)
(export gnc:html-markup-hr)
(export gnc:html-markup-ol)
(export gnc:html-markup-ul)
(export gnc:html-markup-anchor)
(export gnc:html-markup-img)
(export gnc:html-text-render)
(export gnc:html-text-render-markup)
(export gnc:html-markup/open-tag-only)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; <html-text> class
;; just plain-old text. some utilities to add markup.
@ -133,7 +173,7 @@
(apply string-append
(gnc:html-document-tree-collapse rendered-elt)))
(#t
(format "hold on there podner. form='~s'\n" rendered-elt)
(format #f "hold on there podner. form=~s\n" rendered-elt)
""))))
entities))))

View File

@ -22,10 +22,55 @@
;; Boston, MA 02110-1301, USA gnu@gnu.org
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-module (gnucash report html-utilities))
(use-modules (gnucash core-utils))
(use-modules (gnucash engine))
(use-modules (gnucash utilities))
(use-modules (gnucash app-utils))
(use-modules (gnucash html))
(use-modules (gnucash report report-core))
(use-modules (gnucash report report-utilities))
(use-modules (gnucash report html-style-info))
(use-modules (gnucash report html-text))
(use-modules (gnucash report html-table))
(use-modules (ice-9 match))
(export gnc:html-make-empty-cell)
(export gnc:html-make-empty-cells)
(export gnc:account-anchor-text)
(export gnc:split-anchor-text)
(export gnc:transaction-anchor-text)
(export gnc:transaction-doclink-anchor-text)
(export gnc:report-anchor-text)
(export gnc:make-report-anchor)
(export gnc:html-account-anchor)
(export gnc:html-split-anchor)
(export gnc:html-transaction-anchor)
(export gnc:html-transaction-doclink-anchor)
(export gnc:html-invoice-doclink-anchor)
(export gnc:html-price-anchor)
(export gnc:customer-anchor-text)
(export gnc:job-anchor-text)
(export gnc:vendor-anchor-text)
(export gnc:invoice-anchor-text)
(export gnc:owner-anchor-text)
(export gnc:owner-report-text)
(export gnc:assign-colors)
(export gnc:html-table-append-ruler!)
(export gnc:html-make-exchangerates)
(export gnc:html-make-rates-table)
(export gnc:html-render-options-changed)
(export gnc:html-make-generic-warning)
(export gnc:html-make-no-account-warning)
(export gnc:html-make-generic-budget-warning)
(export gnc:html-make-generic-options-warning)
(export gnc:html-make-generic-simple-warning)
(export gnc:html-make-empty-data-warning)
(export gnc:html-make-options-link)
(export gnc:html-js-include)
(export gnc:html-css-include)
;; returns a list with n #f (empty cell) values
(define (gnc:html-make-empty-cell) #f)
(define (gnc:html-make-empty-cells n)
@ -209,10 +254,10 @@
(define (gnc:html-make-exchangerates common-commodity exchange-fn accounts)
(issue-deprecation-warning
"gnc:html-make-exchangerates is deprecated. use gnc:html-make-rates-table instead.")
(let ((comm-list (gnc:accounts-get-commodities accounts common-commodity))
(entries (length comm-list))
(markup (lambda (c) (gnc:make-html-table-cell/markup "number-cell" c)))
(table (gnc:make-html-table)))
(let* ((comm-list (gnc:accounts-get-commodities accounts common-commodity))
(entries (length comm-list))
(markup (lambda (c) (gnc:make-html-table-cell/markup "number-cell" c)))
(table (gnc:make-html-table)))
(unless (= 0 entries)
(for-each
(lambda (commodity)

View File

@ -21,7 +21,22 @@
;; Boston, MA 02110-1301, USA gnu@gnu.org
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-module (gnucash report options-utilities))
(use-modules (gnucash core-utils))
(use-modules (gnucash app-utils))
(export gnc:options-add-report-date!)
(export gnc:options-add-date-interval!)
(export gnc:options-add-interval-choice!)
(export gnc:options-add-account-levels!)
(export gnc:options-add-account-selection!)
(export gnc:options-add-currency!)
(export gnc:options-add-price-source!)
(export gnc:options-add-plot-size!)
(export gnc:options-add-marker-choice!)
(export gnc:options-add-sort-method!)
(export gnc:options-add-subtotal-view!)
;; These are just a bunch of options which were useful in several
;; reports and hence they got defined in a separate function.

View File

@ -19,21 +19,100 @@
;; 51 Franklin Street, Fifth Floor Fax: +1-617-542-2652
;; Boston, MA 02110-1301, USA gnu@gnu.org
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-module (gnucash report report-core))
(eval-when (compile load eval expand)
(load-extension "libgnc-report" "scm_init_sw_report_module"))
(use-modules (gnucash engine))
(use-modules (gnucash utilities))
(use-modules (gnucash app-utils))
(use-modules (gnucash core-utils))
(eval-when (compile load eval expand)
(load-extension "libgnc-report" "scm_init_sw_report_module"))
(use-modules (sw_report))
(use-modules (gnucash gnome-utils))
(use-modules (ice-9 match))
(use-modules (srfi srfi-1))
(use-modules (srfi srfi-9))
(use-modules (gnucash report report-register-hooks))
(use-modules (gnucash report html-style-sheet))
(use-modules (gnucash report html-document))
(use-modules (gnucash report html-utilities))
; Export the swig-wrapped symbols in the public interface of this module
(let ((i (module-public-interface (current-module))))
(module-use! i (resolve-interface '(sw_report))))
(load-and-reexport (sw_report))
(export <report>)
(export gnc:all-report-template-guids)
(export gnc:custom-report-template-guids)
(export gnc:define-report)
(export gnc:delete-report)
(export gnc:find-report-template)
(export gnc:is-custom-report-type)
(export gnc:make-report)
(export gnc:make-report-options)
(export gnc:menuname-asset-liability)
(export gnc:menuname-budget)
(export gnc:menuname-business-reports)
(export gnc:menuname-custom)
(export gnc:menuname-example)
(export gnc:menuname-experimental)
(export gnc:menuname-income-expense)
(export gnc:menuname-multicolumn)
(export gnc:menuname-reports)
(export gnc:menuname-taxes)
(export gnc:optname-invoice-number)
(export gnc:optname-reportname)
(export gnc:pagename-accounts)
(export gnc:pagename-display)
(export gnc:pagename-general)
(export gnc:rename-report)
(export gnc:report-ctext)
(export gnc:report-dirty?)
(export gnc:report-editor-widget)
(export gnc:report-embedded-list)
(export gnc:report-export-thunk)
(export gnc:report-export-types)
(export gnc:report-id)
(export gnc:report-menu-name)
(export gnc:report-name)
(export gnc:report-needs-save?)
(export gnc:report-options)
(export gnc:report-render-html)
(export gnc:report-run)
(export gnc:report-serialize)
(export gnc:report-set-ctext!)
(export gnc:report-set-dirty?!)
(export gnc:report-set-editor-widget!)
(export gnc:report-set-id!)
(export gnc:report-set-needs-save?!)
(export gnc:report-set-options!)
(export gnc:report-set-stylesheet!)
(export gnc:report-set-type!)
(export gnc:report-stylesheet)
(export gnc:report-template-export-thunk)
(export gnc:report-template-export-types)
(export gnc:report-template-has-unique-name?)
(export gnc:report-template-in-menu?)
(export gnc:report-template-is-custom/template-guid?)
(export gnc:report-template-menu-name)
(export gnc:report-template-menu-name/report-guid)
(export gnc:report-template-menu-path)
(export gnc:report-template-menu-tip)
(export gnc:report-template-name)
(export gnc:report-template-new-options)
(export gnc:report-template-new-options/report-guid)
(export gnc:report-template-options-changed-cb)
(export gnc:report-template-options-cleanup-cb)
(export gnc:report-template-options-generator)
(export gnc:report-template-renderer)
(export gnc:report-template-renderer/report-guid)
(export gnc:report-template-report-guid)
(export gnc:report-template-set-report-guid!)
(export gnc:report-template-version)
(export gnc:report-templates-for-each)
(export gnc:report-to-template-new)
(export gnc:report-to-template-update)
(export gnc:report-type)
(export gnc:restore-report-by-guid)
(export gnc:restore-report-by-guid-with-custom-template)
;; Terminology in this file:
;; report-template: a report definition of some form. This can be a report

View File

@ -23,8 +23,14 @@
;; Boston, MA 02110-1301, USA gnu@gnu.org
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-module (gnucash report report-register-hooks))
(use-modules (gnucash utilities))
(use-modules (srfi srfi-9))
(export gnc:register-report-hook)
(export gnc:lookup-register-report)
(define gnc:*register-report-hash* (make-hash-table 23))
;; Keep a hash-table of records, keyed off the account type. Each

View File

@ -17,11 +17,93 @@
;; 51 Franklin Street, Fifth Floor Fax: +1-617-542-2652
;; Boston, MA 02110-1301, USA gnu@gnu.org
(use-modules (srfi srfi-26))
(define-module (gnucash report report-utilities))
(use-modules (srfi srfi-1))
(use-modules (srfi srfi-13))
(use-modules (srfi srfi-26))
(use-modules (ice-9 format))
(use-modules (ice-9 match))
(use-modules (gnucash utilities))
(use-modules (gnucash core-utils))
(use-modules (gnucash engine))
(use-modules (gnucash app-utils))
(use-modules (gnucash report html-text))
(use-modules (gnucash report html-acct-table))
(use-modules (gnucash gnome-utils))
(export list-ref-safe)
(export list-set-safe!)
(export gnc:monetary->string)
(export gnc:not-all-zeros)
(export gnc:account-has-shares?)
(export gnc:account-is-stock?)
(export gnc:account-is-inc-exp?)
(export gnc:account-full-name<?)
(export gnc:accounts-get-children-depth)
(export gnc:filter-accountlist-type)
(export gnc:decompose-accountlist)
(export gnc:account-get-type-string-plural)
(export gnc:accounts-get-commodities)
(export gnc:get-current-account-tree-depth)
(export gnc:accounts-and-all-descendants)
(export gnc:make-value-collector)
(export gnc:make-commodity-collector)
(export gnc:collector+)
(export gnc:collector-)
(export gnc:commodity-collector-get-negated)
(export gnc:account-accumulate-at-dates)
(export gnc:account-get-balance-at-date)
(export gnc:account-get-balances-at-dates)
(export gnc:account-get-comm-balance-at-date)
(export gnc:account-get-comm-value-interval)
(export gnc:account-get-comm-value-at-date)
(export gnc:accounts-get-balance-helper)
(export gnc:accounts-get-comm-total-profit)
(export gnc:accounts-get-comm-total-income)
(export gnc:accounts-get-comm-total-expense)
(export gnc:accounts-get-comm-total-assets)
(export gnc:account-get-balance-interval)
(export gnc:account-get-comm-balance-interval)
(export gnc:accountlist-get-comm-balance-interval)
(export gnc:accountlist-get-comm-balance-interval-with-closing)
(export gnc:accountlist-get-comm-balance-at-date)
(export gnc:accountlist-get-comm-balance-at-date-with-closing)
(export gnc:query-set-match-non-voids-only!)
(export gnc:query-set-match-voids-only!)
(export gnc:split-voided?)
(export gnc:report-starting)
(export gnc:report-render-starting)
(export gnc:report-percent-done)
(export gnc:report-finished)
(export gnc:accounts-count-splits)
(export gnc-commodity-collector-allzero?)
(export gnc:monetary+)
(export gnc:monetaries-add)
(export gnc:account-get-trans-type-balance-interval)
(export gnc:account-get-trans-type-balance-interval-with-closing)
(export gnc:account-get-trans-type-splits-interval)
(export gnc:budget-get-start-date)
(export gnc:budget-get-end-date)
(export gnc:budget-account-get-net)
(export gnc:budget-accountlist-get-net)
(export gnc:budget-account-get-initial-balance)
(export gnc:budget-accountlist-get-initial-balance)
(export budget-account-sum budget)
(export gnc:get-account-period-rolledup-budget-value)
(export gnc:budget-account-get-rolledup-net)
(export gnc:get-assoc-account-balances)
(export gnc:select-assoc-account-balance)
(export gnc:get-assoc-account-balances-total)
(export gnc:multiline-to-html-text)
(export make-file-url)
(export gnc:strify)
(export gnc:pk)
(export gnc:dump-book)
(export gnc:dump-invoices)
(export gnc:dump-lot)
(define (list-ref-safe list elt)
(and (> (length list) elt)
(list-ref list elt)))
@ -412,24 +494,24 @@
((date . rest)
(define (before-date? s) (<= (to-date s) date))
(define (after-date? s) (< date (to-date s)))
(match splits
(cond
;; end of splits, but still has dates. pad with last-result
;; until end of dates.
(() (lp '() rest (cons last-result result) last-result))
;; end of splits, but still has dates. pad with last-result
;; until end of dates.
((null? splits) (lp '() rest (cons last-result result) last-result))
;; the next split is still before date.
((and (_ (? before-date?) . _) (head . tail))
(lp tail dates result (split->elt head)))
;; the next split is still before date.
((and (pair? (cdr splits)) (before-date? (cadr splits)))
(lp (cdr splits) dates result (split->elt (car splits))))
;; head split after date, accumulate previous result
(((? after-date?) . tail)
(lp splits rest (cons last-result result) last-result))
;; head split after date, accumulate previous result
((after-date? (car splits))
(lp splits rest (cons last-result result) last-result))
;; head split before date, next split after date, or end.
((head . tail)
(let ((head-result (split->elt head)))
(lp tail rest (cons head-result result) head-result))))))))
;; head split before date, next split after date, or end.
(else
(let ((head-result (split->elt (car splits))))
(lp (cdr splits) rest (cons head-result result) head-result))))))))
;; This works similar as above but returns a commodity-collector,
;; thus takes care of children accounts with different currencies.
@ -974,6 +1056,12 @@ query instead.")
;; ***************************************************************************
(define (gnc:not-all-zeros data)
(cond
((number? data) (not (= 0 data)))
((pair? data) (any gnc:not-all-zeros data))
(else #f)))
;; Adds "file:///" to the beginning of a URL if it doesn't already exist
;;
;; @param url URL

View File

@ -33,756 +33,38 @@
(use-modules (gnucash engine))
(use-modules (gnucash app-utils))
(use-modules (gnucash gnome-utils))
(use-modules (gnucash html))
;; commodity-utilities.scm
(export gnc:get-match-commodity-splits)
(export gnc:get-match-commodity-splits-sorted)
(export gnc:get-all-commodity-splits )
(export gnc:exchange-by-euro-numeric)
(export gnc:get-commodity-totalavg-prices)
(export gnc:get-commoditylist-totalavg-prices)
(export gnc:get-commodity-inst-prices)
(export gnc:pricelist-price-find-nearest)
(export gnc:pricealist-lookup-nearest-in-time)
(export gnc:resolve-unknown-comm)
(export gnc:get-exchange-totals)
(export gnc:get-exchange-cost-totals)
(export gnc:make-exchange-alist)
(export gnc:make-exchange-cost-alist)
(export gnc:exchange-by-euro)
(export gnc:exchange-if-same)
(export gnc:make-exchange-function)
(export gnc:exchange-by-pricedb-latest )
(export gnc:exchange-by-pricedb-nearest)
(export gnc:exchange-by-pricealist-nearest)
(export gnc:case-exchange-fn)
(export gnc:case-exchange-time-fn)
(export gnc:case-price-fn)
(export gnc:sum-collector-commodity)
;; options-utilities.scm
(export gnc:options-add-report-date!)
(export gnc:options-add-date-interval!)
(export gnc:options-add-interval-choice!)
(export gnc:options-add-account-levels!)
(export gnc:options-add-account-selection!)
(export gnc:options-add-currency!)
(export gnc:options-add-price-source!)
(export gnc:options-add-plot-size!)
(export gnc:options-add-marker-choice!)
(export gnc:options-add-sort-method!)
(export gnc:options-add-subtotal-view!)
;; html-fonts.scm
(export register-font-options)
(export add-css-information-to-doc)
;; html-utilities.scm
(export gnc:html-make-empty-cell)
(export gnc:html-make-empty-cells)
(export gnc:account-anchor-text)
(export gnc:split-anchor-text)
(export gnc:transaction-anchor-text)
(export gnc:transaction-doclink-anchor-text)
(export gnc:report-anchor-text)
(export gnc:make-report-anchor)
(export gnc:html-account-anchor)
(export gnc:html-split-anchor)
(export gnc:html-transaction-anchor)
(export gnc:html-transaction-doclink-anchor)
(export gnc:html-invoice-doclink-anchor)
(export gnc:html-price-anchor)
(export gnc:customer-anchor-text)
(export gnc:job-anchor-text)
(export gnc:vendor-anchor-text)
(export gnc:invoice-anchor-text)
(export gnc:owner-anchor-text)
(export gnc:owner-report-text)
(export gnc:assign-colors)
(export gnc:html-table-append-ruler!)
(export gnc:html-make-exchangerates)
(export gnc:html-make-rates-table)
(export gnc:html-render-options-changed)
(export gnc:html-make-generic-warning)
(export gnc:html-make-no-account-warning)
(export gnc:html-make-generic-budget-warning)
(export gnc:html-make-generic-options-warning)
(export gnc:html-make-generic-simple-warning)
(export gnc:html-make-empty-data-warning)
(export gnc:html-make-options-link)
(export gnc:html-js-include)
(export gnc:html-css-include)
;; report-core.scm
(export gnc:menuname-reports)
(export gnc:menuname-asset-liability)
(export gnc:menuname-income-expense)
(export gnc:menuname-budget)
(export gnc:menuname-taxes)
(export gnc:menuname-example)
(export gnc:menuname-multicolumn)
(export gnc:menuname-experimental)
(export gnc:menuname-custom)
(export gnc:menuname-business-reports)
(export gnc:pagename-general)
(export gnc:pagename-accounts)
(export gnc:pagename-display)
(export gnc:optname-reportname)
(export gnc:optname-invoice-number)
(export gnc:define-report)
(export <report>)
(export gnc:report-template-new-options/report-guid)
(export gnc:report-template-menu-name/report-guid)
(export gnc:report-template-renderer/report-guid)
(export gnc:report-template-new-options)
(export gnc:report-template-version)
(export gnc:report-template-name)
(export gnc:report-template-report-guid)
(export gnc:report-template-set-report-guid!)
(export gnc:report-template-options-generator)
(export gnc:report-template-options-cleanup-cb)
(export gnc:report-template-options-changed-cb)
(export gnc:report-template-renderer)
(export gnc:report-template-in-menu?)
(export gnc:report-template-menu-path)
(export gnc:report-template-menu-name)
(export gnc:report-template-menu-tip)
(export gnc:report-template-export-types)
(export gnc:report-template-export-thunk)
(export gnc:report-template-has-unique-name?)
(export gnc:report-type)
(export gnc:report-set-type!)
(export gnc:report-id)
(export gnc:report-set-id!)
(export gnc:report-options)
(export gnc:report-set-options!)
(export gnc:report-needs-save?)
(export gnc:report-set-needs-save?!)
(export gnc:report-dirty?)
(export gnc:report-set-dirty?!)
(export gnc:report-editor-widget)
(export gnc:report-set-editor-widget!)
(export gnc:report-ctext)
(export gnc:report-set-ctext!)
(export gnc:make-report)
(export gnc:restore-report-by-guid)
(export gnc:restore-report-by-guid-with-custom-template)
(export gnc:make-report-options)
(export gnc:report-export-types)
(export gnc:report-export-thunk)
(export gnc:report-menu-name)
(export gnc:report-name)
(export gnc:report-stylesheet)
(export gnc:report-set-stylesheet!)
(export gnc:all-report-template-guids)
(export gnc:custom-report-template-guids)
(export gnc:delete-report)
(export gnc:rename-report)
(export gnc:find-report-template)
(export gnc:report-serialize)
(export gnc:report-to-template-new)
(export gnc:report-to-template-update)
(export gnc:report-render-html)
(export gnc:report-run)
(export gnc:report-templates-for-each)
(export gnc:report-embedded-list)
(export gnc:report-template-is-custom/template-guid?)
(export gnc:is-custom-report-type)
;; html-barchart.scm
(export <html-barchart>)
(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:not-all-zeros)
(export gnc:html-barchart-prepend-column!)
(export gnc:html-barchart-render barchart)
;; html-document.scm
(export <html-document>)
(export gnc:html-document?)
(export gnc:make-html-document-internal)
(export gnc:make-html-document)
(export gnc:html-document-set-title!)
(export gnc:html-document-title)
(export gnc:html-document-set-headline!)
(export gnc:html-document-headline)
(export gnc:html-document-set-style-text!)
(export gnc:html-document-style-text)
(export gnc:html-document-set-style-sheet!)
(export gnc:html-document-style-sheet)
(export gnc:html-document-set-style-stack!)
(export gnc:html-document-style-stack)
(export gnc:html-document-set-style-internal!)
(export gnc:html-document-style)
(export gnc:html-document-set-objects!)
(export gnc:html-document-objects)
(export gnc:html-document?)
(export gnc:html-document-set-style!)
(export gnc:html-document-tree-collapse)
(export gnc:html-document-render)
(export gnc:html-document-push-style)
(export gnc:html-document-pop-style)
(export gnc:html-document-add-object!)
(export gnc:html-document-append-objects!)
(export gnc:html-document-fetch-markup-style)
(export gnc:html-document-fetch-data-style)
(export gnc:html-document-markup-start)
(export gnc:html-document-markup-end)
(export gnc:html-document-render-data)
(export gnc:html-document-export-string)
(export gnc:html-document-set-export-string)
(export gnc:html-document-export-error)
(export gnc:html-document-set-export-error)
(export <html-object>)
(export gnc:html-object?)
(export gnc:make-html-object-internal)
(export gnc:make-html-object)
(export gnc:html-object-renderer)
(export gnc:html-object-set-renderer!)
(export gnc:html-object-data)
(export gnc:html-object-set-data!)
(export gnc:html-object-render)
;; html-piechart.scm
(export <html-piechart>)
(export gnc:html-piechart?)
(export gnc:make-html-piechart-internal)
(export gnc:make-html-piechart)
(export gnc:html-piechart-data)
(export gnc:html-piechart-set-data!)
(export gnc:html-piechart-width)
(export gnc:html-piechart-set-width!)
(export gnc:html-piechart-height)
(export gnc:html-piechart-set-height!)
(export gnc:html-piechart-labels)
(export gnc:html-piechart-set-labels!)
(export gnc:html-piechart-colors)
(export gnc:html-piechart-set-colors!)
(export gnc:html-piechart-title)
(export gnc:html-piechart-set-title!)
(export gnc:html-piechart-subtitle)
(export gnc:html-piechart-set-subtitle!)
(export gnc:html-piechart-button-1-slice-urls)
(export gnc:html-piechart-set-button-1-slice-urls!)
(export gnc:html-piechart-button-2-slice-urls)
(export gnc:html-piechart-set-button-2-slice-urls!)
(export gnc:html-piechart-button-3-slice-urls)
(export gnc:html-piechart-set-button-3-slice-urls!)
(export gnc:html-piechart-button-1-legend-urls)
(export gnc:html-piechart-set-button-1-legend-urls!)
(export gnc:html-piechart-button-2-legend-urls)
(export gnc:html-piechart-set-button-2-legend-urls!)
(export gnc:html-piechart-button-3-legend-urls)
(export gnc:html-piechart-set-button-3-legend-urls!)
(export gnc:html-piechart-render)
;; html-scatter.scm
(export <html-scatter>)
(export gnc:html-scatter?)
(export gnc:make-html-scatter-internal)
(export gnc:make-html-scatter)
(export gnc:html-scatter-width)
(export gnc:html-scatter-set-width!)
(export gnc:html-scatter-height)
(export gnc:html-scatter-set-height!)
(export gnc:html-scatter-title)
(export gnc:html-scatter-set-title!)
(export gnc:html-scatter-subtitle)
(export gnc:html-scatter-set-subtitle!)
(export gnc:html-scatter-x-axis-label)
(export gnc:html-scatter-set-x-axis-label!)
(export gnc:html-scatter-y-axis-label)
(export gnc:html-scatter-set-y-axis-label!)
(export gnc:html-scatter-data)
(export gnc:html-scatter-set-data!)
(export gnc:html-scatter-marker)
(export gnc:html-scatter-set-marker!)
(export gnc:html-scatter-markercolor)
(export gnc:html-scatter-set-markercolor!)
(export gnc:html-scatter-add-datapoint!)
(export gnc:html-scatter-render)
;; html-linechart.scm
(export <html-linechart>)
(export gnc:html-linechart? )
(export gnc:make-html-linechart-internal)
(export gnc:make-html-linechart)
(export gnc:html-linechart-data)
(export gnc:html-linechart-set-data!)
(export gnc:html-linechart-width)
(export gnc:html-linechart-set-width!)
(export gnc:html-linechart-height)
(export gnc:html-linechart-set-height!)
(export gnc:html-linechart-x-axis-label)
(export gnc:html-linechart-set-x-axis-label!)
(export gnc:html-linechart-y-axis-label)
(export gnc:html-linechart-set-y-axis-label!)
(export gnc:html-linechart-row-labels)
(export gnc:html-linechart-set-row-labels!)
(export gnc:html-linechart-row-labels-rotated?)
(export gnc:html-linechart-set-row-labels-rotated?!)
(export gnc:html-linechart-stacked?)
(export gnc:html-linechart-set-stacked?!)
(export gnc:html-linechart-markers?)
(export gnc:html-linechart-set-markers?!)
(export gnc:html-linechart-major-grid?)
(export gnc:html-linechart-set-major-grid?!)
(export gnc:html-linechart-minor-grid?)
(export gnc:html-linechart-set-minor-grid?!)
(export gnc:html-linechart-col-labels)
(export gnc:html-linechart-set-col-labels!)
(export gnc:html-linechart-col-colors)
(export gnc:html-linechart-set-col-colors!)
(export gnc:html-linechart-legend-reversed?)
(export gnc:html-linechart-set-legend-reversed?!)
(export gnc:html-linechart-title)
(export gnc:html-linechart-set-title!)
(export gnc:html-linechart-subtitle)
(export gnc:html-linechart-set-subtitle!)
(export gnc:html-linechart-button-1-line-urls)
(export gnc:html-linechart-set-button-1-line-urls!)
(export gnc:html-linechart-button-2-line-urls)
(export gnc:html-linechart-set-button-2-line-urls!)
(export gnc:html-linechart-button-3-line-urls)
(export gnc:html-linechart-set-button-3-line-urls!)
(export gnc:html-linechart-button-1-legend-urls)
(export gnc:html-linechart-set-button-1-legend-urls!)
(export gnc:html-linechart-button-2-legend-urls)
(export gnc:html-linechart-set-button-2-legend-urls!)
(export gnc:html-linechart-button-3-legend-urls)
(export gnc:html-linechart-set-button-3-legend-urls!)
(export gnc:html-linechart-append-row!)
(export gnc:html-linechart-prepend-row!)
(export gnc:html-linechart-append-column!)
(export gnc:html-linechart-prepend-column!)
(export gnc:html-linechart-render linechart)
(export gnc:html-linechart-set-line-width!)
(export gnc:html-linechart-line-width)
;; html-style-info.scm
(export <html-markup-style-info>)
(export gnc:html-markup-style-info?)
(export gnc:make-html-markup-style-info-internal)
(export gnc:make-html-markup-style-info)
(export gnc:html-markup-style-info-set!)
(export gnc:html-markup-style-info-tag)
(export gnc:html-markup-style-info-set-tag!)
(export gnc:html-markup-style-info-attributes)
(export gnc:html-markup-style-info-set-attributes!)
(export gnc:html-markup-style-info-inheritable?)
(export gnc:html-markup-style-info-set-inheritable?!)
(export gnc:html-markup-style-info-set-attribute!)
(export gnc:html-markup-style-info-merge)
(export gnc:html-style-info-merge)
(export gnc:html-data-style-info-merge)
(export <html-data-style-info>)
(export gnc:html-data-style-info?)
(export gnc:make-html-data-style-info-internal)
(export gnc:make-html-data-style-info)
(export gnc:html-data-style-info?)
(export gnc:html-data-style-info-renderer)
(export gnc:html-data-style-info-set-renderer!)
(export gnc:html-data-style-info-data)
(export gnc:html-data-style-info-set-data!)
(export gnc:html-data-style-info-inheritable?)
(export gnc:html-data-style-info-set-inheritable?!)
(export gnc:default-html-string-renderer)
(export gnc:default-html-gnc-numeric-renderer)
(export gnc:default-html-gnc-monetary-renderer)
(export gnc:default-html-number-renderer)
(export <html-style-table>)
(export gnc:html-style-table?)
(export gnc:make-html-style-table-internal)
(export gnc:make-html-style-table)
(export gnc:html-style-table-primary)
(export gnc:html-style-table-compiled)
(export gnc:html-style-table-set-compiled!)
(export gnc:html-style-table-inheritable)
(export gnc:html-style-table-set-inheritable!)
(export gnc:html-style-table-compiled?)
(export gnc:html-style-table-compile)
(export gnc:html-style-table-uncompile)
(export gnc:html-style-table-fetch)
(export gnc:html-style-table-set!)
;; html-style-sheet.scm
(export <html-style-sheet-template>)
(export gnc:html-style-sheet-template?)
(export gnc:html-style-sheet-template-version)
(export gnc:html-style-sheet-template-set-version!)
(export gnc:html-style-sheet-template-name)
(export gnc:html-style-sheet-template-set-name!)
(export gnc:html-style-sheet-template-options-generator)
(export gnc:html-style-sheet-template-set-options-generator!)
(export gnc:html-style-sheet-template-renderer)
(export gnc:html-style-sheet-template-set-renderer!)
(export gnc:html-style-sheet-template-find)
(export gnc:define-html-style-sheet)
(export <html-style-sheet>)
(export gnc:html-style-sheet?)
(export gnc:html-style-sheet-name)
(export gnc:html-style-sheet-set-name!)
(export gnc:html-style-sheet-type)
(export gnc:html-style-sheet-set-type!)
(export gnc:html-style-sheet-options)
(export gnc:html-style-sheet-set-options!)
(export gnc:html-style-sheet-renderer)
(export gnc:html-style-sheet-set-renderer!)
(export gnc:make-html-style-sheet-internal)
(export gnc:html-style-sheet-style)
(export gnc:html-style-sheet-set-style!)
(export gnc:make-html-style-sheet)
(export gnc:restore-html-style-sheet)
(export gnc:html-style-sheet-apply-changes)
(export gnc:html-style-sheet-render)
(export gnc:get-html-style-sheets)
(export gnc:get-html-templates)
(export gnc:html-style-sheet-find)
(export gnc:html-style-sheet-remove)
;; html-acct-table.scm
(export <html-acct-table>)
(export gnc:html-acct-table?)
(export gnc:_make-html-acct-table_)
(export gnc:make-html-acct-table)
(export gnc:make-html-acct-table/env)
(export gnc:make-html-acct-table/env/accts)
(export gnc:_html-acct-table-matrix_)
(export gnc:_html-acct-table-set-matrix!_)
(export gnc:_html-acct-table-env_)
(export gnc:_html-acct-table-set-env!_)
(export gnc:html-acct-table-add-accounts!)
(export gnc:html-acct-table-num-rows)
(export gnc:html-acct-table-get-row)
(export gnc:html-acct-table-get-cell)
(export gnc:html-acct-table-set-cell!)
(export gnc:html-acct-table-get-row-env)
(export gnc:html-acct-table-set-row-env!)
(export gnc:account-code-less-p)
(export gnc:account-name-less-p)
(export gnc:account-path-less-p)
(export gnc:html-table-add-labeled-amount-line!)
(export gnc:html-table-add-account-balances)
(export gnc-commodity-table)
(export gnc:uniform-commodity?)
;; html-chart.scm
(export gnc:html-chart?)
(export gnc:make-html-chart)
(export gnc:html-chart-data)
(export gnc:html-chart-set-data!)
(export gnc:html-chart-width)
(export gnc:html-chart-set-width!)
(export gnc:html-chart-height)
(export gnc:html-chart-set-height!)
(export gnc:html-chart-type)
(export gnc:html-chart-set-type!)
(export gnc:html-chart-title)
(export gnc:html-chart-get)
(export gnc:html-chart-set!)
(export gnc:html-chart-currency-iso)
(export gnc:html-chart-set-currency-iso!)
(export gnc:html-chart-currency-symbol)
(export gnc:html-chart-set-currency-symbol!)
(export gnc:html-chart-render)
(export gnc:html-chart-set-custom-x-axis-ticks?!)
(export gnc:html-chart-set-custom-y-axis-ticks?!)
;; html-table.scm
(export <html-table>)
(export gnc:html-table?)
(export <html-table-cell>)
(export gnc:make-html-table-cell-internal)
(export gnc:make-html-table-cell)
(export gnc:make-html-table-cell/size)
(export gnc:make-html-table-cell/markup)
(export gnc:make-html-table-cell/size/markup)
(export gnc:make-html-table-header-cell)
(export gnc:make-html-table-header-cell/markup)
(export gnc:make-html-table-header-cell/size)
(export gnc:make-html-table-cell/min-width)
(export gnc:html-table-cell?)
(export gnc:html-table-cell-rowspan)
(export gnc:html-table-cell-set-rowspan!)
(export gnc:html-table-cell-colspan)
(export gnc:html-table-cell-set-colspan!)
(export gnc:html-table-cell-tag)
(export gnc:html-table-cell-set-tag!)
(export gnc:html-table-cell-data)
(export gnc:html-table-cell-set-data-internal!)
(export gnc:html-table-cell-style)
(export gnc:html-table-cell-set-style-internal!)
(export gnc:html-table-cell-set-style!)
(export gnc:html-table-cell-append-objects!)
(export gnc:html-table-cell-render)
(export gnc:make-html-table-internal)
(export gnc:make-html-table)
(export gnc:html-table-data)
(export gnc:html-table-set-data!)
(export gnc:html-table-caption)
(export gnc:html-table-set-caption!)
(export gnc:html-table-set-col-headers!)
(export gnc:html-table-multirow-col-headers)
(export gnc:html-table-set-multirow-col-headers!)
(export gnc:html-table-style)
(export gnc:html-table-set-style-internal!)
(export gnc:html-table-row-styles)
(export gnc:html-table-set-row-styles!)
(export gnc:html-table-row-markup-table)
(export gnc:html-table-row-markup)
(export gnc:html-table-set-row-markup-table!)
(export gnc:html-table-set-row-markup!)
(export gnc:html-table-col-styles)
(export gnc:html-table-set-col-styles!)
(export gnc:html-table-col-headers-style)
(export gnc:html-table-set-col-headers-style!)
(export gnc:html-table-row-headers-style)
(export gnc:html-table-set-row-headers-style!)
(export gnc:html-table-set-last-row-style!)
(export gnc:html-table-set-style!)
(export gnc:html-table-set-col-style!)
(export gnc:html-table-set-row-style!)
(export gnc:html-table-row-style)
(export gnc:html-table-col-style)
(export gnc:html-table-num-rows)
(export gnc:html-table-set-num-rows-internal!)
(export gnc:html-table-num-columns)
(export gnc:html-table-append-row/markup!)
(export gnc:html-table-prepend-row/markup!)
(export gnc:html-table-append-row!)
(export gnc:html-table-prepend-row!)
(export gnc:html-table-get-cell)
(export gnc:html-table-set-cell!)
(export gnc:html-table-set-cell/tag!)
(export gnc:html-table-append-column!)
(export gnc:html-table-render)
;; html-anytag.scm
(export <html-anytag>)
(export html-anytag?)
(export gnc:html-anytag-data)
(export gnc:html-anytag-set-data!)
(export gnc:html-anytag-style)
(export gnc:html-anytag-append-data!)
(export gnc:html-anytag-set-style!)
(export gnc:html-anytag-render div doc)
(export gnc:make-html-div)
(export gnc:make-html-div/markup)
(export gnc:make-html-span)
(export gnc:make-html-span/markup)
;; html-text.scm
(export <html-text>)
(export gnc:html-text?)
(export gnc:make-html-text-internal)
(export gnc:make-html-text)
(export gnc:html-text?)
(export gnc:html-text-body)
(export gnc:html-text-set-body-internal!)
(export gnc:html-text-set-body!)
(export gnc:html-text-style)
(export gnc:html-text-set-style-internal!)
(export gnc:html-text-set-style!)
(export gnc:html-text-append!)
(export gnc:html-markup)
(export gnc:html-markup/attr)
(export gnc:html-markup/no-end)
(export gnc:html-markup/attr/no-end)
(export gnc:html-markup/format)
(export gnc:html-markup-p)
(export gnc:html-markup-tt)
(export gnc:html-markup-em)
(export gnc:html-markup-b)
(export gnc:html-markup-i)
(export gnc:html-markup-h1)
(export gnc:html-markup-h2)
(export gnc:html-markup-h3)
(export gnc:html-markup-br)
(export gnc:html-markup-hr)
(export gnc:html-markup-ol)
(export gnc:html-markup-ul)
(export gnc:html-markup-anchor)
(export gnc:html-markup-img)
(export gnc:html-text-render)
(export gnc:html-text-render-markup)
;; report-utilities.scm
(export list-ref-safe)
(export list-set-safe!)
(export gnc:monetary->string)
(export gnc:account-has-shares?)
(export gnc:account-is-stock?)
(export gnc:account-is-inc-exp?)
(export gnc:account-full-name<?)
(export gnc:accounts-get-children-depth)
(export gnc:filter-accountlist-type)
(export gnc:decompose-accountlist)
(export gnc:account-get-type-string-plural)
(export gnc:accounts-get-commodities)
(export gnc:get-current-account-tree-depth)
(export gnc:accounts-and-all-descendants)
(export gnc:make-value-collector)
(export gnc:make-commodity-collector)
(export gnc:collector+)
(export gnc:collector-)
(export gnc:commodity-collector-get-negated)
(export gnc:account-accumulate-at-dates)
(export gnc:account-get-balance-at-date)
(export gnc:account-get-balances-at-dates)
(export gnc:account-get-comm-balance-at-date)
(export gnc:account-get-comm-value-interval)
(export gnc:account-get-comm-value-at-date)
(export gnc:accounts-get-balance-helper)
(export gnc:accounts-get-comm-total-profit)
(export gnc:accounts-get-comm-total-income)
(export gnc:accounts-get-comm-total-expense)
(export gnc:accounts-get-comm-total-assets)
(export gnc:account-get-balance-interval)
(export gnc:account-get-comm-balance-interval)
(export gnc:accountlist-get-comm-balance-interval)
(export gnc:accountlist-get-comm-balance-interval-with-closing)
(export gnc:accountlist-get-comm-balance-at-date)
(export gnc:accountlist-get-comm-balance-at-date-with-closing)
(export gnc:query-set-match-non-voids-only!)
(export gnc:query-set-match-voids-only!)
(export gnc:split-voided?)
(export gnc:report-starting)
(export gnc:report-render-starting)
(export gnc:report-percent-done)
(export gnc:report-finished)
(export gnc:accounts-count-splits)
(export gnc-commodity-collector-allzero?)
(export gnc:monetary+)
(export gnc:monetaries-add)
(export gnc:account-get-trans-type-balance-interval)
(export gnc:account-get-trans-type-balance-interval-with-closing)
(export gnc:account-get-trans-type-splits-interval)
(export gnc:budget-get-start-date)
(export gnc:budget-get-end-date)
(export gnc:budget-account-get-net)
(export gnc:budget-accountlist-get-net)
(export gnc:budget-account-get-initial-balance)
(export gnc:budget-accountlist-get-initial-balance)
(export budget-account-sum budget)
(export gnc:get-account-period-rolledup-budget-value)
(export gnc:budget-account-get-rolledup-net)
(export gnc:get-assoc-account-balances)
(export gnc:select-assoc-account-balance)
(export gnc:get-assoc-account-balances-total)
(export gnc:multiline-to-html-text)
(export gnc:default-price-renderer)
(export make-file-url)
(export gnc:strify)
(export gnc:pk)
(export gnc:dump-book)
(export gnc:dump-invoices)
(export gnc:dump-lot)
;; trep-engine.scm
(export gnc:trep-options-generator)
(export gnc:trep-renderer)
(export gnc:lists->csv)
;; report-register-hooks.scm
(export gnc:register-report-hook)
(export gnc:lookup-register-report)
(load-from-path "gnucash/report/commodity-utilities")
(load-from-path "gnucash/report/html-chart")
(load-from-path "gnucash/report/html-barchart")
(load-from-path "gnucash/report/html-document")
(load-from-path "gnucash/report/html-piechart")
(load-from-path "gnucash/report/html-scatter")
(load-from-path "gnucash/report/html-linechart")
(load-from-path "gnucash/report/html-style-info")
(load-from-path "gnucash/report/html-fonts")
(load-from-path "gnucash/report/html-style-sheet")
(load-from-path "gnucash/report/html-anytag")
(load-from-path "gnucash/report/html-table")
(load-from-path "gnucash/report/html-text")
(load-from-path "gnucash/report/html-acct-table")
(load-from-path "gnucash/report/html-utilities")
(load-from-path "gnucash/report/options-utilities")
(load-from-path "gnucash/report/report-utilities")
(load-from-path "gnucash/report/report-register-hooks")
(load-from-path "gnucash/report/report-core")
(load-from-path "gnucash/report/trep-engine")
(load-and-reexport (gnucash html)
(gnucash report html-style-sheet)
(gnucash report report-register-hooks)
(gnucash report html-utilities)
(gnucash report commodity-utilities)
(gnucash report report-utilities)
(gnucash report options-utilities)
(gnucash report html-chart)
(gnucash report html-fonts)
(gnucash report html-text)
(gnucash report html-anytag)
(gnucash report html-document)
(gnucash report html-table)
(gnucash report html-acct-table)
(gnucash report html-style-info)
(gnucash report trep-engine)
(gnucash report report-core))
;; Report uuids used for the category barcharts
(export category-barchart-income-uuid
category-barchart-expense-uuid
category-barchart-asset-uuid
category-barchart-liability-uuid)
(export report-module-loader)
(export category-barchart-income-uuid)
(export category-barchart-expense-uuid)
(export category-barchart-asset-uuid)
(export category-barchart-liability-uuid)
(define category-barchart-income-uuid "44f81bee049b4b3ea908f8dac9a9474e")
(define category-barchart-expense-uuid "b1f15b2052c149df93e698fe85a81ea6")
(define category-barchart-asset-uuid "e9cf815f79db44bcb637d0295093ae3d")
(define category-barchart-liability-uuid "faf410e8f8da481fbc09e4763da40bcc")
(export report-module-loader)
;; Given a list of module prefixes, load all guile modules with these prefixes
;; This assumes the modules are located on the file system in a
;; path matching the module prefix

View File

@ -31,6 +31,7 @@
(use-modules (gnucash core-utils))
(use-modules (gnucash app-utils))
(use-modules (gnucash report))
(use-modules (gnucash gnome-utils))
(use-modules (srfi srfi-9))
(define optname-to-date (N_ "To"))

View File

@ -25,6 +25,7 @@
(define-module (gnucash reports))
(use-modules (srfi srfi-13))
(use-modules (srfi srfi-8))
(use-modules (gnucash app-utils))
@ -32,6 +33,9 @@
(use-modules (gnucash engine))
(use-modules (gnucash report))
(use-modules (gnucash utilities))
(use-modules (gnucash reports standard register))
(use-modules (gnucash reports standard new-aging))
(use-modules (gnucash reports standard new-owner-report))
(export gnc:register-report-create)
(export gnc:invoice-report-create)
@ -40,20 +44,12 @@
(export gnc:owner-report-create)
(export gnc:owner-report-create-with-enddate)
(define report-dirs (list
(let ((loc-spec (if (string-prefix? "de_DE" (gnc-locale-name)) 'de_DE 'us)))
(report-module-loader
(list
'(gnucash reports standard) ; prefix for standard reports included in gnucash
'(gnucash reports example) ; rexample for example reports included in gnucash
))
; Determine which locale-specific prefix to add to the list above
; and then load all reports found in the given prefixes
(let* ((loc (gnc-locale-name))
(loc-spec (if (string-prefix? "de_DE" loc) 'de_DE 'us))
(all-dirs (append report-dirs
`((gnucash reports locale-specific ,loc-spec)))))
(report-module-loader all-dirs))
(use-modules (gnucash engine))
`(gnucash reports locale-specific ,loc-spec))))
(define (gnc:register-report-create account split query journal? ledger-type?
double? title debit-string credit-string)
@ -82,10 +78,7 @@
0
))
(use-modules (gnucash reports standard new-aging))
(define gnc:payables-report-create payables-report-create-internal)
(define gnc:receivables-report-create receivables-report-create-internal)
(use-modules (gnucash reports standard new-owner-report))
(define gnc:owner-report-create owner-report-create)
(define gnc:owner-report-create-with-enddate owner-report-create-with-enddate)

View File

@ -69,48 +69,6 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; Define an account record for cacheing information about all the accounts
(define (accrec-printer accrec port)
;; accrec printer. This is for debugging reports, so it uses
;; HTML for pretty-printing
(set-current-output-port port)
(display "accrec:- ")
(display " account: ") (display (dump (accrec-account accrec)))
(display " code: ") (display (accrec-code accrec))
(display " placeholder: ") (display (dump (accrec-placeholder? accrec)))
(display " namelink: ") (display (accrec-namelink accrec))
(display " commodity: ") (if (accrec-commodity accrec)
(display (gnc-commodity-get-mnemonic (accrec-commodity accrec)))
(display "#f"))
(display " balance-num: ") (if (accrec-balance-num accrec)
(display (gnc-numeric-to-double (accrec-balance-num accrec)))
;(display (gnc:monetary->string (accrec-balance-mny accrec)))
;(display (format-monetary (accrec-balance-num accrec))) ; not this -- too fancy
(display "#f"))
(display " depth: ") (display (accrec-depth accrec))
(display " treedepth: ") (display (accrec-treedepth accrec))
(display " non-zero?: ") (display (accrec-non-zero? accrec))
(display " summary?: ") (display (accrec-summary? accrec))
(display " subtotal-cc: ") (if (accrec-subtotal-cc accrec)
;(display (get-comm-coll-total (accrec-subtotal-cc accrec) #f))
;(display (format-comm-coll (accrec-subtotal-cc accrec)))
(display
(string-concatenate
(map-in-order
(lambda (mny)
(string-append (gnc:monetary->string mny) " "))
((accrec-subtotal-cc accrec) 'format gnc:make-gnc-monetary #f))))
(display "#f"))
(display " sublist: ") (if (accrec-sublist accrec)
(begin
(display "\n<ul>")
(for-each
(lambda (sub-accrec)
(display "\n<li>")
(accrec-printer sub-accrec port)
(display "</li>"))
(accrec-sublist accrec))
(display "</ul>"))
(display "#f")))
(define-record-type <accrec>
(newaccrec-full account code placeholder? namelink commodity balance-num depth
@ -129,6 +87,51 @@
(subtotal-cc accrec-subtotal-cc accrec-set-subtotal-cc!)
(sublist accrec-sublist accrec-set-sublist!))
(define (accrec-printer accrec port)
;; accrec printer. This is for debugging reports, so it uses
;; HTML for pretty-printing
(set-current-output-port port)
(display "accrec:- ")
(display " account: ") (display (dump (accrec-account accrec)))
(display " code: ") (display (accrec-code accrec))
(display " placeholder: ") (display (dump (accrec-placeholder? accrec)))
(display " namelink: ") (display (accrec-namelink accrec))
(display " commodity: ")
(if (accrec-commodity accrec)
(display (gnc-commodity-get-mnemonic (accrec-commodity accrec)))
(display "#f"))
(display " balance-num: ")
(if (accrec-balance-num accrec)
(display (gnc-numeric-to-double (accrec-balance-num accrec)))
(display "#f"))
(display " depth: ") (display (accrec-depth accrec))
(display " treedepth: ") (display (accrec-treedepth accrec))
(display " non-zero?: ") (display (accrec-non-zero? accrec))
(display " summary?: ") (display (accrec-summary? accrec))
(display " subtotal-cc: ")
(if (accrec-subtotal-cc accrec)
;;(display (get-comm-coll-total (accrec-subtotal-cc accrec) #f))
;;(display (format-comm-coll (accrec-subtotal-cc accrec)))
(display
(string-concatenate
(map-in-order
(lambda (mny)
(string-append (gnc:monetary->string mny) " "))
((accrec-subtotal-cc accrec) 'format gnc:make-gnc-monetary #f))))
(display "#f"))
(display " sublist: ")
(if (accrec-sublist accrec)
(begin
(display "\n<ul>")
(for-each
(lambda (sub-accrec)
(display "\n<li>")
(accrec-printer sub-accrec port)
(display "</li>"))
(accrec-sublist accrec))
(display "</ul>"))
(display "#f")))
(define (accrec-balance-mny accrec)
(gnc:make-gnc-monetary (accrec-commodity accrec) (accrec-balance-num accrec)))

View File

@ -572,6 +572,12 @@ developing over time"))
((null? (gnc-account-get-children acct))
(gnc:account-anchor-text acct))
;; because the tree-depth option for
;; accounts/levels goes up to 6. FIXME:
;; magic number.
((>= tree-depth 6)
(gnc:account-anchor-text acct))
(else
(gnc:make-report-anchor
reportguid report-obj

View File

@ -169,9 +169,9 @@
(opt-value displaypage optname-template-file)))
(opt-css-file (find-stylesheet
(opt-value displaypage optname-css-file)))
(opt-heading-font (font-name-to-style-info
(opt-heading-font (font-name-to-style-info-eguile
(opt-value displaypage optname-heading-font)))
(opt-text-font (font-name-to-style-info
(opt-text-font (font-name-to-style-info-eguile
(opt-value displaypage optname-text-font)))
(opt-logofile-header (opt-value displaypage optname-logofile-header))
(opt-logo-width-header (opt-value displaypage optname-logo-width-header))

View File

@ -238,9 +238,9 @@
(opt-value displaypage optname-template-file)))
(opt-css-file (find-stylesheet
(opt-value displaypage optname-css-file)))
(opt-heading-font (font-name-to-style-info
(opt-heading-font (font-name-to-style-info-eguile
(opt-value displaypage optname-heading-font)))
(opt-text-font (font-name-to-style-info
(opt-text-font (font-name-to-style-info-eguile
(opt-value displaypage optname-text-font)))
(opt-logofile (opt-value displaypage optname-logofile))
(opt-logo-width (opt-value displaypage optname-logo-width))

View File

@ -34,7 +34,7 @@ set(GUILE_DEPENDS
scm-core-utils
scm-test-report
scm-reports
scm-reports-standard-with-exposed-generator-links
scm-reports-standard-with-exposed-generator
scm-report-stylesheets
)

View File

@ -1,6 +1,6 @@
(use-modules (srfi srfi-64))
(use-modules (tests srfi64-extras))
(load-from-path "gnucash/report/html-fonts")
(use-modules (gnucash report html-fonts))
(setlocale LC_ALL "C")

View File

@ -1,7 +1,12 @@
(eval-when (compile load eval expand)
(load-extension "libgnc-report" "scm_init_sw_report_module"))
(use-modules (gnucash engine))
(use-modules (gnucash app-utils))
(use-modules (gnucash report))
(use-modules (gnucash report stylesheets plain))
(use-modules (gnucash report html-style-sheet))
(use-modules (srfi srfi-64))
(use-modules (ice-9 pretty-print))
(use-modules (sxml simple))

Some files were not shown because too many files have changed in this diff Show More