Commit Graph

125 Commits

Author SHA1 Message Date
wmayer
c4f411af26 Gui: use public methods in Command sub-classes 2021-04-21 19:34:50 +02:00
wmayer
223d7971ae Sketcher: fixes #0004303: Three choices in a Sketcher menu each with the same Ctrl+Shift+E 'address' 2021-02-28 13:14:48 +01:00
Abdullah Tahiri
67a9393300 Sketcher: command to select partially redundant constraints 2021-01-23 07:53:28 +01:00
Abdullah Tahiri
3d5ab8a67e Sketcher: add command to select malformed constraints 2021-01-06 13:54:00 +01:00
Abdullah Tahiri
fdc4df0202 Sketcher: rewrite Cmd to select DoFs using SolverGeometryExtensions framework 2020-12-19 11:58:54 +01:00
luz paz
5effcc1983 Sketcher: Issue #0004473: Expose openCommand() to translation
Continuing the work to expose the undo/redo functionality to translation. This commit does so for the Sketcher Wb.  
Ticket: https://tracker.freecadweb.org/view.php?id=4473
2020-12-01 14:53:35 +01:00
Abdullah Tahiri
b8376e1529 Sketcher: Fix select associated constraints when drawhandler active 2020-11-07 20:18:14 +01:00
Chris Hennes
c23e1dd7ba Release handler in commands where not needed
Fixes #0004478: Active constraint tool blocks sidebar tasks from working.

Many commands are interrupted by the existence of a handler. Rather than having these commands silently cancel, purge the handler if a command executes that does not need it.

When right-clicking on an item in the Constraint Task sidebar, any current operation is cancelled and the FreeCAD selection is synced with the selected items in the constraints QListWidget. This allows all of the menu items in the context menu to function properly: if the selection is not synced, anything that relies on the FreeCAD selection (like Delete) will sillently fail.
2020-11-07 20:17:19 +01:00
wmayer
cd4901bf51 Sketcher: [skip ci] do not create dialog on heap if not needed to improve exception-safety and reduce possible memory leaks 2020-10-22 16:01:22 +02:00
vocx-fc
dcc6483817 Sketcher: clean up the sketcher tools tooltips
Also clean up linespacing and whitespaces to make the code more
readable. Extremely long lines are broken to be 80 to 100 characters
long when possible.

'DrawSketchHandlerCopy' and 'DrawSketchHandlerRectangularArray'
are de-indented so that they start at column 1.
2020-10-22 14:53:52 +02:00
vocx-fc
3f2ea25aca Sketcher: new icons for two existing commands
New SVG icons, `Sketcher_DeleteConstraints`, `Sketcher_DeleteGeometry`
for two commands which previously used the very simple icon
`Element_SelectionTypeInvalid` (a single red X).

These icons clarify that the commands are used to delete
the constraints and the geometry, respectively.
2020-10-01 09:59:26 +02:00
vocx-fc
7f9c582996 Sketcher: move icons to tools subdirectory
Add the icon path to the workbench's `InitGui.py`.
2020-10-01 09:59:26 +02:00
wmayer
25fbb95a9a Sketcher: [skip ci] fix computing of hotspot of XPM icons on Windows/macOS
Add a cross to copy and array icons.
2020-09-27 12:06:26 +02:00
wmayer
1a16cde1f5 Coverity: Structurally/Logically dead code 2020-07-20 17:34:28 +02:00
luz.paz
b2ffebf1c0 Sketcher: [skip ci] fix header uniformity
This PR fixes header uniformity across all Sketcher WB files
2019-12-22 01:00:29 +01:00
wmayer
c0d58b8f3e [skip ci] fix more -Wgnu-zero-variadic-macro-arguments 2019-11-17 19:11:08 +01:00
wmayer
891f8953fe improve strict ISO C++11 (-Wpedantic) 2019-10-14 10:54:57 +02:00
luz.paz
c80ecc4a70 Source typo fix (includes file rename) 2019-10-05 13:19:32 -04:00
luz.paz
7b7797f4f3 Fix various (doxy) typos and whitespace issues
Found via `codespell -q 3 -L aci,ake,aline,alle,alledges,alocation,als,ang,anid,ba,beginn,behaviour,bloaded,byteorder,calculater,cancelled,cancelling,cas,cascade,centimetre,childs,colour,colours,commen,currenty,dof,doubleclick,dum,eiter,elemente,feld,freez,hist,iff,indicies,initialisation,initialise,initialised,initialises,initialisiert,ist,kilometre,lod,mantatory,methode,metres,millimetre,modell,nd,noe,normale,normaly,nto,numer,oder,orgin,orginx,orginy,ot,pard,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`
2019-10-03 07:57:13 +02:00
wmayer
d0d92b0801 force strict ISO C++ (-Wpedantic)
for Fem, Import, PartDesign, Robot, Sketcher, TechDraw
2019-09-18 14:18:07 +02:00
wmayer
9dfcdb983f fix possible memory leak 2019-09-15 21:10:51 +02:00
Zheng, Lei
f78f05adee Sketcher: fix external editing 2019-08-17 15:32:50 +02:00
Zheng, Lei
00bcef0619 Gui: support in-place editing
The link support means that an object can now appear in more than one
places, and even inside a document different from its own. This patch
adds support for in-place editing, meaning that the object can be edited
at correct place regardless where it is.

See [here](https://git.io/fjPIk) for more info about the relavent APIs.

This patch includes two example of modifications to support in-place
editing. One is the ViewProviderDragger, which simply adds the dragger
node to editing root node by calling
View3DInventorViewer::setupEditingRoot(dragger). The other much more
complex one is ViewProviderSketch which calls setupEditingRoot(0) to
transfer all its children node into editing root. ViewProviderSketch
also includes various modifications to command invocation, because we
can no longer assume the active document is the owner of the editing
object.

This patch also includes necessary modification of the 'Show' module to
support in-place editing.
2019-08-17 15:08:32 +02:00
luz.paz
25c3310fbd Crowdin: fix grammatical error + whitespace
https://crowdin.com/translate/freecad/569/en-fi#6498705
2019-05-02 13:34:39 -03:00
Abdullah Tahiri
dc32a0685b Sketcher: GUI PCH 2019-05-02 07:12:51 +02:00
triplus
43b081947f Improved icon themes support 2019-02-13 10:42:46 -02:00
wmayer
7949cd84ef fix possible crashes in sketcher commands due to wrong casts 2018-10-04 19:45:20 +02:00
Abdullah Tahiri
8505b0eff4 Sketcher: Automatic redundant removal mechanism
===============================================

It is a long felt need that redundant constraints are not generated while autoconstraining.

The solver sketcher in v0.17 is überpicky with redundants due to the new popularity contest algorithm. The former behaviour is exhacerbated.

This new mode enables automatic redundant constraint removal.

In UI operations IN EDIT MODE, upon detection of redundancy by the solver, the Sketcher will remove all redundant constraints detected by that solve.

This makes the sketcher much less annoying.

How to test this?

The easiest example is to create a vertical line. Then make the endpoints symmetric with respect to the horizontal axis. Without this mode,
the vertical constraint and the symmetry constraint are redundant. With this mode, the vertical constraint gets automatically removed by the Sketcher.
2018-08-26 20:54:01 +02:00
Abdullah Tahiri
74a5a066c9 Sketcher: UI command to delete all the constraints at once 2018-07-29 13:44:09 +02:00
Abdullah Tahiri
1e37612a27 Sketcher: Fix deleteall crash 2018-06-10 19:57:42 +02:00
Abdullah Tahiri
39e82c79f6 Sketcher: New tool bar icon under the copy command to move 2018-05-31 14:35:54 +02:00
Abdullah Tahiri
14c7349e2e Sketcher: DoF finder command while using the default SparseQR
=============================================================

- Modification to transparently switch from SparseQR to DenseQR and back to SparseQR when using the DoF finder command.
- Command Tools dof finder command name change
2018-05-31 11:40:40 +02:00
Abdullah Tahiri
ce4503ae40 Sketcher: New Command to select geometric elements with dependent parameters 2018-05-31 11:39:41 +02:00
wmayer
ff955c1aa1 check for selected sub-elements in sketcher copy function 2018-03-17 13:50:07 +01:00
luz.paz
a86c0fe137 sWhatsThis fixes
ref: https://forum.freecadweb.org/viewtopic.php?f=10&t=26687
2018-01-31 19:07:07 +01:00
Abdullah Tahiri
41deaf82dd Sketcher: Delete all geometry menu command (in sketcher tools) 2017-11-06 14:18:12 +01:00
wmayer
917e61a3be check for correct selection in Symmetry and Array sketcher commands 2017-09-27 19:12:30 +02:00
Abdullah Tahiri
aa43197976 Refactoring solve+recompute and reinstating initial solve+recompute behaviour 2017-08-19 17:14:27 +02:00
wmayer
2004544e57 fixes #0002710: Freecad doesn't show sketch elements added when overconstrained
issue #0002836: Crash in sketcher
2017-08-19 17:14:27 +02:00
Abdullah Tahiri
bc6a52ee94 fixes #0002499 2017-06-01 07:47:31 +02:00
wmayer
f2dc8c5d31 Some fixes of pr 538
fix -Wreturn-type
homogenous naming style
use official spelling of B-spline
2017-02-21 13:30:43 +01:00
wmayer
0955ccf594 fix whitespaces 2017-01-20 19:22:50 +01:00
Abdullah Tahiri
c9de3687af Sketcher: BSpline restore internal geometry 2017-01-11 23:51:06 +01:00
Abdullah Tahiri
ebfbe29d2f Sketcher: Restore internal geometry tool refactoring and extended support
=========================================================================

- Long felt need of refactoring the code so as not to repeat code already existing in SketchObject.
- Refactored code supports preexisting Ellipse and Arc of Ellipse and adds support for Arcs of Hyperbola and Parabola.
2016-12-26 22:54:47 +01:00
wmayer
1855c80f36 replace Part.Line with Part.LineSegment 2016-11-30 21:25:18 +01:00
wmayer
e54e9515fc rename 2d tool classes to be consistent with 3d classes 2016-11-21 14:29:51 +01:00
wmayer
222e9b6b46 replace hard coded numbers with static constants 2016-10-23 13:44:26 +02:00
wmayer
15d7ae5e2c fix -Wextra in Sketcher 2016-09-22 18:34:35 +02:00
wmayer
7e127c9b6a replace hard-coded shortcut 2016-09-10 14:49:39 +02:00
wmayer
8e71e4038b fix Coverity issues 2016-08-21 23:13:22 +02:00