Commit Graph

20589 Commits

Author SHA1 Message Date
Geert Janssens
705e866472 Bug 796054 follow up
Now that a separate wiki section has been written for the side effects of this bug
make the memo field of affected splits point to this wiki section.
2018-09-01 16:22:42 +02:00
Geert Janssens
d07f759ca3 Use alignment-safe buffer handling
Casting a char* to a struct containing a uint32_t is not universally safe
due to alignment constraints on reads on some platforms. Copy our possibly
unaligned source data into an aligned area of memory to avoid SIGBUS on
armhf.
Reported by vorlonofportland in PR#403. This commit the John's optimized
version of Vorlon's proposed fix.
2018-09-01 12:07:42 +02:00
Geert Janssens
4c87dd05ec Fix compiler warning issues
- add -Wno-deprecated-declarations to CXX_FLAGS as well. This was
  reported by vorlonofportland in PR#401 to become necessary for glib 2.58
  as that has deprecated g_type_class_add_private which appears in our
  c++ code.
- change -Wno-deprecated-register into -Wregister. The former appeared to
  be a clang dialect and alias for the latter (see
  https://github.com/Barro/compiler-warnings for an overview of clang
  and gcc warnings). It was moved to global CXX_FLAGS as it can only be
  added for g++.
2018-09-01 12:07:38 +02:00
Geert Janssens
bf00330eed Merge branch 'Bug796725' of https://github.com/Bob-IT/gnucash into maint 2018-08-31 23:55:01 +02:00
Geert Janssens
131df82135 Merge branch 'date-bugs' of https://github.com/Bob-IT/gnucash into maint 2018-08-31 22:01:45 +02:00
Geert Janssens
caaf9edc45 Use one single function to determine if an invoice is posted to ensure consistent behaviour
While debugging for bug 796054 I found cases where an invoice was unposted, but the toolbar
buttons and menu items were configured for a posted invoice. This should now be solved.
2018-08-31 20:58:36 +02:00
Geert Janssens
baf933acf2 Bug 796054 - unposting and reposting invoice doubles amounts
Add scrub function to unblock the double post transaction
2018-08-31 20:24:39 +02:00
Geert Janssens
1239876b5b Use GnuCash instead of Gnucash in OSX environment file
This is the result of a discussion on
Bug 796837 - GnuCash 3 has changed the capitalisation of the folder in Application Support on macOS
2018-08-31 19:04:40 +02:00
Geert Janssens
5ffb7fa20b Fix input of invoice post and due dates
In the conversion from a timespec pointer to a time64 in
https://github.com/Gnucash/gnucash/commit/6f89bd62b3cf
we lost the write-back of these two dates to the calling function.
Fixed by making the time64 members pointers again as the timespecs were before.
2018-08-31 14:35:15 +02:00
John Ralls
fc368b91d2 Restore the timespec_val column name in the slots table.
Renaming it would require a backwards-incompatible schema change,
something that shouldn't happen in the middle of a stable series.
2018-08-30 17:03:41 -07:00
John Ralls
6dfbf3d5e7 gnc:get-commodity-totalavg-prices shouldn't use 0-amount splits.
get-commodity-totalavg-prices seeks to create a share-weighted average of
all prices for a commodity and 0-share splits (normally used to book
trading gains) don't represent a price and so distort (sometimes
dramatically) the resulting average as well as creating extra invalid
entries in the resulting alist.
2018-08-30 11:02:58 -07:00
Geert Janssens
c977c2350a Merge branch 'sort-filter' of https://github.com/Bob-IT/gnucash into maint 2018-08-30 12:18:15 +02:00
John Ralls
28691b46ba Create srfi-64 tests for gnucash/report/report-system/commodity-utils.scm. 2018-08-28 15:11:14 -07:00
John Ralls
b1ee7c6eec Clarify and de-duplicate sumlist and report-list descriptions.
Also correct descriptions of gnc:get-exchange-totals and
gnc:get-exchange-cost-totals. Neither calculates prices.
2018-08-28 15:10:29 -07:00
John Ralls
704afc6e02 Comment to explain structuring an (env-transfer-foreign). 2018-08-28 15:10:29 -07:00
John Ralls
fe73f52bdb Guard against divide-by-zero errors. 2018-08-28 15:10:29 -07:00
John Ralls
4e88b8cb6c Remove the number-collector.
It is redundant and incorrect since gnc-numeric was replaced with Scheme
rationals in the report code.
2018-08-28 15:10:28 -07:00
Robert Fewell
a639dd9236 Reduce the number of times the register loads
When a register is created an initial query is run and then the filter
and sort item/reverse order is added and after each item the ledger is
refreshed. By adding a parameter to the three main functions to toggle
the refreshing, with a value of false at register creation, and moving
the gnc_ledger_display_refresh command this can be reduced to 2 from 5.

In the sort/filter dialogue the refresh parameter is TRUE allowing the
changes to be seen immediately.
2018-08-28 19:30:37 +01:00
Robert Fewell
e2801fd937 Change the default filter for General Ledger
The General Ledger default for the number of days shown is 30 but for
the Register it is 0, meaning show all. So change the default filter
based on ledger type and use this when determining if the setting should
 be saved or removed.
2018-08-28 19:30:28 +01:00
Robert Fewell
2dcb316280 White space removal and change tabs to spaces in qofbook.cpp/h 2018-08-25 11:10:32 +01:00
Robert Fewell
fd750a22eb Cache the number of days read only value
The KVP value for the qof_book_get_num_days_autoreadonly was being
called many times so it makes sense to cache it in the book to avoid
the KVP lookup.
2018-08-25 11:10:24 +01:00
Robert Fewell
8ad6e04549 Book Options did not raise when already open
If you open File->Properties and the dialogue gets hidden and you go to
open it again the existing dialogue was not being raised to the front.
This was due to a bad cast.
2018-08-24 16:52:17 +01:00
John Ralls
93f3a8ea82 Fix build of jenny.c on 32-bit builds, mingw-w64. 2018-08-23 11:49:49 -07:00
Robert Fewell
3456596a1c Bug 796814 - Changing a book's read-only threshold doesn't immediately affect open registers
Add test for change of read-only threshold to helper function for the
gnc_book_options_dialog_apply_cb which will then do a gui refresh.
2018-08-22 20:40:17 +01:00
Robert Fewell
67ee1d99a4 Bug 796812 - gnc_date_cell_get_date and gnc_date_cell_get_date_gdate have different date validation behaviour - part 2
Change the two register get_help functions to use gnc_date_cell_get_date
with the warn parameter FALSE, this way we only get one warning when the
date is out of range.

Also as no functions use gnc_date_cell_get_date_gdate it can be removed.
2018-08-22 20:38:36 +01:00
Robert Fewell
aabae1caf9 Bug 796812 - gnc_date_cell_get_date and gnc_date_cell_get_date_gdate have different date validation behaviour - part 1
Add gboolean parameter to gnc_date_cell_get_date to enable warning for
the date out of range dialogue and update every occurrence accordingly.
2018-08-22 20:36:51 +01:00
Robert Fewell
dd49756f4e Bug 796813 - Date validation inconsistent
Change gnc_split_register_save_date_cell function and the equivalent one
 in gncEntryLedgerModel to use time64 version of gnc_date_cell_get_date
which includes the warning for dates out of range.
2018-08-22 20:35:54 +01:00
Robert Fewell
4a3c6f8f85 Change saving to .gcm and Kvp for GNC_FEATURE_REG_SORT_FILTER
For the LD_GL save the filter and sort settings to the .gcm always.
For the rest, keep saving the filter and sort settings to kvp only
when the GNC_FEATURE_REG_SORT_FILTER is not set, if set then save
only to the .gcm file. This will be set on first use in version
4.0 where a conversion will be run to only use the .gcm meta file.
2018-08-19 16:06:17 +01:00
Robert Fewell
995e6b0f95 White space and tabs changed in search-date.c 2018-08-19 11:59:25 +01:00
Robert Fewell
39b24325d9 Bug 796725 - 4 of 6 Date Posted options fail to return
matching transactions.

gnc_date_edit_get_date returns the time64 value set to 00:00:00 for the
day entered so for the LTE and GT options gnc_date_edit_get_date_end
needs to be used for 23:59:59. For finding transactions on the date,
the use of QOF_DATE_MATCH_DAY needs to be used.
2018-08-19 11:55:43 +01:00
Geert Janssens
54a5097c60 Bug 796777 - CVE-2008-1391: Integer overflow in included strfmon function
We only used strfmon in one source file to generate three fixed format
strings. Instead of updating to a newer strfmon in borrowed I have
chosen to reimplement the string formatters for these strings in C++.
Note this is *not* a full c++ conversion of the full functionality
of assistant-loan. Only the string parsing has been redone.
2018-08-17 16:23:12 +02:00
Geert Janssens
34cb4925a4 Compile assistant-loan as c++
Fix only c++ compatibility issues, which primarily boils down
to dealing with stricter type checking.
2018-08-17 16:23:12 +02:00
Robert Fewell
6ba47846c0 Improve the generation of the filter text 2018-08-17 11:31:25 +01:00
Robert Fewell
a650693d07 New feature for register sort/filter settings move. 2018-08-17 11:31:25 +01:00
Robert Fewell
9423e0913b Remove white space and re-indent gnc-features.c 2018-08-17 11:31:25 +01:00
Robert Fewell
c6001d855a Allow loading the sort and filter settings for the GL
By default the GL loads the last 30 days but this can be changed and
saved depending on requirements.
2018-08-17 11:31:25 +01:00
Robert Fewell
ed05b89518 Load the sort and filter settings to the .gcm file.
Load the sort and filter settings first from the .gcm file and if none
are found try the account kvp entries. This is part of a transition to
saving and loading these settings only in the .gcm file.
2018-08-17 11:31:25 +01:00
Robert Fewell
13c5b53931 Save the sort and filter settings to the .gcm file
Save the sort and filter settings to the .gcm file as well as the
account kvp. If default entries are saved then the corresponding entry
in the .gcm file will be removed. This is part of a transition to saving
 these settings only in the .gcm file.
2018-08-17 11:31:25 +01:00
Robert Fewell
72a29a83af Fix the save option on sort/filter dialog
When unticking the save option on the sort and filter dialog the actual
save items are not cleared so check for this and clear the saved items.
2018-08-17 11:31:25 +01:00
Robert Fewell
8a0ee0e38f Hide the filter/sort save button when appropiate 2018-08-17 11:31:25 +01:00
Robert Fewell
e281b50b29 Add new filter option to register
Add new option to the register filter so that it will display the last
number of days based on current day. This is stored as an extra element
on the end of account filter setting.
2018-08-17 11:31:25 +01:00
Robert Fewell
97a566ae28 Creating filter was leaking while being put together 2018-08-17 11:31:25 +01:00
Robert Fewell
6eac7e1ed0 There is no reason why you can not just have an end date
Change the logic so the date checks are not nested.
2018-08-17 11:31:25 +01:00
Robert Fewell
632c7c724e Update the filter when General Journal created. 2018-08-17 11:31:25 +01:00
Robert Fewell
d74ec9aa6c Only show update the summary bar left labels when present 2018-08-17 11:31:25 +01:00
Robert Fewell
3f9a8977c1 Add the summary bar to the GL and subaccount registers
Add the summary bar to the General Journal and sub account register but
only show sort and filter labels.
2018-08-17 11:31:25 +01:00
Robert Fewell
b50c8a57fa Show whether there is a filter on the right of the summary bar
On the right of the summary bar indicate whether there is a filter and
if there is display a tooltip with the settings. Also the filter label
can be altered by the css class "gnc-class-highlight".
2018-08-17 11:31:25 +01:00
Robert Fewell
b4db066d84 Add the sort order to the right of the summary bar
Add the sort order to the right of the summary bar with a tooltip that
shows whether ascending or descending and an arrow. When arrow can
also be emphasized with css by using the class "gnc-class-highlight".
2018-08-17 11:31:25 +01:00
Robert Fewell
c3724431e9 Add a parameter to add_summary_label to specify packing order
Add boolean pack_start to add_summary_label to indicate whether the
labels should be packed at the start or end of the summary bar.
2018-08-17 11:31:24 +01:00
John Ralls
4464469484 Revert changes associated with Bug 775368
Return commodity-utilities.scm to its state at 5803c141.
Too many changes in between to do a straight revert.
2018-08-16 16:12:14 -07:00