Commit Graph

34606 Commits

Author SHA1 Message Date
wmayer
13dce7864d Gui: Enable the thumbnail size widget by default
With PR #10016 the saving of thumbnails is on by default but the spin box to set the size is still disabled.
This results into an inconsistency and one has to click the Save thumbnails check box twice to enable the size widget.
2023-10-09 16:23:35 +02:00
wmayer
1312b9d2ac Tests: add unit tests for XMLReader::readNextElement() 2023-10-09 15:06:45 +02:00
wmayer
a2c2e4fb16 Core: In XMLReader::readNextElement() support structure <element>data</element> 2023-10-09 15:06:45 +02:00
wmayer
ce3e6b9b24 Core: add method to XMLReader to access next element of an XML file
If the next element could be read-in successfully true is returned, and false otherwise.
2023-10-09 15:06:45 +02:00
wmayer
56820718c5 Core: Revert superfluous changes made with PR #9521 2023-10-09 15:06:45 +02:00
luzpaz
e7a0690d47 Preferences: remove whitespace before colon
Uniformity fix in the preference page
2023-10-09 14:44:42 +02:00
Roy-043
80f97a588a Draft: Fix cursor scaling issue
Fixes #6793
2023-10-09 14:01:21 +02:00
Roy-043
e72da8abb6 Arch: ArchFrame typos when checking enum values 2023-10-09 13:55:46 +02:00
wmayer
2bd89e5771 Start: fixes #10221: /tmp/FreeCADStartThumbnails* directories are not removed when FreeCAD terminates
The commit adds some new functions:

* getThumbnailDir()
  Returns the path to the thumbnail directory which is a sub-directory of the Cache directory.
  There is no need to always create a unique directory after each restart because it doesn't harm
  if the thumbnail directoy contains deprecated files.

* createThumbnailDir()
  Creates the thumbnail directoy if it doesn't exist yet.

* getSha1Hash
  Helper function to compute a SHA-1 hash of a given path. If the same path is passed
  then the hash value will be the same.
  This way it can be avoided to create a different image file from a project file
  after each restart.

* getUniquePNG
  Computes the path of a PNG image file for a given project file. It's also possible
  to pass an arbitrary string as argument.

* useCachedPNG
  If the PNG image exists and if it's newer than the project file True is returned
  and False otherwise.

The changes in detail are:
1. For a given project file it is checked if the thumbnail directory already contains
   a cached image. If it's newer than the project file it will used, otherwise it will
   be re-created.

2. For the system icon to a given file format it is only checked if the icon already exists.
   If yes, it will be used.
2023-10-09 13:54:11 +02:00
Roy-043
6440caa038 Arch: Read and write object.Label on Wavefront OBJ import and export
Fixes #5635.
Fixes #5636.
2023-10-09 13:28:55 +02:00
Roy-043
3c14a56eed Draft: fix multiline offset for rotated SVG texts
Forum topic:
https://forum.freecad.org/viewtopic.php?p=711184#p711184
2023-10-09 13:27:54 +02:00
Matthew Woehlke
a7e4804e52 Fix build for C++20
Remove template argument list from constructor names. It has never been
necessary, and is forbidden in C++20 (n.b. CWG 2237¹). This has also
been independently fixed upstream in r449².

Fixes #10952.

¹ https://cplusplus.github.io/CWG/issues/2237.html
² https://sourceforge.net/p/cxx/code/449/
2023-10-09 10:46:05 +02:00
Abdullah Tahiri
e9187412d9 Sketcher: Example new type checking template function usage
===========================================================

Just two small refactor examples of how to use the type checking template functions.
2023-10-07 23:12:46 +02:00
Abdullah Tahiri
e19ef9b8ce Base: templates for type checking
=================================

Original idea of Werner:
https://github.com/FreeCAD/FreeCAD/pull/10643#issuecomment-1712966545

I really liked this syntax to avoid repetition and even explicit consideration of Types when type checking.

I thought it would be a pitty to get it lost.
2023-10-07 23:12:46 +02:00
David Carter
b1a7ca4054 Material: Update Python tests to work with other locales
Update Python tests to work with other locales

This fixes issues #10917 and #10924

Numeric values were beign compared to strings that did not take into account localizations. The test was modified to work regardless of localization.

There is still a known issue when working with pt_BR.UTF8. The default encoder for this localization is not UTF8 resulting in an error working with a parameter that returned the UTF character for the Greek letter mu in its units.
2023-10-07 19:44:13 +02:00
marioalexis
05e28cf550 Fem: Remove markers from scenegraph - fixes #10438 2023-10-07 14:09:20 +02:00
Abdullah Tahiri
96efff81c7 Sketcher: Fix segfault when activating a tool in a different view
=================================================================

When in Sketcher edit mode, a tool button is activated, while the view has been changing to view of a different type, it segfaults.

This commit checks the pointer of the view to ensure correct type before activation, and refusing to activate if not of the correct type.

fixes #10809
2023-10-07 09:00:06 +02:00
Paddle
37b68f3931 Create makeAngleBetweenTwoLines and Create Create calculateAngle to remove duplicates 2023-10-07 07:43:39 +02:00
wandererfan
772bd03cff [TD]fix fail on unmeshed shape 2023-10-06 20:39:38 -04:00
sliptonic
aa82948b27 Merge pull request #9521 from AgCaliva/User/Document/Feature_level_units_selection_#7746
Adding "ProjectUnitSystem" support to project files.
2023-10-06 07:56:59 -05:00
sliptonic
5f14ef7656 Merge pull request #10935 from marioalexis84/Fem-force
Fem: Force constraint overhaul
2023-10-05 12:12:06 -05:00
wmayer
95f1e3c038 Base: replace calls of printf() with Console().DeveloperWarning()
and remove the assert(0) statement as this is an indication of a problem in the code but not serious enough to crash the application
2023-10-05 14:06:37 +02:00
mwganson
579d4278de [MacroExecuteDialog] set keyboard focus to LineEditFind 2023-10-05 10:35:32 +02:00
wmayer
13cd3b7379 Part: add unit tests for empty face 2023-10-05 08:15:33 +02:00
wmayer
82c7427da9 Part: add unit tests for empty edge 2023-10-05 08:15:33 +02:00
Florian Foinant-Willig
afe8e70b86 Part: fix crash with null face 2023-10-05 08:14:50 +02:00
Florian Foinant-Willig
74a31d1473 Part: fix #10868 crash with null edge 2023-10-05 08:14:50 +02:00
wandererfan
d72478ade2 [TD]upgrade WeldSymbol icone 2023-10-04 20:27:46 -04:00
wmayer
51e1dda8d4 Clang-tidy: enable check google-explicit-constructor
Currently this check isn't enabled but when pushing a PR then the lint checker warns about non-explicit constructors which is
a bit annoying because the PR must be updated to fix the warning or in most cases it won't be fixed at all.

By enabling this check the developer already sees the warning before pushing a PR.
2023-10-04 18:09:58 -05:00
marioalexis
5482699fad Fem: Set default force to 1 N in FEM_ConstraintForce command 2023-10-04 17:09:53 -03:00
Uwe
ce860e2f34 Fem: Update force values in test .inp files 2023-10-04 17:06:47 -03:00
Uwe
9f90558d6a Fem: Fix force values in examples 2023-10-04 17:03:28 -03:00
Uwe
f9930d883d Fem: Change ConstraintPressure::Force property to App::PropertyForce 2023-10-04 17:03:28 -03:00
sliptonic
878fce7bb0 Merge pull request #10923 from marioalexis84/FEM-pressure
FEM: pressure constraint overhaul
2023-10-04 14:30:05 -05:00
AgCaliva
2212e68a30 merge master via cli 2023-10-04 13:28:48 -03:00
AgCaliva
7af1ec589c solving new error related to cmake 2023-10-04 13:18:20 -03:00
Roy-043
c2484914f2 Draft: Update the Plane class (step 2)
Related issue:
#5603.

Previous PRs:
#10766
#10838

The remaining Plane class functions have been processed (some are unchanged):

`setup`
* Updated to use new functions.
* The `direction` etc. arguments are never used AFAICT.
* Added `from draftutils import gui_utils`.

`reset`
* Unchanged.

`setTop`
* Calls `super().set_to_top()`. That function does not use `align_to_point_and_axis` but specifies exact vectors for improved accuracy.
* `import FreeCADGui` already happens at the top of the file.
* The code block after `if FreeCAD.GuiUp:` was kept for now.

`setFront`
* Idem.

`setSide`
* This function sets the WP to the left side position, and not to the right side postion as in the Draft_SelectPlane command.
* Idem.

`getRotation`
* Revised.
* The function has an akward name as it returns a Placement.
* The special code for Arch active container is obsolete (was already commented out in other functions).

`getPlacement`
* The `rotated argument` is ignored now. It was only used in the context of the old `placement_from_face` algorithm. See `DraftGeomUtils.placement_from_face` for the new implementation.
* Calls `super().get_placement()`.

`getNormal`
* Basically unchanged.

`setFromPlacement`
* Revised to call `super()` functions.

`inverse`
* Unchanged.

`save`
* Unchanged.

`restore`
* More compact code, but basically unchanged.

`getLocalCoords`
* Calls `super().get_local_coords()` which does not rely on Draft code, but creates a matrix and returns `mtx.inverse().multVec(point)`.

`getGlobalCoords`
* Calls `super().get_global_coords()` which creates a matrix and returns `mtx.multVec(point)`.

`getLocalRot`
* Calls `super().get_local_coords()`.

`getGlobalRot`
* Calls `super().get_global_coords()`.

`getClosestAxis`
* Calls `super().get_closest_axis(vec)` which translates the vector to the WP coordinate system and then finds the closest axis by comparing the absolute coordinates of the vector.

`isGlobal`
* Not used anywhere AFAICT.
* Calls `super().is_global()` which also checks the `position` attribute.
* As before the function works without any tolerance.

`isOrtho`
* Not used anywhere AFAICT.
* The original algorithm did not work properly (there was a comment). All angles were measured relative to the global Y axis. If the WP was randomly rotated around that axis the function would still return `True`. The new algorithm, `super().is_ortho()`, uses rounded Yaw, Pitch and Roll angles to check for orthogonality.

`getDeviation`
* Not used anywhere AFAICT.
* Unchanged.

`getParameters`
* Calls `super().get_parameters()` which uses the local `_get_prop_list` function.

`setFromParameters`
* Calls `super().set_parameters()` which uses the local `_get_prop_list` function.

`_get_prop_list`
* Function used internally. Returns a list of attribute.
2023-10-04 14:40:33 +02:00
Roy-043
919f6e78e0 Draft: importSVG: handle viewBox in mm
Forum topic:
https://forum.freecad.org/viewtopic.php?t=81696
2023-10-04 11:03:36 +02:00
marioalexis
ca204f7013 Fem: Use lower camel case in TaskFemConstraintPressure methods 2023-10-03 17:45:51 -03:00
Uwe
a6b0cf3b79 Fem: Update pressure values in test .inp files 2023-10-03 17:45:46 -03:00
Uwe
58ada81594 Fem: Fix pressure values in examples 2023-10-03 17:45:17 -03:00
Uwe
6845cb66f8 Fem: Change ConstraintPressure::Pressure property to App::PropertyPressure 2023-10-03 17:44:31 -03:00
wandererfan
ed72c03df3 [TD]fix sketch location in view 2023-10-03 13:35:36 -04:00
wmayer
255e9eb434 Part: move CmdSelectFilter and friends from core to Part module 2023-10-03 19:26:28 +02:00
wmayer
77f88d39c3 Part: handle Part_SectionCut in WorkbenchManipulator 2023-10-03 19:26:28 +02:00
wmayer
6b6229e352 Part: handle Part_SectionCut in WorkbenchManipulator 2023-10-03 19:26:28 +02:00
wmayer
f48e79cd04 Part: add WorkbenchManipulator to Part module 2023-10-03 19:26:28 +02:00
wmayer
ac342af190 Gui: integrate WorkbenchManipulator 2023-10-03 19:26:28 +02:00
wmayer
690b892536 Gui: add class WorkbenchManipulator 2023-10-03 19:26:28 +02:00
wmayer
3fb37a6075 Import: Extend OCAF browser 2023-10-03 15:55:22 +02:00