status of register rewrite / request for help

Chris Shoemaker c.shoemaker at cox.net
Tue Jul 18 20:44:04 EDT 2006


Hi,

The goal of the register-rewrite branch is to replace the current
register, which uses the code under src/register, with a new register
based on GtkTreeView.  Sometime this past winter I finally convinced
myself there weren't any unsurmountable API problems with using
GtkTreeModel/GtkTreeView to make a register, so that it was SMOP
(simply a matter of programming).

My plan was to code it up enough that people could imagine it as a
viable replacement for what we have.  I think I've just reached that
stage now.  If you ignore the bugs and gaping holes in functionality,
you can hopefully see that this idea can actually work.  And if you
read the code, I think you'll see that the design is maintainable,
even though the code is little messy at the moment.

There are a few user-visible design differences between the old and
new registers, but I'll defer discussion of those until people have
discovered them. :) One important feature of the new register is that
I expect it to be much better at handling multiple currencies, which
is one area where our current register really falters.

At my anticipated development rate (pretty slow), I think the new
register won't have feature parity with the old register for another
8-12 months.  However, this is a great opportunity for new (or past)
devs to make a big impact on future GnuCash releases.  If a few more
devs popped up, we could probably chop that time in half.  There are
several medium-sized chunks of functionality for which I've laid
groundwork but haven't even started:

  - a date edit widget (maybe a child of gnome-date-edit that implements 
      gtkcelleditable)
  - autocomplete
  - autonumbering for the blank transaction
  - cut, copy, paste of transactions and splits
  - page save/restoration
  - transaction filtering (insert a gtktreemodelfilter into the model stack)

Plus, there's an opportunity to add brand-new functionality that won't
be too hard in the new implementation:

  - multi-transaction selection and action
  - in-page text search and filter
  - fancy user-view customization with GConf
  - [your wildest dream-feature]

I've very willing to coach and advise any new devs interested in
tackling a feature.  Just email gnucash-devel or visit #gnucash.

To get started:

$ svn co http://svn.gnucash.org/repo/gnucash/branches/register-rewrite/ gnucash-rr

Build as normal and you'll notice that you can open the new register
pages from the account tree page, and you can still open the old
register pages from the budget page.  As always, testing and feedback
are appreciated.

-chris


More information about the gnucash-devel mailing list