[Bf-committers] uiList enhancements
Bastien Montagne
montagne29 at wanadoo.fr
Sat Aug 24 09:19:33 CEST 2013
Sending again without the attachment (else it gets stuck in ML
validation process :/ ).
-------- Original Message --------
Subject: Re: [Bf-committers] uiList enhancements
Date: Fri, 23 Aug 2013 15:56:38 +0200
From: Bastien Montagne <montagne29 at wanadoo.fr>
To: bf-blender developers <bf-committers at blender.org>
Hi Brecht,
So here are "final" new versions of the patches, addressing
issues/comments/suggestions from first review:
RNA patch: http://www.pasteall.org/45034/diff
Optional parameters for py callbacks: http://www.pasteall.org/45035/diff
New drag icon: http://www.pasteall.org/44832/diff
New dragresize code (with restored maxrows feature):
http://www.pasteall.org/45087/diff
New UIList filtering code (with enhanced UI):
http://www.pasteall.org/45088/diff
Note I kept +/- icons to show/hide filtering options for now (imho, it’s
also consistent with other parts of Blender, e.g. the show/hide of menus
in headers...).
Also attached all those guys in archive to this mail!
Kind regards,
Bastien
On 21/08/2013 22:36, Bastien Montagne wrote:
> Hi Brecht,
>
> Thanks for this first review, and sorry for late reply, but when I
> re-applied the patches here I got a nasty segfault... Turned out to be a
> stupid mistake in rna_UIList_filter_arrays_get_length(), which actually
> got a FunctionRNA as PointerRNA, not the object (i.e. expected
> PointerRNA of uiList here) - anyway, I did not need this func at all
> (dynamic props are really confusing, esp. when used as func parameters
> :/ ). Why this worked smooth a week ago will remain black magic to me,
> esp. when using gcc's sanitizer...
>
> So, here is an updated RNA-fixes patch, taking into account your remarks
> as well as making new fixes for issues I found this evening:
> http://www.pasteall.org/45034/diff
>
> Also, here is a patch adding support for "optional" parameters in Python
> callbacks (the idea is that all params after the first one using
> PROP_PYFUNC_OPTIONAL flag are considered optional, and only passed to py
> func if it actually "has room" for them in its parameter list). This
> should allow much smoother evolution when making non-crucial changes in
> the RNA API: http://www.pasteall.org/45035/diff
>
> (Pacthes adding dragsize and dragicon remain the same for now:
> http://www.pasteall.org/44831/diff and http://www.pasteall.org/44832/diff ).
>
> And the corrected patch adding filtering to uiLists:
> http://www.pasteall.org/45036/diff
>
> And now the answers:
>
> On 21/08/2013 17:14, Brecht Van Lommel wrote:
>> Quick UI review, still need to dig into patches:
>>
>> * The vertex groups panel seems to have two lists, doesn't make sense
>> to me, was that for testing?
> Yes (actually there are the three layouts, DEFAULT, GRID and COMPACT),
> will obviously be removed before commit. ;)
>
>> * Adding a vertex group gives a memory leak "Error: Not freed memory
>> blocks: 2" "rna_ui.c:371 len: 4 0x7fc990c102c8"
> Do not have this, but may be related to the bug I fixed in new patch?
>
>> * The filter options don't look very polished to me. Some suggestions
>> ** Replace (+) icon by a small magnifying glass? I also would expect
>> in the right-bottom.
> Yes, why not… but I'll have to add yet another icon.
>
>> ** Filter by Name is cut off, I think if there's a magnifying glass
>> that label can be left out.
>> ** Put everything on a single line, make sorting options into an enum.
>> ** I'm not sure if the invert options are needed, for sorting seems
>> unnecessary, and for filter advantage is also unclear to me.
>> ** For vertex groups I don't think Filter by Empty and Filter by Name
>> should be mutually exclusive, think it could always show textbox and
>> have option to show empty.
> All this is actually defined in py code, so rather easy to tweak (in the
> limits of UI API). I would keep invert options though (but perhaps as
> toggle icons too, would take much less room), sometimes it's much easier
> to say "I don't want this" rather than "I want that and that and...",
> the same goes with filtering, imho.
>
>> * There is too much padding between last item and gripper, like the
>> gripper is a full row but doesn't need to be?
> Yes, I noted that too, still don't know why, I would expect it to be the
> height I give the two buttons here, UI_UNIT_Y * 0.4... Looks like a row
> layout from a box one is always at least UI_UNIT_Y height?
>
> As for maxrows, indeed I overlooked materials and textures (at least).
> :/ Will add this back asap.
>
>> On Thu, Aug 15, 2013 at 12:43 AM, Bastien Montagne
>> <montagne29 at wanadoo.fr> wrote:
>>> So, first one fixes some bugs with PROP_DYNAMIC RNA parameters (for RNA
>>> functions) - unless I completely misunderstood that piece of code, that
>>> kind of props was not handled nicely!
>>>
>>> http://www.pasteall.org/44830/diff
>>> int size = 0
>> Change this to size_t.
>>
>>> /* Only for PROP_DYNAMIC properties! */
>> Can you rename the functions to contain the word 'dynamic' to indicate this?
>>
>>> * I decided to drop the "maxrows" option of list template, afaict it's
>>> not used anywhere, and it added quite some unneeded complication to
>>> template code (especially as we now support the same kind of features
>>> for GRID layout as well).
>> It's definitely used, it automatically makes lists expand a few rows
>> when you add items. Keeps the lists compact when empty but not
>> unreasonably small when it has items. That doesn't seem to be working
>> anymore, I thought this was a nice feature.
>>
>>> I put all the "API maintenance" edits to scripts in a separate patch:
>>>
>>> http://www.pasteall.org/44835/diff
>> As discussed on IRC, the extra draw_item parameter breaks
>> compatibility, would be nice if that was made optional somehow.
>> _______________________________________________
>> Bf-committers mailing list
>> Bf-committers at blender.org
>> http://lists.blender.org/mailman/listinfo/bf-committers
>>
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers
More information about the Bf-committers
mailing list