leozide / leocad

A CAD application for creating virtual LEGO models
https://www.leocad.org
2.47k stars 209 forks source link

no way to mouse click multiple selections (red) #931

Closed nathaneltitane closed 3 weeks ago

nathaneltitane commented 3 weeks ago

Describe the bug The new properties widget and parts selection method does not allow for a quick selectin and modification of all selected parts - it only changes the part in blue.

To Reproduce 1 - open model 2 - selct pieces (ctrl + click) 3 - go to parts properties and select desired entry for change 4 - only pert in blue gets modified.

Expected behavior old behavior automatically defaulted to 'multiple parts selected' and thus, permitted a quick modification of the desired part or group of parts to the new selection.

Screenshots image

image

Version (please complete the following information): continuous

Crash information: n/a

Additional context alternatively: propose a user defined option to revert back to old behavior or add a way to click to keep selection red on all parts (the same way a rectangular lasso selection would) to discreetly select components to change.

app4soft commented 3 weeks ago

4 - only part in blue gets modified.

Just to note, that is the last selected part (among other selected).

nathaneltitane commented 3 weeks ago

4 - only part in blue gets modified.

Just to note, that is the last selected part (among other selected).

I know and am aware - I am simply highlighting teh fact that there is no alternate method for selection types using mouse + keyboard modifier to explicitly select discreet parts (aside from the filters or lasso)

app4soft commented 3 weeks ago

I am simply highlighting teh fact that there is no alternate method for selection types using mouse + keyboard modifier to explicitly select discreet parts

I'm not sure I fully understand actual issue, but here is what I'm observing with latest LeoCAD build:

Selection methods (UPDATED)

There are next methods to select:

  1. With LMB click — selects only one part at the time, and selected part is always active ("blue", because its always is both, first and the last selected block the same time);
  2. With holding LMB to lasso select a region of part — selects all parts, without activating last selected part (all "red", no "blue"); NOTE that previosly selected parts would be relaxed.
  3. With holding Ctrl and... 3.1. ... holding LMB to lasso select region of parts — selects all parts, and adds new selected to previosly selected range, without activating last selected part (all in "red"). 3.2. ... holding LMB and lasso select varios regions of parts one-by-one — same as previos. 3.3. ... LMB single-click parts one-by-one — selects parts and adds each to previosly selected, with activating last selected part (last in "blue"); 3.4. ... LMB single-click parts one-by-one, but for the last one part use LMB double-click — selects parts and adds each to previosly selected, without activating the last selected part (all are "red").

NOTE: Ctrl+LMB double-click on last selecting part or just one extra Ctrl+LMB click on "blue" deactivates last selected part, but keeps it selected as "red"). Use LMB+Shift to de-select (exclude from selection) by click or via lasso selection.

Property changing

  1. If there is no "blue" part among "reds": 1.1. gizmo is moving to the center of gravity (CoG) of all selected parts; 1.2. its impossible to move parts by manual input XYZ valuse for gizmo at CoG — LeoCAD ignores manual value input for properties of gizmo at CoG; 1.3. its possible to move all the selected parts with moving gizmo by mouse; 1.4. its possible to move all the selected parts wit arrows keys.
  2. If there is "blue" among "reds": 2.1. gizmo moving to origin of "blue" parts; 2.2. its possible to move all the selected parts changing propertis of "blue" (last active among "reds"); 2.3. its possible to move all the selected parts with moving gizmo by mouse. 2.4. its possible to move all the selected parts wit arrows keys.

Feature or Bug?

So, as I understand, the fact that "Properties" widget is ignoring manual value input for gizmo properties if there is no active last selected ("blue") part looks like a bug — or is it a feature?

BTW, for moving all the parts all together its really good practice to select one part (activate to set it "blue") among other selected ("reds") and then manually input new XYZ values for this reference part to move/change all the parts position accordingly in one step (as in most cases last selected part would has integer values for XYZ, instead of gizmo placed in CoG, which XYZ values in most cases are decimal fractions, because it calculated and approximted from many origins XYZ positins of the all selected parts).

@nathaneltitane, Is it what actual issue report is about? Or am I missing something?

nathaneltitane commented 3 weeks ago

it has nothing to do with rotation or translation - it was merely about changing the part to another while disreetly slecting parts manually from withing a complex assembly or submodel.

i do not want to 'lasso all' or 'lasso some parts' i want to mod+click the parts i need to change and for them to all remain red after selection so that the properties widget remains on 'multiple selection' to change all parts, not just the last selected/blue one.

app4soft commented 3 weeks ago

i do not want to 'lasso all' or 'lasso some parts' i want to mod+click the parts i need to change and for them to all remain red after selection so that the properties widget remains on 'multiple selection' to change all parts, not just the last selected/blue one.

Ok, so its much simpler task, and here is the 4th 6th method (see update: https://github.com/leozide/leocad/issues/931#issuecomment-2389543841) supported by LeoCAD, to solve your task:

  1. Hold Ctrl and start selecting parts by LMB clicks one-by-one, and for the last one part use a double-click — now all selected parts should be "red"; (NOTE: Ctrl+LMB double-click on last selecting part (or just one extra Ctrl+LMB click on "blue") deactivates last selected part, but keeps it selected as "red")
  2. Go to "Properties" widget and select "Part" to replace with;
  3. Done.

So, there is no LeoCAD issue at all.

Its all about missing docs describing all this selection methods.

Regards.

nathaneltitane commented 3 weeks ago

i do not want to 'lasso all' or 'lasso some parts' i want to mod+click the parts i need to change and for them to all remain red after selection so that the properties widget remains on 'multiple selection' to change all parts, not just the last selected/blue one.

Ok, so its much simpler task, and here is the ~4th~ 6th method (see update: #931 (comment)) supported by LeoCAD, to solve your task:

  1. Hold Ctrl and start selecting parts by LMB clicks one-by-one, and for the last one part use a double-click — now all selected parts should be "red"; (NOTE: Ctrl+LMB double-click on last selecting part (or just one extra Ctrl+LMB click on "blue") deactivates last selected part, but keeps it selected as "red")
  2. Go to "Properties" widget and select "Part" to replace with;
  3. Done.

So, there is no LeoCAD issue at all.

Its all about missing docs describing all this selection methods.

Regards.

the double click on last was not intuitive at all - your suggestion does work - would still be good to have options in the keyboard preferences

leozide commented 3 weeks ago

Should be fixed, it was a bug that you needed a blue part to change properties

app4soft commented 3 weeks ago

@leozide, It might be good to has an extra option to give user a choise to set default mode:

And set it turned Off by default.