Commit Graph

18386 Commits

Author SHA1 Message Date
Mike Alexander
cdc94c7131 Calling sigfigs_denom with a zero crashes due to a divide by zero. 2017-04-08 19:48:23 -04:00
Mike Alexander
6933ab765d Add an XCode target to run the numeric unit tests and rename the main target to GnuCash. 2017-04-08 19:48:12 -04:00
Mike Alexander
85d2442521 Update XCode file lists and sort them alphabetically. 2017-04-08 19:47:59 -04:00
Mike Alexander
d18fce775f Fix a crash in scrub_sx_split_numeric introduced in b3eb9d0. 2017-04-08 19:41:21 -04:00
Mike Alexander
bfa5090db9 gnc_numeric_convert should return an invalid number unchanged instead of crashing. 2017-04-08 19:40:08 -04:00
John Ralls
5ff319205d Revert "Some instrumentation output..."
This reverts commit 2035806db7 that I
didn't want to push in the first place.
2017-04-08 09:27:15 -07:00
John Ralls
8ec92f2fe3 Change GTest annotations to use the right class name for GncInt128 tests. 2017-04-08 09:18:34 -07:00
John Ralls
2035806db7 Some instrumentation output for how much the numerator or denominator is shifted. 2017-04-07 12:39:47 -07:00
John Ralls
fd6234f58f Better manage truncation in GncRational::round_to_numeric.
Mike Alexander brought this up with a test case that failed to round down
sufficiently; he found that reducing the rounding denominator by 2 sufficed
to make his test case pass.

In fact the sizing of the replacement denominator by shifting the larger of
the numerator or denominator by an arbitrary 62 bits was not correct most
of the time, so instead we begin with a shift of the full lower leg worth,
try to do the conversion, and if the conversion is still “big” shift the
larger value one more and try the operation again, repeating until the
result will fit in a GncNumeric.
2017-04-07 12:38:55 -07:00
John Ralls
a467d0d397 Fix GncInt128 maxbits to account for the flag bits. 2017-04-07 12:29:04 -07:00
John Ralls
de1c56b53d Fix carrying to the wrong end of the lower leg in left shift. 2017-04-07 12:27:59 -07:00
John Ralls
e55b78614c Fix a magic number in GncInt128. 2017-04-07 12:26:51 -07:00
John Ralls
e20009a08d Save Changes Bug 780889 - Split-register transactions result in invalid...
price:type "transaction".

Add 'transaction' to the schema and document it in gnc-pricedb.h.
2017-04-03 21:16:43 -07:00
John Ralls
6e7334fe88 Add some tests looking for a GncInt128 divide overflow problem.
Problem mentioned in mail from Mike Alexander; this test doesn't find it.
2017-04-02 16:33:01 -07:00
John Ralls
844a6db32b Bug 780845 - link in github repo README file needs correction/editing 2017-04-02 09:22:16 -07:00
John Ralls
5a58b93a71 Bug 780845 - link in github repo README file needs correction/editing 2017-04-02 09:21:03 -07:00
Geert Janssens
b9abc0b5ba Gtk3: Fix cursor handling 2017-03-31 14:04:31 +02:00
Geert Janssens
9b5fbcb2cb Gtk3: GtkObject has been removed
Replace with GtkWidget instead
2017-03-31 14:04:31 +02:00
Geert Janssens
2528bfde6b Switch to building with the gtk+-3.0 toolkit 2017-03-31 14:04:31 +02:00
Geert Janssens
6edbb53fe6 GnucashSheet - drop unused variables 2017-03-31 14:03:49 +02:00
Geert Janssens
4b30a7dae7 GnucashSheet - fix screen refresh
I noticed improper screen redraws when switching cells while the
window was scrolled down. The drawing logic is pretty conflated
so instead of hunting this down, I have made it so that the full
visible part of the windows gets redrawn each time the user
switches to a different cell.
This is slightly more expensive, but should still be ok.
2017-03-31 14:03:49 +02:00
Geert Janssens
d439d37980 Fix two critical GObject warnings 2017-03-31 14:03:49 +02:00
Geert Janssens
68091faa80 ItemEdit - drop unused function 2017-03-31 14:03:49 +02:00
Geert Janssens
03699efe14 Extract the GnucashRegister widget into a separate file
It was interleaved in the gnucash-sheet.* sources making it harder to examine
2017-03-31 14:03:49 +02:00
Geert Janssens
5223ca8c81 Restore pasting in the item_edit
The register is implemented such that the edit widget is read-only and
all keystrokes are filtered by the sheet widget which then directly sets
the appropriate text in the edit widget each time.
The interim fix here is to make the text edit widget temporarily editable
when cutting or pasting text.
A better solution will be to make the edit widget responsible for all
text entry and delegate everything not handled directly to the sheet widget.
This will be for a later commit
2017-03-31 14:03:49 +02:00
Geert Janssens
a3f8f69604 Rework GncItemEdit widget
Use real widgets instead of custom drawing something

In essence this is a gtkentry with an optional gtkbutton if the current cell
has a popup (like a calendar or account list). The old code went through
several hoops to keep a hidden gtkentry in sync with the custom drawn item
on screen.

There are still a few issues to fix:
- it's not properly themed to fit in the register. This will be fixed after switching to gtk3 (using css)
- right-click menu is wrong. This currenly shows a default copy/paste menu from a gtkentry
  it should be changed to show our own full menu
- keyboard events are still handled backwards. The sheet gets a first stab and passes
  on what it can't handle to the item edit. In the current implementation this means not
  all key strokes the item edit can handle are received (most notably paste is not working).
2017-03-31 14:03:49 +02:00
Geert Janssens
986720e6c3 Fix hidden scrollbars for itemlist type popup 2017-03-31 14:03:49 +02:00
Geert Janssens
efcb06e6a3 Fix crash in previously unreached code 2017-03-31 14:03:49 +02:00
Geert Janssens
131462ca41 Create specialized popup items their respective source files
The extracted function in gnc_item_edit was unneeded and confusing
2017-03-31 14:03:49 +02:00
Geert Janssens
58bfd3e1e9 Reduce the cursor from a full widget to a simple gobject that tracks cursor coordinates
As with the grid there is no direct interaction possible with the cursor.
It is merely decoration. It does keep track of coordinates so I've made
it a gobject for memory management. The actual drawing of the cursor
frame is now done by the sheet, just like for the grid.

This change also fixes the transparency issue in the cursor.
2017-03-31 14:03:49 +02:00
Geert Janssens
c54cf61cce Rework gnucash-cursor
- drop lots of unneeded complexity
- use cairo instead of gdk_gc to draw

Issue still to fix: the cursor widget has a grey background instead
of being transparent. I'm not sure this can be fixed before switching
to gtk3
2017-03-31 14:03:49 +02:00
Geert Janssens
6c06336d3e Reduce grid object from a complete widget to only two utility functions
There was no added value in it being a full widget. It only served two functions really
- speed draw the visible and non-editable part of a register window
- locating a cell starting from a pixel

Both are used exclusively by the sheet object, so
I have made them private functions of the sheet.
They are still kept in a separate file though for length considerations.
2017-03-31 14:03:49 +02:00
Geert Janssens
3025e30e4a Refactor divider line drawing some more to reduce duplicate code 2017-03-31 14:03:49 +02:00
Geert Janssens
93a03d19ee Use cairo to redraw the grid widget 2017-03-31 14:03:49 +02:00
Geert Janssens
4888d34554 Replace all other uses of GnomeCanvas with standard gtk widgets
Most are converted to GtkLayout/GtkiDrawingArea widgets as these
most closely approach the GnomeCanvas concept.

This currently builds and runs but has the following issues still:
- item edit isn't drawn properly (margin and offset issues)
- cursor is not handled properly yet

These will be handled in subsequent commits.
2017-03-31 14:03:49 +02:00
Geert Janssens
194634615f Convert gnc-header from GnomeCanvas to GtkLayout
Only reducing column size to less than window width needs extra
research. The auto-expansion of the description column is not
propagated to the header so header and body widths can go
temporarily out of sync as of this commit.
2017-03-31 14:03:49 +02:00
John Ralls
f9d23de8c0 Merge Ueli Neiderer's swift-transactiontxt branch into maint. 2017-03-30 12:42:59 -07:00
Ueli Niederer
768df3b709 Obey GNUcash coding style
Corrected brace position.
2017-03-30 12:39:37 -07:00
Ueli Niederer
448d97553f Added a preference to control import behaivour of transaction text
In order to allow to revert the newly introduced behaviour of putting
transaction text in front of the extracted purpose, the feature can now
be disabled through the preferences dialog.
2017-03-30 12:39:37 -07:00
Ueli Niederer
0ad94ddcc0 Including the transaction text into the purpose text
Some banks include additional purpose information for a transaction in
non-swift-section 17 (aka transaction text). If available, this
transaction text is put in front of the other purpose texts to provide
full transaction information.

While the final solution is still under discussion. This change is a
first low-impact implementation backported and distilled from the work
discussed in gnucash/gnucash#139.
2017-03-30 12:39:37 -07:00
John Ralls
b3eb9d0d8a Use qof_instance_set/get instead of g_object_set/get. 2017-03-28 11:53:05 -07:00
John Ralls
baef4029b2 Merge branch 'maint' 2017-03-28 11:49:50 -07:00
Mike Alexander
2b777b9848 Remove the xxx_with_error functions from Python bindings.
They were removed from GnuCash in b199593 In January.
2017-03-26 19:19:11 -04:00
John Ralls
509ce16add Release 2.6.16 2017-03-25 17:23:18 -07:00
John Ralls
3109fc5cc4 Reduce the gate on get_random_gnc_numeric.
Fixing Bug 779217 increased the maximum denominator by 10, and that led
to overflows when converting large numbers' denominators from 100 to the
new max.
2017-03-25 17:15:37 -07:00
John Ralls
a4ea79122d Update translations ca, nl, and sr from the translation project. 2017-03-25 15:39:04 -07:00
John Ralls
3367e191c8 Bug 670731 - Future Value not working with Loan Scheduled transaction
Correct the cell save routine so that the "numeric" kvp is correctly
overwritten in all instances when an edit changes its value for both
credit and debit splits. The both part is accomplished by extracting the
overwrite function.

Also provide a scrub to correct all of the incorrect files.
Unfortunately the necessary calculation function is in app-utils so
running the scrub from the backend as usual isn't possible, so we run it
from gnc_post_file_open in gnome-utils/gnc-file.c instead.
2017-03-24 16:39:30 -07:00
John Ralls
cd07876a68 Revert "Fix query period in test-account-get-trans-type-splits-interval."
This reverts commit e66dd12aa9. Because
the test only seems to fail crossing a DST boundary.
2017-03-24 09:00:12 -07:00
fell
61bce18276 Update of de.po
4617 translated messages, 17 fuzzy translations, 46 untranslated
messages.
2017-03-24 06:17:52 +01:00
fell
c3c40cd9da update de.po
4598 translated messages, 33 fuzzy translations, 49 untranslated
messages.
2017-03-24 04:50:49 +01:00