Commit Graph

42187 Commits

Author SHA1 Message Date
Furgo
a91bf4ee78 DXF: rename "Group layers into blocks" setting (#21896)
* DXF: rename "Group layers into blocks" setting

* DXF: apply suggested improvement children => contents

* Import: DXF, change tooltip to reflect the reality of the current code

https://github.com/FreeCAD/FreeCAD/pull/21896#issuecomment-2958611607
2025-06-17 09:38:38 +02:00
tetektoza
e8ae780ae5 BIM: Allow user to skip dialog during type conversion
As the title says - this adds a new option to the dialog to `never ask
again` as well user can customize both settings through preferences.
2025-06-17 09:35:38 +02:00
tetektoza
0817510181 BIM: Fix IFC type assignment not being saved to file
As the title says, this is simple fix - basically right now anytime user
changed Link property to point to proper IFC type, we weren't writing to
the IFC file buffer to finally write it to the file if user would save
it.

So this patch makes sure we write to this buffer by calling appropriate
function, and making ifc object have proper pointer to IFC type.
2025-06-17 09:33:57 +02:00
pre-commit-ci[bot]
6b28644ed7 [pre-commit.ci] pre-commit autoupdate
updates:
- [github.com/pre-commit/mirrors-clang-format: c8ab0f80399e63a4fabbf5313c0606831f09742e → 64827eb3528d4dc019b01153e9fb79107241405f](c8ab0f8039...64827eb352)
2025-06-16 18:55:48 -05:00
Kacper Donat
34dfd00b1e Merge pull request #21965 from tetektoza/fix/21861_crashes_selection_during_deletion
Core: Fix crashes during item deletion in specific selection order
2025-06-17 00:39:17 +02:00
tetektoza
fdf002df2d Core: Add guard in Tree to ensure we don't process items during deletion 2025-06-17 00:15:49 +02:00
tetektoza
5e91c90bdc Core: Fix crashes during item deletion in specific selection order
This patch fixes crashes that we've noticed during migration from Qt5 to
Qt6 in recent months.

If you select items in a tree in a specific direction or range (all, or
from bottom to top) and delete them, there is a high change user will
experience a crash in `testStatus` function. This problem arises because
we're getting into use-after-free situation.

Looking at the callstack there are a lot of calls to
`itemSelectionChanged` during deletion, which takes over item creation
after deletion in `TreeWidget::_slotDeleteObject`. This in turn causes
`DocumentObjectItem::testStatus` to be called prematurely when we have
dangling pointers in object map still. `itemSelectionChanged` signal is
being transmitted because the selection range is changing as we're
constantly deleting and readding certain items.

Previously there was `blockSelection` call during deletion, but it turns
out the signals can still be emitted even AFTER we delete the item. This
had to somehow change between Qt5 and Qt6. So, to be safe, move the
signal block for selection before the obj deletion loop to be sure we
won't retransmit this signal during an uncertain state.
2025-06-17 00:01:24 +02:00
Roy-043
fca41e4003 Rebase and minor adjustments 2025-06-16 18:25:59 +02:00
dependabot[bot]
60753068ec Bump step-security/harden-runner from 2.12.0 to 2.12.1
Bumps [step-security/harden-runner](https://github.com/step-security/harden-runner) from 2.12.0 to 2.12.1.
- [Release notes](https://github.com/step-security/harden-runner/releases)
- [Commits](0634a2670c...002fdce3c6)

---
updated-dependencies:
- dependency-name: step-security/harden-runner
  dependency-version: 2.12.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-16 11:18:56 -05:00
dependabot[bot]
6bb3469308 Bump github/codeql-action from 3.28.19 to 3.29.0
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.19 to 3.29.0.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](fca7ace96b...ce28f5bb42)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 3.29.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-16 11:18:46 -05:00
Benjamin Nauck
01d9e6efa3 Sketcher: Refactor GeoDef and ConstrDef structs
- Fix comment for mid-point
- Use in-class member initializers instead of constructor
- Remove redundant default constructor (got redundant after initializers)
- Made comments doxygen compatible
2025-06-16 11:18:25 -05:00
tetektoza
864ea5176b BIM: Fix Arch_SectionPlane having incorrect display style upon init
Regressed from previous behavior - there was Arch's refactor and the
base element that `SectionPlane` was inheriting from was
`App::FeaturePython`, not `Part::FeaturePython`. This changes a lot, since
`Part::FeaturePython` has predefined color (black in this case), which
later on - during property set of `SectionPlane` in properties caused
skipping of preferred setup of color.
2025-06-16 18:15:53 +02:00
Yorik van Havre
fe83909cf7 Merge pull request #21826 from 3x380V/fix_21812
Spreadsheet: Re-enable zooming and fix cursor change
2025-06-16 18:10:27 +02:00
Benjamin Nauck
6e3135c08d App: Trim “Gui::” and “NavigationStyle” more securely
By using regex we can remove prefix and suffix more securely as we can’t assume all navigation styles are formatted the same (mistakes can happen)
2025-06-16 11:07:40 -05:00
Chris Hennes
46888b83b2 Merge pull request #21921 from furgo16/add-prefcheckablegroupbox
Gui, Draft, BIM: Add PrefCheckableGroupBox, use it in IFC exporter preferences page
2025-06-16 11:06:30 -05:00
George Peden
94d39087d3 Sketcher: Add contextual input hints to edit tools (InputHints Phase 3) (#21806)
* Add input hints to fillet and chamfer tools

* Add hints to trimming tool

* Add hints to splitting tool

* Implement hints for extend tool

* Add hints to external geometry

* Add hints to Carbon Copy tool

* Hint updates to align with developer guidelines

* change "click to set" to "set" per PR comments

* Use enum (or declare one) to be type safe per PR comments

* For "trivial" one-step / one-state tools, refactor with direct hint return rather than using declarative / table pattern.

* Refactor hint tables initializers with C++20 features per PR feedback

- Use designated initializers (.state = , .hints = ) for clearer structure
- Add 'using enum Gui::InputHint::UserInput' to eliminate repetitive prefixes
- Applied to DrawSketchHandlerExtend and DrawSketchHandlerFillet

* Refactor Splitting tool hint implementation with direct return (trivial) pattern

* For fillet change "vertex" to "point" per PR feedback

* Change hint to "pick location on edge to split" per PR feedback
2025-06-16 11:05:13 -05:00
Max Wilfinger
ccf27775dc Gui: Center notification label and disable show report view by default (#21872)
* Gui: Center notification label and disable show report view by default

* Stylesheet: min-width: 0 for QStatusBar QPushButton
2025-06-16 11:03:58 -05:00
Furgo
1e29a3273f Import: DXF, handle non-standard 8859_1 encoding (#21905)
* Import: improve DXF importer exception handling

* Import: DXF, pinpoint erroneous header section when reading

* Import: tackle 8859_1 non-standard encoding name
2025-06-16 18:02:56 +02:00
Roy-043
e68a40cdb0 BIM: fix display of help menu items after reactivation
Fixes #21873.
2025-06-16 17:54:43 +02:00
Chris Hennes
2a48addd57 Merge pull request #21924 from hyarion/fix/lcs-crash
Gui: Fix crash when creating a LCS
2025-06-16 10:42:55 -05:00
Ryan Kembrey
52725ebeb7 TechDraw: Add spacing preview without OCCT calls 2025-06-16 10:41:21 -05:00
Samuel
034b8bf579 CAM: Show abbreviations next to properly labels in the toolbit editor (#21887) 2025-06-16 10:40:32 -05:00
Furgo
d166d2a5e8 3rdParty: avoid warnings from libE57Format (#21818)
* 3rdParty: avoid warnings from libE57Format

* Suppress all warnings from libE57Format

* Fix typo in original file
2025-06-16 10:39:12 -05:00
Furgo
b88cbac4f5 BIM: fix ArchPipe's view provider initialization 2025-06-16 17:37:28 +02:00
paddle
2161725848 Part: FaceMakerRing from RealThunder's branch.
Co-authored-by: Zheng Lei <realthunder.dev@gmail.com>
Co-authored-by: Pierre-Louis Boyer <pierrelouis.boyer@gmail.com>
2025-06-16 10:33:35 -05:00
Max Wilfinger
1421ff7094 Sketcher: ShowDimensionalName by default 2025-06-16 10:32:42 -05:00
dependabot[bot]
65fd80754a Bump prefix-dev/setup-pixi from 0.8.8 to 0.8.10 (#21973)
* Bump prefix-dev/setup-pixi from 0.8.8 to 0.8.10

Bumps [prefix-dev/setup-pixi](https://github.com/prefix-dev/setup-pixi) from 0.8.8 to 0.8.10.
- [Release notes](https://github.com/prefix-dev/setup-pixi/releases)
- [Commits](19eac09b39...14c8aabd75)

---
updated-dependencies:
- dependency-name: prefix-dev/setup-pixi
  dependency-version: 0.8.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update pixi-version as well

Co-authored-by: Jackson Oursland <jacob.oursland@gmail.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>
Co-authored-by: Jackson Oursland <jacob.oursland@gmail.com>
2025-06-15 17:07:18 -05:00
Captain
f92d33944b Gui: refactor SoLinearDragger (#21451)
* Gui: refactor SoLinearDragger

* further improvements

* allow changing label visibility

* change SoLinearDraggerContainer to not inherit from SoDragger

---------

Co-authored-by: captain <captain@captain.captain.com>
2025-06-14 23:21:25 +02:00
theo-vt
9ecb62c8f6 Sketcher: Fix autoscale issue with the origin (#21952)
* Correctly handle geo ids < 0 in scale handler
2025-06-14 13:07:19 -05:00
Benjamin Bræstrup Sayoc
117796bf08 Gui: use parameter observer for locale parameter
Parameter change should be independent of the use of the preference window.
2025-06-14 18:25:03 +02:00
Chris Hennes
9714e2f87a Base: Disable XML external entity expansion
Addresses https://github.com/FreeCAD/FreeCAD/security/code-scanning/29
2025-06-13 10:44:01 +02:00
pre-commit-ci[bot]
f03900b58d [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-06-13 10:40:48 +02:00
Syres916
6eecd08f7c [Gui] C++ preparation for deprecation of QCheckBox…
…stateChanged -> checkStateChanged
2025-06-13 10:40:48 +02:00
tetektoza
2c532ed924 Sketcher: Fix OVP accepting input prematurely in Position and Dimensions
Fixes the problem where if user has selected `Position and dimensions`
mode in Preferences, then after first keystroke on 2nd label after
typing something in 1st label before, the input is being accepted
without allowing them to enter a number with more than 2 digits.
2025-06-13 10:10:58 +02:00
tetektoza
60a86b05c4 Sketcher: Fix OOB access to OVPs
Stupid mistake of mine from previous refactor - some of the OVPs do not
contain those elements and thus should not be accessed prematurely.

This patch moves access to the OVPs when it's actually needed so it
won't go out of bounds.
2025-06-13 10:10:58 +02:00
Alfredo Monclus
f5c32243a6 Gui: fix double-click on checkboxes locking the properties 2025-06-13 10:10:31 +02:00
Roy-043
89cb9877b7 Draft: OrthoArray task panel change some strings to sentence case (#21959)
X Axis -> X axis
Same for Y and Z.
2025-06-12 19:52:52 +02:00
Benjamin Nauck
f32fdcf48b Gui: Fix regression pointed out in review
paddlestroke:
> Here we actually need to keep App::Origin. Because we do not allow deletion ONLY of origin objects. Not of normal LCS.

While the original code:
```cpp
auto origin = dynamic_cast<App::Origin*>(lcs);
if (origin && !origin->getInList().empty()) {
```
...handles this perfectly fine, intent isn't obvious when reading it.
Using `is<T>()` shows intent better and should avoid similar situations in the future.
2025-06-12 10:33:56 +02:00
Benjamin Nauck
4c66d2e3d4 Gui: Refactor LCS fixes
* use early exit to highlight main execution path
* use `auto*` for pointer
* use getObject<T>() instead of casting result from getObject()
* remove empty updateData()
* rename origin to lcs in setTemporaryVisibility for clarity
2025-06-12 10:27:06 +02:00
Luz Paz
775194b5b9 TechDraw: fix typo in comment 2025-06-11 21:51:23 +02:00
Max Wilfinger
9d1360fc8d Gui: Fix dragger update when moving to target object and make flip independent of selected components. 2025-06-11 20:58:47 +02:00
tetektoza
a95d782ab0 Sketcher: Refactor access to OVPs to not repeat array access everytime
As the title says. I think personally this increases readability just a
little bit and I thought it's low effort to refactor.

Instead of checking the OVPs through array everytime, since we access
them multiple times in different scenarios - just cache them on the
beginning of state and access the variable, instead of array.
2025-06-11 13:30:35 +02:00
wmayer
f2780320cc Gui: Fix crash when creating a LCS
This is a left-over of the regressions introduced with PR 18126.
Thanks to some moderinization of the code base and replacing static with dynamic casts undefined behaviour
has changed to well-defined behaviour but now unchecked null pointers.

This change does some extra null pointer checks and uses the now correct types for down casting.

Hint: Upstream still uses many static casts here that already cause undefined behaviour when creating a LCS.
This could be the reason for the possible crashes when deleting a LCS as described in 20261

# Conflicts:
#	src/Gui/ViewProviderCoordinateSystem.cpp
2025-06-11 08:26:17 +02:00
Ladislav Michl
4d1d6f4e78 Revert "Sheet: Disable zooming"
This reverts 0c4fb60 ("Sheet: Disable zooming") as it breaks some
users workflow.
2025-06-11 06:54:59 +02:00
Kacper Donat
109e11e6b2 Spreadsheet: Fix cursor being stuck resize state when scaled 2025-06-11 06:54:59 +02:00
Furgo
195afca33f BIM: Use PrefCheckableGroupBox in IFC exporter preferences page 2025-06-11 02:44:52 +02:00
Furgo
b584c506bd Draft: handle reading defaults from PrefCheckableGroupBox 2025-06-11 02:44:52 +02:00
Furgo
5362c818c8 Gui: add new PrefCheckableGroupBox widget 2025-06-11 02:44:52 +02:00
wandererfan
7388758ad9 [TD]fix bad element name in Vertex::Restore 2025-06-10 13:46:57 -05:00
wmayer
456659d763 Test: Do not write test files into CWD
When running the tests make sure to write the test files into the temp directory.

This fixes issue 19112
2025-06-10 17:11:25 +02:00