The subtotal summary-grid will tabulate subtotals - prime-sortkey
vertically, sec-sortkey horizontally. This will be useful, for
example, with prime-sortkey = accounts, sec-sortkey = date,
sec-subtotal = monthly... will produce a monthly time series
spreadsheet.
Introduces grid datastructure.
This is a simple list, each element is a vector
(vector row col data).
In the Transaction Report, row and col are defined
as a pair (cons sortvalue subtotal-heading), whereas:
- sortvalue = string/number used to sort the grid headers,
- subtotal-heading = string used as grid header row/col
- data = the gnc-monetary collector.
Context: https://wiki.gnucash.org/logs/2018/02/24.html#T05:43:50
Summary: I had formerly set some multichoice values to be a list.
However I think options.scm cannot handle list values. They must be
scheme symbols. It wasn't clear to me during TR refactoring and
development.
The root cause is in options.scm multichoice handling, whereby it's
trying to compare the option value with (eq?); in scheme (eq? (list
"A") (list "A")) is always #f.
06ad55cae9/libgnucash/app-utils/options.scm (L911)
is the relevant old code.
When the register is obscured by another window, the sheet would get
lot of draw events. This was tracked down to getting the foreground
colour for the item-edit widget for the state GTK_STATE_FLAG_NORMAL.
Changed this to use the value obtained from gtk_widget_get_state_flags.
In a previous commit I wrongly believed xgettext might not find
our strings if we used the fully namespaced boost::locale::translate or
aliased bl::translate instead of just translate. However that's
wrong, so I have changed the code to always use bl::translate.
There is now a directory for each respective file type directly in the gnucash source directory
(This was already started for gschema files before).
In principle all files of each type should go into these global directories. The only
exception is if such a file belongs to an optional module. In that case the file
remains located inside that module's directory. Currently we have ui, glade and gschema file
exceptions in aqb and ofx importers.
As part of this also:
- Drop POTFILIES.ignore. Relevant lines have been moved to POTFILES.skip
- Remove skip lines for scm file links. With intltool out of the way these are never picked up any more.
By default we require gettext 0.19.6 as this is needed to generate a translated version of gnucash.desktop and gnucash.appdata.xml.
However this version is not available on some platforms (most notably our own ubuntu 14.04LTS travis instance).
By setting ALLOW_OLD_GETTEXT=ON, the build configuration falls back to generating untranslated versions of said files instead.
At present these are
- log.conf
- config-user.scm (previously config.user-2.0)
Implement one-time migration of these files to the proper directory if they previously exist
Look for a log.conf file in gnc_userconfig_dir instead of gnc_userdata_dir
Note this commit also uses boost::locale::translate for the first time.
We may need to fine-tune our use, but in the current state strings marked
for translation using that function are already picked up for gnucash.pot.
Turns out the stream facet parser is really slow. Since we have a
well-constrained universe of input formats we don't really need that
overhead. This got a 33% improvement in loading a large SQLite database.
This way is a safer way to update the cache values in case the settings
changed signal fails to trigger or there is a double trigger and the
cached value gets out of sync with the preference value.
A previous commit 5b40df510 has eaten the <html> opening
tag which makes the whole document an invalid XML tree.
After this fix, the document is still not valid XHTML.
Until the exact DOCTYPE is finalised I suggest we
restore the root <html> tag.