[GNC-dev] "2" version of source code

Geert Janssens geert.gnucash at kobaltwit.be
Tue Aug 4 15:48:39 EDT 2020

Op dinsdag 4 augustus 2020 18:39:32 CEST schreef jean laroche:
> Thanks for that effort Bob. Let us know if you need any help with
> anything (I doubt it, but who knows, testing maybe?)
> Remind me what the push was to create the "2" version? What improvement
> were you guys hoping to achieve?
> I know I'm interested in multi-transactions operations, but I'm sure
> that wasn't the only goal...

The original register was based on gnome-canvas, which was deprecated by the Gtk project. To 
avoid having to maintain it ourselves we tried the GtkTreeView/Model approach as those are gtk 
objects the were still supported.

However that didn't work out for 2.6 so the effort stalled. Then a GtkWebKit deprecation forced 
us to switch to Gtk3 for gnucash 3. As the GtkTreeView/Model based register was collecting dust 
and we weren't sure at all whether we could make it work in time if at all, I ported the gnome-
canvas based register to GtkLayout, which is Gtk's implementation of a free form layout.

I was never really happy with this, but it was the best we could do in the short time left before 
the gnucash 3.0 release. It's still to this day causing us extra work unfortunately, in particular to 
get non-ascii input methods to work properly.

So if we manage to do a register based on more specialized widgets such as a GtkTreeView, that 
could potentially lower the maintenance burden quite a bit as a GtkTreeView implements lots of 
(Gtk-standard) functionality we now have to maintain ourselves.

That would mean our register code could be cleaned up and eventually be manageable enough 
to extend it with more modern-day features such as multi-transaction operations, column 
shuffling, sorting, filtering,... We have implemented the latter two but a GtkTreeView would allow 
us to drop much of our custom code for that.



More information about the gnucash-devel mailing list