>From my personal experience I did not had any problem when we changed
for autoregistration of panels, but I have issue when desabling and
reenabling the addon due to custom properties. This is not related to
autoregitration as it this happaned even before this change.

Xavier

2010/10/28 Martin Poirier <the...@yahoo.com>:
> Hi Nathan,
>
> --- On Thu, 10/28/10, Nathan Vegdahl <ces...@cessen.com> wrote:
>
>> I think this may be one of those things that is convenient
>> in simple
>> cases, but is just troublesome in complex cases.  For
>> example, I'm
>> still struggling to figure out how to make the Rigify addon
>> unregister
>> cleanly.  Ditto with the porting project I did.
>> It doesn't seem
>> possible.  But it was trivial with manual
>> registration.
>
> It should be even more trivial with automatic registration. The only thing 
> you need to take care of is registered properties, and I'm not even sure if 
> those can be deleted correctly at this point (Campbell could confirm this).
>
> Registered properties is still the biggest pitfall, IMHO, and needs to be 
> addressed. (that doesn't have much to do with automatic registration of RNA 
> types though)
>
>> I would much rather manage the registration and
>> un-registration
>> manually, so I can guarantee that everything works cleanly
>> even in weird corner-cases.
>
> Can you give an example of such a corner case?
>
> Or better yet, when you encounter a problem, please mention it on this list 
> (or to me directly, if you don't want to do it on a public channel) and it 
> will be looked it. The code is certainly not perfect and there's a couple of 
> things to keep in mind when coding that was much free for all before (I see 
> that as a good thing).
>
>> And it makes it difficult (impossible?), for example, to
>> write a class
>> (say, a panel) that is just meant to be inherited from, but
>> not
>> directly registered.
>
> There's some examples of that in the UI scripts (properties_material.py look 
> for the MaterialButtonsPanel class and its subclasses). The rule is that only 
> valid well defined classes should derive from RNA types, so if you have 
> common behaviors to define, use mixin classes.
>
> I actually think it's cleaner this way. When reading code, it's easier to see 
> which classes define behaviors and which are actual RNA types.
>
>> Anyway, just my 2 cents.  I'm finding
>> auto-registration to be a
>> needless headache, for only minor convenience gains in
>> simple cases.
>
> I'm finding the same thing, except in reverse.
>
> It removes a lot of needless boiler plate code, it ensures that every script 
> is a "good citizen" and correctly registers and unregisters RNA types when 
> the system needs and not when bad code mistakingly does it, it transparently 
> enables optional add-ons as well as interactive execution in a text buffer, 
> it gives a single point of entry for registration calls as well as the 
> possibility of easier debugging in those cases where registration fails and 
> gives a easy way internally to figure out what is defined where.
>
> Martin
>
>
> _______________________________________________
> Bf-committers mailing list
> Bf-committers@blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers
>
_______________________________________________
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers

Reply via email to