Commit Graph

2070 Commits

Author SHA1 Message Date
Syres916
7ebf53e94d [Sketcher] Minor bugfix to display angle...
...constraint names as per recommendation, see discussion https://forum.freecadweb.org/viewtopic.php?f=3&t=62953
2021-10-16 12:20:55 +01:00
Abdullah Tahiri
0926a4148b Sketcher: Default Shortcuts
===========================

Following:
https://forum.freecadweb.org/viewtopic.php?p=539914#p539914

Following requests from OpenBrain and ChrisB:
https://forum.freecadweb.org/viewtopic.php?p=540015#p540015

Following request from M4X:

Recomendation to use "L" and "I" for vertical and horizontal distance constraints and "R" for radius.

https://forum.freecadweb.org/viewtopic.php?p=540049#p540049

https://forum.freecadweb.org/viewtopic.php?p=540011#p540011
2021-10-16 09:23:22 +02:00
Abdullah Tahiri
0d16160f4e Sketcher: Code improvements for Constraint Widget
=================================================

This PR does not have added functionality. It contains only code improvements requiring at least c++17.

- It uses for the filters scoped enums (enum classes) instead of unscoped enums to avoid implicit conversion (c++11).
- It includes tools to deal with the necessary explicit conversions including type_t traits (c++14).
- It uses a couple of generic lambdas (c++17)
- It uses folding expressions to expand parameter packs (c++17)
- Refactoring of code
2021-10-13 15:28:30 +02:00
abdullahtahiriyo
4579b842fd Merge branch 'master' into sketcherMoveColorsToPrefs 2021-10-13 10:01:30 +02:00
Abdullah Tahiri
6e4a09f569 Sketcher: Copy and Array tool Snap at 5 degrees using CTRL 2021-10-12 09:41:58 +02:00
Chris Hennes
6bcda71712 Merge branch 'master' into sketcherMoveColorsToPrefs 2021-10-11 12:31:08 -05:00
Abdullah Tahiri
9b2de68000 Sketcher: Constraint widget associated constraints filter
=========================================================

A new special filter, that filters the constraint list so as to show the constraints associated with the
currently selected geometries.
2021-10-11 16:40:48 +02:00
Abdullah Tahiri
08542055c4 Sketcher: Redesign of Constraint settings
=========================================

=> The old controltab is substituted by: direct controls (buttons on the constraint widget) and a settings dialog that is independently fired via a button with a settings icon

This makes more space for the list of constraints and generates a lower amount of confussion regarding the old tab names and functions.

Direct control ensures that the most used operations are at hand, while other less changed settings are moved to the settings dialog.

=> Direct controls

One time visibility to match the list selection can be triggered from a new button "Visibility"

This button has drop selections for visibility selections, which are checkable items (currently only one option, but more are envisaged).
The one option currently is the "visibility tracking" functionality. This is a "shortcut" to the option in the settings panel to save unnecessary clicks
in typical operations.

=> Settings dialog

This dialog is live, in that changes to settings are immediatedly propagated to the list control and visibility.
2021-10-11 16:40:48 +02:00
Abdullah Tahiri
ab57037f3e Sketcher: Add preferences icon resource 2021-10-11 16:40:48 +02:00
luz paz
4adfa1fe38 Added requested revisions 2021-10-10 14:57:39 -04:00
luz paz
277e164657 Fix various typos
Found via `codespell -q 3 -L aci,ake,aline,alle,alledges,alocation,als,ang,anid,apoints,ba,beginn,behaviour,bloaded,bottome,byteorder,calculater,cancelled,cancelling,cas,cascade,centimetre,childs,colour,colours,commen,connexion,currenty,dof,doubleclick,dum,eiter,elemente,ende,feld,finde,findf,freez,hist,iff,indicies,initialisation,initialise,initialised,initialises,initialisiert,inout,ist,kilometre,lod,mantatory,methode,metres,millimetre,modell,nd,noe,normale,normaly,nto,numer,oder,ontop,orgin,orginx,orginy,ot,pard,parms,pres,programm,que,recurrance,rougly,seperator,serie,sinc,strack,substraction,te,thist,thru,tread,uint,unter,vertexes,wallthickness,whitespaces -S ./.git,*.po,*.ts,./ChangeLog.txt,./src/3rdParty,./src/Mod/Assembly/App/opendcm,./src/CXX,./src/zipios++,./src/Base/swig*,./src/Mod/Robot/App/kdl_cp,./src/Mod/Import/App/SCL,./src/WindowsInstaller,./src/Doc/FreeCAD.uml,./build/doc/SourceDocu`
2021-10-10 14:55:48 -04:00
wmayer
df23ab4441 Sketcher: [skip ci] fix -Wunused-lambda-capture 2021-10-06 19:46:57 +02:00
Abdullah Tahiri
1bd1d42fa8 Sketcher: New constraint special filter, filter selection
=========================================================

It filters the constraint list to the selected constraints.

It observes selection changes and reacts to new selections.

Forum:
https://forum.freecadweb.org/viewtopic.php?p=537028#p537028
2021-10-06 13:44:06 +02:00
Abdullah Tahiri
e333225a12 Sketcher: use addSelections for group selecions in TaskSketcherElements 2021-10-06 13:44:06 +02:00
Abdullah Tahiri
521cfcfefd Sketcher: user addSelections for group selection in SketcherTools 2021-10-06 13:44:06 +02:00
Chris Hennes
f2a073ca5a [Sketcher] Make status message styleable
Reduce the size and verbosity of the solver and constraint status
messages, and make them styleable both via stylesheets and user
preferences.
2021-10-05 23:24:09 -05:00
Abdullah Tahiri
e60e6c32f7 Sketcher: redefine filters and groups of filters
================================================

Filters redefined to match:
https://forum.freecadweb.org/viewtopic.php?p=537777#p537777

Group "Datum" stops comprising group "Reference"

Datums+References are now selectable as a multi-filter.

Fixes the akward behaviour of multiselection:
https://forum.freecadweb.org/viewtopic.php?p=537722#p537722

Now when a selection of a filter causes a group of filters comprising the selection to be fulfiled, this is also checked.
2021-10-04 16:30:40 +02:00
Abdullah Tahiri
007041b2ec Sketcher: Reorder filter entries to match toolbar
================================================

https://forum.freecadweb.org/viewtopic.php?p=537777#p537777
2021-10-04 16:30:28 +02:00
donovaly
f4a8f32db4 adjust preferred size to contain also the ALL entry 2021-10-04 16:25:14 +02:00
donovaly
41c30470f3 [Sketch] Selection improvements
as described here: https://forum.freecadweb.org/viewtopic.php?f=17&t=60569&p=537615#p537615
2021-10-04 16:25:14 +02:00
Chris Hennes
ec249a8e4d [Sketcher] Migrate constraint and solver status to StatefulLabel 2021-10-02 22:16:43 -05:00
Abdullah Tahiri
2f789e6ce7 Sketcher: Constraint widget Multi Filter feature
================================================

This feature adds a new filter entry "Multiple Filters" in the combobox of the filter.

This enables to define a "Multiple Filter" based on the aggregation of individual filters. So it basically provides for a user defined filter based on constraint types.

This "Multiple Filter" defaults to "All Constraints", and can be defined using the button "..." next to the filter combobox.

The "Multiple Filter" works on the list of constraints, as any other filter, limiting the elements shown in the list to match the multi filter definition.

The "Multiple Filter" interacts with the visibility options as any other filter. This is, in visibility non-tracking mode, it does not change the visibility. The Buttons "Hide Listed" and
"Show Listed" can be operated in this mode as any other filter.

In visibility tracking-mode, it will adapt the visibility of the constraints in the 3D view to the "Multi Filter" definition (exactly as it would to any other filter with its own definition).
2021-10-02 18:21:23 +02:00
Abdullah Tahiri
7ae611d86a Sketcher: Improve text of the constraint widget 2021-09-29 19:39:20 +02:00
wmayer
fe7f4c4be7 Gui: remove QT_TR_NOOP from command group names and use "CommandGroup" as context string 2021-09-29 16:31:55 +02:00
wmayer
6f6272f12b Sketcher: [skip ci] remove superfluous QT_TRANSLATE_NOOP from Sketcher commands 2021-09-29 15:46:06 +02:00
Yorik van Havre
77925c428e Updated ts files 2021-09-29 14:32:12 +02:00
Abdullah Tahiri
aa7d8001a2 Sketcher: Improve the performance of showing/hiding constraints
===============================================================

Forum test and comments:
https://forum.freecadweb.org/viewtopic.php?p=536445#p536390

What?

Showing/hidding a large amount of constraints is very time consuming

Why?

Because SketchObject Constraints property was being set for each individual constraint

Solution is to use the new setVirtualSpace overload taking a list or a tuple, so that all the
constraints are set in a single operation.

In a Debug system with the test of the forum the time taken by the operation is reduced
from 7 minutes to around 2-3 seconds.
2021-09-28 20:08:46 +02:00
Abdullah Tahiri
490a6f1961 Sketcher: Python - enable using the setVirtualSpace command individually or by group 2021-09-28 20:07:41 +02:00
Abdullah Tahiri
bc080c1845 Sketcher: Overload setVirtualSpace to allow setting a group of constraints 2021-09-28 20:06:52 +02:00
FreeCAD-Tools
ffd7223d55 Update CommandSketcherVirtualSpace.cpp 2021-09-27 16:09:54 +03:00
FreeCAD-Tools
2186b03fc2 Update CommandSketcherTools.cpp 2021-09-27 15:59:31 +03:00
FreeCAD-Tools
c828948457 Update CommandSketcherBSpline.cpp 2021-09-27 15:57:12 +03:00
FreeCAD-Tools
9229c461bb Update CommandCreateGeo.cpp 2021-09-27 15:55:48 +03:00
FreeCAD-Tools
caeffd21b4 Update CommandConstraints.cpp 2021-09-27 15:47:23 +03:00
FreeCAD-Tools
ff1b29ffe1 Update CommandConstraints.cpp 2021-09-27 15:44:55 +03:00
FreeCAD-Tools
a94888ec3d Update CommandAlterGeometry.cpp 2021-09-27 15:39:17 +03:00
FreeCAD-Tools
65df3b46e2 Update Command.cpp 2021-09-27 15:38:41 +03:00
Abdullah Tahiri
c9eaa2393d Sketcher: Rectangular Array Snap mode
=====================================

Rectangular Array gets a snap mode every 10 degrees when pressing CTRL (for consistency with Multiline arc, which also snaps using CTRL).

Request:
https://forum.freecadweb.org/viewtopic.php?p=535691#p535691
2021-09-25 21:58:14 +02:00
Abdullah Tahiri
c37af5e737 Sketcher: fix warning unreferenced local variable 2021-09-25 21:06:50 +02:00
Abdullah Tahiri
5d4f7e96b4 Sketcher: Hide/show constraints according to filter
===================================================

Updates the visibility to the filter selection on the moment of checking the "track filter selection" checkbox.
2021-09-24 13:33:27 +02:00
Abdullah Tahiri
873e0977ca Sketcher: Minor fixes sketcher radius/diameter presentation
===========================================================

Some minor fixes:

https://forum.freecadweb.org/viewtopic.php?p=535406#p535406

https://forum.freecadweb.org/viewtopic.php?p=535511#p535511
2021-09-24 06:57:59 +02:00
0penBrain
1d98cc08e7 [Sketcher] Add an option to get randomness in radius/diameter display angle 2021-09-24 06:57:09 +02:00
0penBrain
daa52ab7b8 [Sketcher] Display radius/diameter constraints with some angle
So they are easily differentiated from distance constraints
 Default angle can be customized with 'BaseApp/Preferences/Mod/Sketcher/RaDiaAngle'
2021-09-24 06:57:09 +02:00
0penBrain
3553d8ed3a [Sketcher] Code simplification by systematically using 'finishDistance' to determine label distance 2021-09-24 06:57:09 +02:00
Yorik van Havre
b042405933 Merged crowdin translations 2021-09-23 17:14:48 +02:00
Yorik van Havre
15da3f01e5 Updated ts files 2021-09-23 17:04:05 +02:00
Abdullah Tahiri
f3a5217468 Sketcher: Fix hide/show operations on Constraint Widget taking too long
=======================================================================

Fixes delay reported here:
https://forum.freecadweb.org/viewtopic.php?f=17&t=60569#p519685
2021-09-22 18:30:03 +02:00
Abdullah Tahiri
6343836689 Sketcher: Show All and Hide All buttons on Constraint Widget 2021-09-22 18:29:41 +02:00
Abdullah Tahiri
3e644ed2af Sketcher: Constraint hiding/showing not working properly for combined constraint icons
======================================================================================

Hiden constraint icons should not be grouped into combined icons. This may also improve selection of combined (stacked) icons.

fixes #4590
2021-09-22 18:29:21 +02:00
Abdullah Tahiri
ff93cb9295 Sketcher: Tracking of constraint visibility via contraint widget filter
=======================================================================

Add new option so that the 3D view constraint visibility track the constraint widget filter selection.

It maintains internally two mutually exclusive virtual spaces and the ability to select one as visible (the other remaining hiden).
2021-09-22 18:29:10 +02:00