Commit Graph

1650 Commits

Author SHA1 Message Date
vocx-fc
5c14c8f3fa Sketcher: move icons to tools subdirectory
Add the icon path to the workbench's `InitGui.py`.
2020-10-01 09:59:26 +02:00
vocx-fc
7a1d3a486c Sketcher: move icons to splines subdirectory
Add the icon path to the workbench's `InitGui.py`.
2020-10-01 09:59:26 +02:00
vocx-fc
c63dd6230f Sketcher: move icons to geometry subdirectory
Add the icon path to the workbench's `InitGui.py`.
2020-10-01 09:59:26 +02:00
vocx-fc
b64ed4c72e Sketcher: move icons to elements and pointers subdirectories
Add the icon paths to the workbench's `InitGui.py`.
2020-10-01 09:59:26 +02:00
vocx-fc
e0604d05ef Sketcher: move icons to constraints subdirectory
Add the icon path to the workbench's `InitGui.py`.
2020-10-01 09:59:26 +02:00
vocx-fc
748c387607 Sketcher: move icons to obsolete subdirectory
Icons not used in the source code, but which may be kept for historical
reasons, or in case they are used in the future.
2020-10-01 09:59:26 +02:00
vocx-fc
273e6a30ae Sketcher: small style changes to make the lines shorter 2020-10-01 09:59:26 +02:00
vocx-fc
ec0acf44f1 Sketcher: rename constraint icons to be more consistent with the rest
`Sketcher_ConstrainBlock` to `Constraint_Block`.
`Sketcher_ConstrainLock` to `Constraint_Lock`, and the corresponding
`_Driven` variant.

Adjust the icons in the taskpanel for the sketcher constraints,
elements, and for the action menu for constraints.

Adjust the icon order in the `Sketcher.qrc` resource file.
2020-10-01 09:59:26 +02:00
wmayer
2b49d60ac5 Sketcher: [skip ci] fix build failure 2020-10-01 08:10:28 +02:00
John Yani
893fd13b99 HiDPI: Hot point scaling is only required for X11 2020-09-30 22:31:43 +02:00
Yorik van Havre
c2cec2c38a Merged crowdin translations 2020-09-30 14:37:02 +02:00
Yorik van Havre
545055f65f Updated ts files 2020-09-30 13:06:53 +02:00
wmayer
e2d0bf2c3a 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
f752814e1a Sketcher: [skip ci] fix inconsistent indentations in SketchObject::rebuildExternalGeometry 2020-09-24 11:32:22 +02:00
shermelin
de28f074e1 Projections of arcs of circle, orthogonal case
Implementation when circle plane orthogonal to projection plane.
2020-09-24 11:22:58 +02:00
wmayer
bb657cd425 Sketcher: [skip ci] fix undo bug when directly changing a datum constraint in the property editor 2020-09-23 16:59:23 +02:00
wmayer
5956f41e5d Sketcher: [skip ci] fix computing of hotspot of sketcher icons on macOS 2020-09-23 11:31:17 +02:00
Vanuan
590e1ccac1 HiDPI: Change Sketcher crosshair hot spot xy
See https://forum.freecadweb.org/viewtopic.php?p=432021#p432021
2020-09-23 09:55:41 +02:00
wmayer
95d03c8d92 Sketcher: [skip ci] fix computing of hotspot of sketcher icons on Windows 2020-09-21 16:32:25 +02:00
Syres916
50d531061b [Sketcher] Improve Solver Message Visibility...
...when using dark(er) style sheets.
See discussion https://forum.freecadweb.org/viewtopic.php?f=3&t=50094
2020-09-13 12:52:28 +02:00
luz paz
ab7e5fb087 Fix typos in source comments
Found via `codespell`
2020-08-29 19:14:13 +02:00
wmayer
371aefb6cc Sketcher: workaround for cursor pixmaps created from SVG icons 2020-08-19 19:59:13 +02:00
Vanuan
65e66c9e62 High DPI support: Convert sketcher cursors to SVG
Remove xpm
2020-08-19 19:59:13 +02:00
wmayer
2b34145e4c Sketcher: [skip ci] add function to sketch validation panel to remove degenerated geometry 2020-08-13 17:24:10 +02:00
wmayer
d8bc05b162 Sketcher: [skip ci] remove superfluous semicolons 2020-08-13 16:30:07 +02:00
luz paz
f0d823eb51 Crowdin: Merge new translations [skip-ci] 2020-08-07 17:17:35 +02:00
wmayer
aa1afb5221 Part: [skip ci] move grid handling from ViewProvider2DObject to ViewProvider2DObjectGrid 2020-08-07 17:11:02 +02:00
wmayer
1d9a59e499 Part: [skip ci] move grid handling from ViewProvider2DObject to ViewProvider2DObjectGrid 2020-08-07 16:48:07 +02:00
0penBrain
4840d60ef2 [GUI/Sketcher] Add option to disable grid auto-sizing based on shape boundbox
Sketcher makes use of this option to self-manage the overall grid size
2020-08-07 13:30:42 +02:00
wmayer
13fc0554a0 LGTM: [skip ci] fix: Missing header guard 2020-07-27 11:16:41 +02:00
wmayer
e9ce75d544 LGTM: [skip ci] fix: Empty branch of conditional
An empty block after a conditional can be a sign of an omission and can decrease maintainability of the code.
Such blocks should contain an explanatory comment to aid future maintainers.
2020-07-26 15:49:14 +02:00
wmayer
2453a50aba Coverity: Structurally/Logically dead code 2020-07-20 17:34:28 +02:00
wmayer
b862c0fa41 Coverity: Using invalid iterator 2020-07-20 17:34:27 +02:00
wmayer
f37c728a2c Coverity: Division or modulo by float zero 2020-07-20 17:34:26 +02:00
wmayer
36363b3f14 Coverity: Resource leak 2020-07-20 17:34:24 +02:00
mwganson
283ef3ce86 [Sketcher] add python command sketch.getGeoVertexIndex(int index) -- returns tuple (geoId, posId) of vertex at that index in the sketch. usage example: (geoId, posId) = App.ActiveDocument.Sketch.getGeoVertexIndex(int(Gui.Selection.getSelectionEx()[0].SubElementNames[0][6:])-1) 2020-07-19 05:50:12 +02:00
wmayer
46a7a68064 PVS: V1046 Unsafe usage of the 'bool' and 'int' types together in the operation '&='. 2020-07-18 10:59:28 +02:00
wmayer
4807fd3b33 PVS: V730 Not all members of a class are initialized inside the constructor 2020-07-18 10:59:27 +02:00
luz paz
e4f6689e0a Merged crowdin translations 2020-07-13 14:49:45 +02:00
Yorik van Havre
da262c0b45 Updated master ts files 2020-07-13 13:20:21 +02:00
luz paz
ac76f16aa3 Fix Crowdin typos and various other typos/grammar [skip ci]
Found via codespell v2.0.dev0  
```
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,connexion,currenty,dof,doubleclick,dum,eiter,elemente,ende,feld,finde,findf,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
```
2020-07-12 11:42:27 +02:00
Abdullah Tahiri
ab15149825 Sketcher: fix access to isPerformingTransaction on null pointer
===============================================================

Fixes this crash:
https://forum.freecadweb.org/viewtopic.php?f=3&t=48414#p414255
2020-07-07 18:09:55 +02:00
Thomas Gimpel
36cb126a85 Sketcher: fix crash, when cloning element having a non-driving distance, radius, diameter or angle constraint; fixes #4393 2020-07-03 20:38:06 +02:00
Abdullah Tahiri
4ed35140c0 Sketcher: Augment malformed constraint messages
===============================================

Enable a user recomputing an object/document to identify which sketch has the malformed constraints.
2020-07-02 19:54:15 +02:00
wmayer
22daa5472d Sketcher: [skip ci] fixes -Wmaybe-uninitialized 2020-07-01 19:50:40 +02:00
Abdullah Tahiri
2a39c8e9fd Sketcher: Check invalid constraint indices in unmanaged operations
==================================================================

It is possible to bypass SketchObject in modifying geometry and constraints. Like in here:
https://forum.freecadweb.org/viewtopic.php?f=3&t=41326&start=20#p408409

This leads to unexpected behaviour and even crashes.

With this commit the new mechanism of constraint indices check is leveraged in cases not involving SketchObject operations (aka managed operations).

Direct assignment of properties from Python (sketcher unmanaged operations), undergo this extra indices check.

When indices in constraints are outside the geometry range, the constraints are shown as empty and the error is shown in the report window.
2020-07-01 14:04:25 +02:00
Abdullah Tahiri
638a6b24bc Sketcher: PropertyConstraintList input data validation
======================================================

PropertyConstraintList is provided with the ability to check its constraints indices against
a minimum and a maximum, and set an invalidindex status.

In this status, the getValues returns an emptylist, as in the case with invalid geometry types.
2020-07-01 14:04:25 +02:00
Abdullah Tahiri
30d30a27b8 GCS: Prevent that reference constraints affect the result of a redundant solving
================================================================================

Solves the part of this described bug relating to reference constraints affecting the diagnosis of redundant constraints:
https://forum.freecadweb.org/viewtopic.php?p=410195#p410195
2020-07-01 14:04:25 +02:00
Abdullah Tahiri
56db6f0e80 GCS: Add debug code to identify the popularity contest selected redundant that is removed 2020-07-01 14:04:25 +02:00
Abdullah Tahiri
088abe7353 Sketcher: Use move semantics wherever sensible
==============================================

Take advantage of PropertyGeometryList setValues() move overload in order to make code more readable and prevent
memory leaks (mostly by inadvertedly not deleting cloned geometry and constraints).

PropertyGeometryList and PropertyConstraintList are vectors of heap allocated pointers. Copying a vector
makes a shallow copy, not a deep copy (the pointers are the same in the copy).

For property management, setValues() function taking a const reference effectively make a deep copy of all
pointed objects. This means that heap allocated pointers of the client class passed to these functions must be
released by the client. While this sounds sensible, forgetting to is easy. In the cases where the developer
remembered to release these pointers, extra code is needed just for memory management.

This commit does not seek a substantial performance increase that would justify rewritting the code, although code
may be slightly faster sometimes.

Functions where setValues() is conditional are not changed to move semantics, as it makes no sense to make a deep copy to sometimes
perform a second deep copy later on. This code still uses const ref setValues().

CHECKS performed to refactored functions with this commit:

1) That the vector is NOT used after moving its content.

2) That whereever there is a clone(), there must be EITHER
    -a std::move if using rvalue setValues()
    OR
    - a delete to free the heap memory after setValues if using the const ref setValues()

3) That memory is released if an exception occurred.

N.B.: A couple of memory leaks are fixed in this commit too.
2020-07-01 14:04:25 +02:00