[Bf-committers] Developer support for new keymap

Nathan Vegdahl cessen at cessen.com
Fri May 11 22:46:41 CEST 2012


> "add_to_selection" is usually called "extend"

The problem is that in many cases (such as view3d.select()) "extend"
actually acts as a sort of toggle, rather than as a pure extend (e.g.
clicking on an already active object will unselect the object).

But I do prefer that naming convention.  Extend and Unselect make a
lot of sense.  Perhaps in operators where the "extend" option
currently makes them behave as a toggle, we can shift that behavior to
be triggered by a "toggle" option instead, and then reserve "extend"
for pure extending of selections?

> I'm not volunteering to implement these but
> don't mind reviewing patches.

Awesome.  If no one else volunteers, I'll start hacking away then.  Thanks!

--Nathan


On Fri, May 11, 2012 at 1:19 PM, Brecht Van Lommel
<brechtvanlommel at pandora.be> wrote:
> Hi,
>
> "add_to_selection" is usually called "extend", and
> "remove_from_selection" "deselect". In the interest of preserving
> compatibility with existing keymaps it might be good to stick with
> those property names? I'm not volunteering to implement these but
> don't mind reviewing patches.
>
> Brecht.
>
> On Fri, May 11, 2012 at 10:07 PM, Nathan Vegdahl <cessen at cessen.com> wrote:
>> Hi everyone,
>> As I'm working on the new keymap, I'm running into cases where I need
>> certain operators to be extended or added.  In most cases I am able to
>> do this via writing my own operators in Python, but there are a few
>> cases where this is not the case.
>>
>> The main ones right now relate to selection.  My intent is to make it
>> so that all selection tools Replace Selection by default, but can also
>> Add To Selection and Remove From Selection via the shift and ctrl
>> modifier keys respectively.  I am at a loss in many cases for how I
>> would accomplish this via pure python.
>>
>> For example, the view3d.select() operator has the following options:
>> - extend
>> - center
>> - enumerate
>> - object
>>
>> I propose that we add two more options:
>> - add_to_selection
>> - remove_from_selection
>> (The names aren't important to me--these may be too verbose.  Or we
>> could instead, perhaps, add a "selection_model" enum that would
>> replace "extend" and have three possible values.  Or whatever.  The
>> specific mechanism is not important.)
>>
>> add_to_selection would make the operator add whatever is clicked upon
>> to the selection if it is not already selected, making it active as
>> well.  But unlike extend, it will _not_ unselect an item if it is
>> already selected/active (acting as a sort of toggle), it will instead
>> at most make the item active if it is not already.
>>
>> Complementary to that, remove_from_selection will unselect the clicked
>> upon item, and will do nothing if the item is already unselected.
>>
>> That is just one example, but other changes I need are similar sorts
>> of things.  The intent is to keep the operators fully compatible with
>> the current keymap, whilst also adding support for the needs of the
>> new keymap.  The intent is also to only add/modify C operators in
>> cases where accomplishing the goal via python is not reasonable.
>>
>> I am happy to either attempt to make these changes myself in Blender's
>> C code (I will submit patches since I am not familiar enough with
>> those areas of the code to be confident yet), or if these sorts of
>> things are fairly quick changes then I would be very appreciative if
>> someone familiar with the code would be willing to work with me.
>>
>> Any volunteers?
>>
>> Thanks!
>>
>> --Nathan
>> _______________________________________________
>> 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