Commit Graph

18406 Commits

Author SHA1 Message Date
Geert Janssens
3a76cb91f1 Gtk3: Fix register not being drawn - item_edit still missing
While the data is displayed the widget to edit the active cell isn't yet.
2017-04-14 19:21:35 +02:00
Geert Janssens
e5d2ab8dc5 Fix build with webkitgtk >= 2.8 2017-04-14 19:21:35 +02:00
John Ralls
d632abaa96 Get links working. 2017-04-14 19:21:35 +02:00
John Ralls
bb0376240d Get WebKit2Gtk basics compiling and working.
Copy and register links don't work.
2017-04-14 19:21:35 +02:00
John Ralls
15ef317968 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-04-14 19:21:34 +02:00
John Ralls
bf86524884 Correct gnc-html-webkit.c indentation. 2017-04-14 19:21:34 +02:00
Geert Janssens
8f66cf4286 Gtk3: Replace obsolete functions
gtk_statusbar_set_has_resize_grip
gdk_drawable_get_screen
gdk_device_get_core_pointer

There is no replacement for it in gtk3 and it's probably
not needed any more either.
2017-04-14 19:21:34 +02:00
Geert Janssens
e40acf5915 Temporarily disable deprecation warnings 2017-04-14 19:21:34 +02:00
John Ralls
89021dde39 Remove if-0-ed out code from gnc-html-webkit.c 2017-04-14 19:21:34 +02:00
Geert Janssens
87a0cb7360 Gtk3: fix direct access issue for entry widget in cell renderer mode
The old code directly accessed a member variable of GtkEntry. This
direct access is no longer possible, but there is no public function
to get/set this variable. There is a private one  used by
GtkComboBox internally) but it's not exported so it can't be used either.

As an interim solution I peeked at how hesiod handled it in his earlier
(unmerged) gtk3 branch. He replaced this private access with setting
gtk_widget_set_visible, something I wouldn't have considered in this
situation. The issue is in the register2 code, so for now it's not
too important. We can investigate this more when the register rewrite
is picked up again.
2017-04-14 19:21:34 +02:00
Geert Janssens
e26480ccbb Gtk3: Convert GdkColor into GdkRGBA
Only gnc-dense-cal.[ch] is left untouched because it's use
of color is tightly coupled to the use of GtkStyle. This
latter needs conversion as well, but would be too much to
add in one commit.

Additionally the register code uses GtkStyle to extract
colors. This has been partially converted to using GdkRGBA
with the inconvenient side effect that depending on how
a color is retrieved it has to be freed with gdk_rgba_free
or not. This may be cleaned up later.
2017-04-14 19:21:34 +02:00
Geert Janssens
f07ad114c4 Gtk3: replace expose_event size_request functions
expose_event has been replaced with draw
size_request has become get_preferred_width and get_preferred_height
2017-04-14 19:21:34 +02:00
Geert Janssens
2ca938bd67 Gtk3: Fix the remaining gtk direct access violations
These could not be fixed in Gtk2 because the accessor functions were only added as of Gtk3.
2017-04-14 19:21:34 +02:00
Geert Janssens
42264efd1b Gtk3: adapt to changed callback function signature 2017-04-14 19:21:34 +02:00
Geert Janssens
3065005f05 Gtk3: use CSS style instead of old GtkStyle interface 2017-04-14 19:21:20 +02:00
John Ralls
aa6854fb1b Use the Mac Locale to find the account templates only when building with quartz. 2017-04-10 15:23:25 -07:00
Mike Alexander
ce83251bd0 Fix a minor typo. 2017-04-10 01:53:04 -04:00
Mike Alexander
c7226ddd4f Delete left over line from previous merge conflict. 2017-04-10 01:37:23 -04:00
Mike Alexander
ce79222f05 Merge branch 'maint' 2017-04-10 01:27:47 -04:00
Mike Alexander
a2687bcbe3 Fix the SWIG Guile wrapping of functions that have a "struct tm" parameter.
The biggest problem was that a pointer to an out of scope struct tm was
passed to the wrapped function.  With opt level 2, clang doesn't bother
setting the contents of the struct since it goes out of scope without being
used.  This caused the transaction report to never report anything since
the start and end times it got were ridiculous.

Also most functions that take a struct tm pointer can change the contents
of the struct (if only to normalize it) so pass the new values back to Scheme.

Finally all calls to gnc_localtime and gnc_gmtime from Scheme leaked a struct tm
and calling gnc_tm_free from Scheme is a really bad idea so don't wrap it.
2017-04-09 16:25:45 -04:00
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