Announcing a new sub-project in gnucash: GUI in C++, Qt, CMake.

Daniel Espinosa esodan at gmail.com
Thu Mar 4 18:18:49 EST 2010


Long time a go, I told about to create a library using the GnuCash's
engine. This library could be based on GObject, be GObject
Introspectable (live.gnome.org/GObjectIntrospection), for bindings
friendly, and reused for any language and toolkits.

This library could use the Database backend, to allow multiple
concurrent access (one for a main application, one for an applet, and
other clients), using GnuCash's engine to query, insert and update
data.

This could be archived, step by step:
1) Create a GObject wrapper objects library, to use GnuCash's engine quickly
2) Move code slowly from the actual engine to the GObject library
3) Deprecate code from the engine, in order to use the GObject library

The GObject library could use GInterface to allow the use of different
engines. Actually GnuCash use QOF; GDA could be used as a engine,
always implementing the same Interface. This could help languages and
toolkids on just worry on its task without thing about how the data is
accessed or where it is stored.

2010/3/4 Phil Longstaff <plongstaff at rogers.com>:
> On Thu, 2010-03-04 at 21:34 +0100, Christian Stimming wrote:
>> I'd like to explain my recent experiments with C++ and cmake: I was tired of
>> the amount of code one has to write in the C language to achieve seemingly
>> trivial tasks. In my day-time projects with other, more GUI-suited,
>> programming languages, the simple tasks can be written sooo much simpler,
>> leaving much more time for the actual challenging tasks. In gnucash, over and
>> over again I thought couldn't the GUI be written in any of the more modern
>> languages and/or toolkits. I mean, can we get the fun into gnucash coding
>> again?
>>
>> Actually, we can.
>>
>> Announcing a new sub-project in gnucash: The non-GUI parts are re-used in the
>> state they are, in the C language. This means the double-entry principles and
>> all of the other achievments in the "engine" and xml-backend and eventually
>> other backends can be re-used. But the GUI is rewritten completely new, from
>> scratch, in C++ and using the Qt toolkit. Fun again. The build system is CMake
>> because its configuration runs magnitudes faster. Fun again. And as a final
>> bonus, for MS windows more compiler than before are supported, namely this
>> whole new project can be compiled by MS Visual Studio as well. So here it is:
>>
>>   Cutecash
>>   Free Finance Software. Easy to develop, easy to use.
>>
>> Currently this is only a proof-of-concept for developers: You can load an
>> existing gnucash XML file, and it will show the list of accounts as a flat
>> table in a QTableView. The fun part is how easy it was to add this display of
>> all accounts, so it will probably take only another 1-2 hours until the
>> account list is a tree to be viewed in a QTreeView. And a QTableView with the
>> splits of an account can't be far...
>>
>> To give this a try, have qt4 (>=4.5.0) and cmake (>= 2.6.0) installed and:
>>
>>   mkdir build-cutecash
>>   cd build-cutecash
>>   cmake ..
>>   make
>>   ./src/gnc/cutecash
>>
>> Have fun (again)!
>
> I'd had similar thoughts.  The engine and core can be in C and wrapped,
> but the app itself can be in another language (c++, python, even java).
> I would have aimed at 2.6 (and I suppose that is what you would aim at
> as well).
>
> Phil
>
> _______________________________________________
> gnucash-devel mailing list
> gnucash-devel at gnucash.org
> https://lists.gnucash.org/mailman/listinfo/gnucash-devel
>



-- 
Trabajar, la mejor arma para tu superación
"de grano en grano, se hace la arena" (R) (en trámite, pero para los
cuates: LIBRE)


More information about the gnucash-devel mailing list