Allowing the user to select the currency symbol

Derek Atkins warlord at MIT.EDU
Thu Sep 26 11:21:30 EDT 2013

Frédéric Perrin <fred at> writes:

> Le mercredi 25 à 19:25, Geert Janssens a écrit :
>> On Wednesday 25 September 2013 11:11:21 David Carlson wrote:
>>> As another user I would suggest per data file. One user may want
>>> different settings in another file.
>> I would rather see it per data file as well.
> Okay, I guess I can try and see how to store that info in the data file
> then. Can't promise a timeframe, as even though that's conceptually
> pretty simple, this is my first dabbling in Gnucash code...
>> And if you are going to do a GUI to edit this, how about making it a
>> currency editor, something like the commodity editor now, but then for
>> currencies ? 
> The way I see it (and what would be sufficient for my own use), the
> interface to set the user symbol would look like :
> foreach (currency in book->used_currencies)
>         r = create_row()
>         r.col1 = label(currency.code)
>         r.col2 = label(currency.description)
>         r.col3 = editable_text(currency.user_symbol
>                 if currency.user_symbol else currency.code)
>         r.col3.on_update = lambda: new_user_symbol -> currency.set_user_symbol(new_user_symbol)
> Well, the equivalent GTK code, but you get the idea.

Pretty much, yes.  Basically you would need to extend the existing
Commodity objects to include a currency_symbol, put default symbols into
the iso-4217-currencies table, and create a Gtk Dialog that lets you
edit those currencies and make sure the modified versions get saved in
the datafile.

>>              The iso-4217-currencies can serve as preset currencies,
>> which the user can edit, or even add custom currencies (think Bitcoin
>> and friends). Perhaps that's too wide a scope though... 
> Isn't user-defined currencies something that's been asked a couple of
> times ? I mean, googling for "gnucash bitcoin"
> reveals quite a few past discussions (without, evidently, happy
> conclusions or we would have BTC by now).

Yes, it's been asked for.

> And the complexity of "I'll store in (GConf|the data file) one
> user-defined field per currency" seems much lower than "I'll store
> enough data to recreate the entire currency at data-file load time" ; I
> don't think I can acheive the second.

Actually, the second is already there.  You just need to extend the data
object and extend the existing UI.

Internally GnuCash treats a Currency like a special-case of of a
Commodity.  So you can leverage all the Commodity editing tools to add a
Currency Editing tool.  Et Voila.


       Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
       Member, MIT Student Information Processing Board  (SIPB)
       URL:    PP-ASEL-IA     N1NWH
       warlord at MIT.EDU                        PGP key available

More information about the gnucash-devel mailing list