Commit Graph

39412 Commits

Author SHA1 Message Date
Lawrence Woestman
087d393449 CAM: added three command line arguments, with tests 2025-05-19 13:52:20 -07:00
Joao Matos
e5dad52fdf App: Invoke signalBeforeRecompute() on the GUI thread
Historically, `App::Document::recompute()` ran entirely on the **main**
(GUI) thread and directly emitted `signalBeforeRecompute()`.

* Add-ons like **Assembly3** and others depend on that signal for
setup/teardown hooks before any recompute work begins.

* After offloading `recompute()` into a background worker thread to keep
the UI responsive, calling `signalBeforeRecompute()` directly from the
worker would break thread-affinity rules and silently break
compatibility with those add-ons.

**Solution**

1. **Introduce a generic hook** (`PreRecomputeHook`) in
**App::Document**:

* A `std::function<void()>` that, if set, is invoked at the very
start of `recompute()`.

* Core code stays Qt-free—only knows to call a callback if one
exists.

2. **Wire up the hook in `Gui::Document`**:

* In the GUI wrapper’s constructor, install a hook that calls
`callSignalBeforeRecompute()`.

* `callSignalBeforeRecompute()` uses `QMetaObject::invokeMethod(...,
Qt::BlockingQueuedConnection)` to enqueue `signalBeforeRecompute()` on
the GUI thread and **block** the worker until it completes.

    * If already on the GUI thread, it simply calls the signal directly.

3. **Maintain add-on compatibility**:

* From the add-on’s perspective nothing changes—they still receive
`signalBeforeRecompute()` on the main thread before any recompute work.

* Internally, the recompute body now runs on a worker thread,
improving UI responsiveness without breaking existing hooks.

**Result**

* **Recompute** remains fully backward-compatible for add-ons like
Assembly3.

* **UI thread** still handles all GUI-related signaling.

* **Worker thread** performs the actual heavy lifting, unblocked only
once the GUI is primed and all pre-recompute signals have been
delivered.
2025-05-19 18:30:56 +02:00
Andrea
6d81096b5a SpreadSheet: remove function
Observer is no longer required as PropertySheet is now derived from  PropertyLinkBase and will handle all the link related behavior
2025-05-19 18:27:01 +02:00
Andrea
0f9a16260d Removed empty functions
Removed empty functions
2025-05-19 18:25:17 +02:00
Andrea
b5feb01cdc Remove oldFuse funcion
oldFuse is deprecated since OCC 7.3
2025-05-19 18:21:07 +02:00
Kacper Donat
c77a6e57ae Materials: Fix MaterialManager being copied on getInstance() 2025-05-19 18:12:01 +02:00
Kacper Donat
038cc5dc8c Materials: Fix ModelManager being copied on getInstance() 2025-05-19 18:12:01 +02:00
tetektoza
3b441792b8 BIM: Make a correct mapping to weight during IFC Quantities assignment
Currently we can assign quantities to a BIM object, but upon exporting
quantities are not visible in the IFC file.

This was because we didn't have a correct mapping to weight property.
`App::PropertyWeight" basically doesn't exist, so this patch changes it
to `App::PropertyMass`, as it is the same. The incorrect mapping
resulted in a traceback, which in turn resulted in missing a big part of
additional processing for the properties, which resulted in
`writeQuantities` checking for non-existent IfcData in the object.
2025-05-19 18:10:37 +02:00
Furgo
47c76827d8 BIM: do not prune Roof objects on export 2025-05-19 18:00:38 +02:00
FEA-eng
c139640c8f FEM: Add more glyph types for the Glyph filter (#21397)
* FEM: Update post_glyphfilter.py

* FEM: Update TaskPostGlyph.ui

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-05-19 17:52:25 +02:00
marioalexis
a7cf3a4900 Fem: Add support for VTK < 9.1 in calculator filter - fixes #21346 2025-05-19 17:50:17 +02:00
Benjamin Nauck
05af09abb9 Merge pull request #21042 from furgo16/add-taskpanel-walloffset
BIM: add Offset input to wall creation task panel
2025-05-19 17:45:46 +02:00
xtemp09
712de69f73 Add Navigation Style/Orbit Style/Rotation Mode to About info
Closes #17431
2025-05-19 17:45:00 +02:00
tetektoza
c8395f43fc BIM: Avoid traceback if there is no Classification selected
As the title says, if user selects `OK` button and has no Classification
selected (which can happen only if the list is empty I think), then they
get a traceback since we're trying to access list of selections
directly.

So this patch adds a small patch to close the form if user has pressed
`OK` button and did not select anything.
2025-05-19 17:41:24 +02:00
sliptonic
7d5d1c7295 Merge pull request #21129 from jffmichi/fix_active_and_coolant
CAM: fix handling of Active state and CoolantMode with nested dressups
2025-05-19 10:33:45 -05:00
PaddleStroke
782e90b4cc TechDraw: Fix claiming of hatch 2025-05-19 17:33:19 +02:00
sliptonic
7658e255cc Merge pull request #21408 from jffmichi/fix_array_dressup_two
CAM: fix loading Array dressup with unused properties
2025-05-19 09:48:02 -05:00
sliptonic
10c2e8819e Merge pull request #21108 from tarman3/pathshape2
CAM: PathShape with Tool Controller
2025-05-19 09:12:58 -05:00
Ladislav Michl
baad73f0e3 Base: fix conversion to kilometers in Standart unit schema
Fixes: 1155f0d752 ("Base: simplify UnitsSchemas management")
2025-05-19 12:15:51 +02:00
Ladislav Michl
d69a143a17 Base: align unit format to Quantity parser expectations
Quantity parser is unable to deal with exponents written in
supersript, so change it back to ^n.

The micro prefix is expected to be U+00B5, not U+03BC, so change
it back as well. Note, that \x escape sequence reads till the
whitespace or the end of string, thus microFarad becomes
  "\xC2\xB5""F

Fixes: 1155f0d752 ("Base: simplify UnitsSchemas management")
2025-05-19 12:15:51 +02:00
Ladislav Michl
3e09bf975c Base: fix QuantityPy::getValueAs
Fixes: 77f4515963 ("Base: refactor QuantityPy class")
2025-05-19 12:15:51 +02:00
bofdahof
d4a031583f Base: restore output format of imperial fraction units
Fixes: 1155f0d752 ("Base: simplify UnitsSchemas management")
2025-05-19 12:15:51 +02:00
PaddleStroke
e423b1bf23 TechDraw: Lock multiple views 2025-05-19 09:37:37 +02:00
PaddleStroke
39b6a1e3a8 TechDraw: decorateLine fix (#21312)
* TechDraw: decorateLine fix

* Update CommandAnnotate.cpp
2025-05-19 09:36:47 +02:00
Chris Hennes
4cc069eb0a TD: Remove unused variable 2025-05-19 09:36:13 +02:00
Céleste Wouters
68b9129c11 Sketcher: remove "SecondIcon" logs on constraint icon hover
Hovering the cursor over constraint icons sometimes logs "SecondIcon"
messages to the report view, doing so for every cursor move event.
This message isn't useful outside of a development context and in fact
is a leftover from 7ab2b3b690ef6447cfd16842af3008817f8e77f7.

Removes this message.

Fixes #21417
2025-05-18 16:30:22 +02:00
jffmichi
8331a41902 App: Fix exported object dynamic property type identifier (#21415)
Fixes: 9d6f1ad37c ("App: Align Document to best practices")

Co-authored-by: jffmichi <>
2025-05-18 01:38:04 +02:00
Roy-043
0e9c1451c7 Draft: use different color for WPProxy to avoid BIM dependency
Fixes #21390.
2025-05-17 14:30:48 +02:00
jffmichi
86a682883e CAM: fix loading Array dressup with unused properties 2025-05-17 12:42:28 +02:00
Roy-043
7decc3ea55 Draft: avoid redundant constraints in make_sketch.py (#21398)
Forum topic:
https://forum.freecad.org/viewtopic.php?t=97072

The MissingVerticalHorizontal functions from the Sketcher WB do not behave as expected. See #21396.

A check for redundant contraints is required if   `makeMissingVerticalHorizontal()` is used. The argument for the function should be `True`. For consistency the same was done for makeMissingPointOnPointCoincident().
2025-05-16 19:12:32 +02:00
Roy-043
ba961f8d42 Draft: params.py: do not report missing UI files (#21370)
See #21331.
2025-05-16 15:27:33 +02:00
Alfredo Monclus
2e54df073d Gui: fix ElideCheckbox spacing 2025-05-16 09:32:11 +02:00
Alfredo Monclus
46ab345a9f PD: move the base profiles types to the top 2025-05-15 23:31:55 +02:00
Kohei Takahashi
0a78771733 Base: Fixed segfault on destructing cached string (#20563)
* Base: Fixed segfault on destructing cached string

Xerces default memory manager is deleted before destructing static local
variable and segfault.

---------

Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>
2025-05-15 17:23:03 +00:00
Luz Paz
ee4fa234c9 Fix various typos
Missed by the codespell CI not being functional for a period of time.
2025-05-15 10:59:48 -05:00
Benjamin Bræstrup Sayoc
88dc2048cd TechDraw: fix face color not working
Fixes #20467
2025-05-15 12:16:24 +02:00
Joao Matos
ddde5a9566 Fix warnings in ModelManagercode. 2025-05-15 01:02:55 +02:00
Chris Hennes
f5ab6295ba UI: Remove qPixmapFromMimeSource pixmap function
This function dates back to Qt3, and was removed in Qt4. Modern Qt no
longer uses this ui file entry, and in some circumstances the uic
complains about its presence.
2025-05-15 00:56:30 +02:00
Chris Hennes
3178e13f04 Materials: Clean up unused variables
Updated error messages no longer refer to the exception object, resulting in compiler warnings.
2025-05-15 00:29:19 +02:00
Chris Hennes
b36a21b721 Gui: Eliminate signed-to-unsigned comparison
`std::numeric_limits<int>::max()` can losslessly be cast to an unsigned
int to silence the compiler warning about comparison of signed to
unsigned.
2025-05-15 00:20:35 +02:00
FEA-eng
a20d562da4 FEM: Update TaskPostGlyph.ui 2025-05-15 00:06:43 +02:00
FEA-eng
5b7d5d0a85 FEM: Update post_glyphfilter.py 2025-05-15 00:06:43 +02:00
jffmichi
2c83e612b3 CAM: fix rrf postprocessor always writing to "-" instead of specified file 2025-05-14 22:00:11 +02:00
jffmichi
f0c4205507 CAM: prevent marlin postprocessor from always writing to "-" 2025-05-14 21:55:49 +02:00
jffmichi
c3f491be57 CAM: fix crash in dynapath_4060 postprocessor due to fmt function expecting precision as integer 2025-05-14 21:50:04 +02:00
jffmichi
ffdc9832e0 CAM: fix uccnc postprocessor not checking the Active state of operations 2025-05-14 21:44:48 +02:00
jffmichi
2fd2ec5f5c CAM: fix handling of Active state and CoolantMode with nested dressups for some non-refactored postprocessors 2025-05-14 21:43:31 +02:00
Ladislav Michl
602880ed80 Base: revert to using ASCII chararacters for imperial lengths
The new unit schema management is using U+2032 and U+2033 characters
for feet and inches while parser is expecting only ' and ", while
U+2032 and U+2033 are used for arcminute and arcsecond.

While this is not an ideal solution and parser should deal with both,
revert back to ASCII for now.

Fixes: 1155f0d752 ("Base: simplify UnitsSchemas management")
2025-05-14 11:39:09 +02:00
Syres916
67d0345870 Base: fix default unit schema
Fix the transcription error which occured while moving into
single structure. Default schema now uses milimeters again.

Fixes: 1155f0d752 ("Base: simplify UnitsSchemas management")
2025-05-14 10:25:47 +02:00
Ladislav Michl
e577bebe56 Base: fix Python interface for Unit schema selection
Fixes: 1155f0d752 ("Base: simplify UnitsSchemas management")
2025-05-14 10:20:49 +02:00