[QOF-devel] Outline of new qofevent support

Derek Atkins warlord at MIT.EDU
Tue Feb 21 10:41:27 EST 2006


Chris Shoemaker <c.shoemaker at cox.net> writes:

> On Tue, Feb 21, 2006 at 10:15:31AM +0100, Christian Stimming wrote:
>> Derek Atkins schrieb:
>> >I'd propose: 
>> > (...)
>> >
>> >I admit this would be a LOT easier if QOF were based on gobject and we
>> >used g_signal...  Mea Culpa.
>> >
>> >What do you think?
>> 
>> Actually that was what I was thinking. *Iff* the API should be changed 
>> anyway, and as QOF depends on glib deeply anyway, what are the reasons 
>> for not making the transition of QOF to be based on gobject and g_signal?
>> 
>
> BTW and FTR, I am in very strong favor of this idea, especially the
> reasoning "if we're changing the API _anyway_".  Also, I believe that,
> with some care, this transition can be done incrementally.  
>
> For example, the conversion to gobject-based qofobject doesn't have to
> impact a whole lot of other stuff.  The g_signals can be introduced
> one-at-a-time and can exist along-side the existing event mechanism.
> They can even be stubbed into the existing event mechanism so that
> event consumers don't even notice the difference even when the base
> objects are actually triggering event generation with g_signals.
>
> I'll also note that g_signal is perhaps the most obvious benefit of a
> move toward gobject, but it's certainly not the only one.  There's
> also the type-system which we're presently trying to fake, and several
> other features that are functionally equivalent to our own code.
>
> I think the most important technical point here is that its not "all
> or nothing."  A switch to gobject is compatible with everything we're
> currently doing, so we could transition gradually to gobject-provided
> functionality.

My personal feeling is that changing to gobject is not a libqof-1
change.  I wholeheartedly agree it should be done, but not today.
Let's get gnucash-2.0 and qof-0.7 released and then we can go rototill
and use gobject.

While it might appear to be possible to make incremental changes, I
think that might be a lot more work than just going through and doing
it all at once.  For example, my "subject-verb-object" could be
handled by a g_signal thrown against the subject, with the object as a
signal argument...  But we still need to think abot how to handle
"global" signals, signals that technically have no subject.

I don't think these changes should be made lightly or hurriedly, so I'd
like to suggest we wait..

I'll point out that adding a few new APIs for short-term use is very
different than changing the structure of the library.

> -chris

-derek

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


More information about the gnucash-devel mailing list