Hello,

Am 13.11.2014 um 19:56 schrieb John Ralls:
> On Nov 13, 2014, at 10:46 AM, Christoph Holtermann <c.holterm...@gmx.de> 
> wrote:
>
>> Am 13.11.2014 um 18:55 schrieb Christoph Holtermann:
>>> Am 13.11.2014 um 17:50 schrieb Christian Stimming (mobil):
>>>> From my understanding, there are two separate issues here:
>>>>
>>>> 1. You are proposing a new object "Company" because you have reasons for 
>>>> needing new data fields. I think that's a good idea. Why don't you prepare 
>>>> a patch to extend the existing objects?
>>>>
>>>> 2. You ask for kvp access from python. No, we prefer not to have kvp 
>>>> accessed from python. Instead, either use gobject properties (on master), 
>>>> or add a new object on the C side as mentioned above and add python 
>>>> wrappers for this.
>>> Surely adding an object on the C side would be the more robust approach. 
>>> Can you tell me an object that already exists
>>> and that could be taken as an example ?
>> I'll try gncAddress as a start.
>>> I don't really understand the gobject concept though and what the 
>>> difference to my approach is.
>>>
>>> It seems some work until we have something we're all happy with, though ;-)
> You needn't worry about GObject. We’re replacing it with C++, but we’re just 
> starting out and it will be several months at least before we’re ready to 
> start on the engine objects. If you must dive in now, sure, GncAddress should 
> be a pretty good starting point, but I suggest reading up a bit on GObject 
> [1] so that you have some understanding of what you’re doing. In particular, 
> the memory management parts of almost all of the GObject-based classes in 
> engine, including GncAddress, are implemented incorrectly. Make sure that you 
> understand the right way to create and in particular destroy (the functions 
> for the latter are dispose and finalize) your object and to use reference 
> counting correctly to manage object lifetime.
Having not yet looked at the GObject finetuning I wrote a gncCompany.c by 
modifying gncAddress.
It gets and sets the Companies information and can be accessed from Python.
First running version at https://github.com/c-holtermann/gnucash/compare/Company
Now I'll have to have the look at things that you suggested.

Maybe a dumb question, but anyway: Does the Company object need to store 
strings internally like Address does or can
the kvps be directly modified ? So do I need to have company->name etc. ?
>  
>
> Your Company class implements only getters, which for your report-writing 
> code is all that you need. The corresponding C/C++ class will need setters as 
> well. In the current implementation where it writes to the QofBook KVP, that 
> would be all.
>
> Regards,
> John Ralls
>
> [1] https://developer.gnome.org/gobject/stable/

regards,

Christoph Holtermann

-- 
--- Nachricht gesendet von C. Holtermann ---
-                                          -
-  Verschlüsselte Nachrichten können über  -
- den öffentlichen Schlüssel auf folgendem -
- Keyserver an mich gesendet werden:       -
http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x4DD9CF0482B0620B



_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to