Commit Graph

41279 Commits

Author SHA1 Message Date
George Peden
603f84fbae Add MODE_HINT to dimension tool
- Add MODE_HINT constant to DrawSketchHandlerDimension class
- Shows 'switch mode' hint for M key in dimension tool
- Addresses reviewer feedback for missing M key hint
2025-09-30 08:47:43 -05:00
George Peden
c6e7976af5 Fix ConstrainSymmetric two points + symmetry point workflow
- Fix hint text to say 'pick symmetry line or symmetry point' for two points + symmetry point workflow
- Add missing sequence {SelVertexOrRoot, SelVertexOrRoot, SelVertexOrRoot} to allowedSelSequences
- Add case 8 to handle two points + symmetry point constraint creation
- Fix duplicate constraint creation by adding return statement in case 8
- Add getSelection().clearSelection() for consistency

Fixes reviewer comment #2 from PR #22282
2025-09-30 08:47:43 -05:00
George Peden
03ea7fd4c6 Fix Sketcher Dimension hints - add context-aware hints based on selection
- Add PICK_POINT_OR_EDGE constant to DrawSketchHandlerDimension class
- Implement nuanced hints for Dimension tool based on selected geometry:
  - Empty selection: 'pick point or edge'
  - Single point/line/circle: 'pick second point or edge'
  - Multiple selections: 'pick second point or edge'
- Remove stray character causing build error
- Addresses feedback on issue #22282 for comprehensive Sketcher hints coverage
2025-09-30 08:47:43 -05:00
George Peden
800afc5dfa Improve context-aware hints for Sketcher constraints
- ConstrainDistanceX/Y: Fix hints to show 'pick second point' instead of 'pick second point or edge' when first selection is a point
- ConstrainPerpendicular: Add context-aware hints for edge+point+edge workflow
- ConstrainTangent: Add context-aware hints for edge+point+edge workflow
- ConstrainSymmetric: Fix hints to show 'pick edge or second point' instead of 'pick edge or first point' when first selection is a point
- ConstrainSymmetric: Fix hints to show 'pick symmetry line' instead of 'pick symmetry line or point' for point+point+edge workflow

All changes are hint improvements only - no functionality changes to existing workflows.
2025-09-30 08:47:43 -05:00
George Peden
6730a5bc74 Refactor: Replace all literal hint strings with constants
- Added class-level static constexpr constants for all hint strings
- Replaced all QObject::tr("%1 pick...") with constants in both DrawSketchHandlerGenConstraint and DrawSketchHandlerDimension classes
- Eliminates string duplication and improves maintainability
- Addresses Copilot's PR feedback on string refactoring
2025-09-30 08:47:43 -05:00
George Peden
7ecb97a11e Refactor hint strings to use constants
- Add class-level constants for all hint texts
- Replace all hardcoded strings in static table and context-aware hints
- Eliminate duplication and improve maintainability
- Addresses Copilot PR review feedback on code duplication

All hint strings are now defined once and reused consistently.
2025-09-30 08:47:43 -05:00
George Peden
018ed43fac Add context-aware hints for remaining constraint tools
- Add context-aware hints for ConstrainPerpendicular
- Add context-aware hints for ConstrainTangent
- Add context-aware hints for ConstrainSymmetric
- All hints now remember user selections to provide appropriate guidance
- Covers all workflows mentioned in issue #22282 feedback
- Completes comprehensive coverage of missing constraint hints
2025-09-30 08:47:43 -05:00
George Peden
700afdb07f Add context-aware hints for ConstrainAngle tool
- Add special case for Sketcher_ConstrainAngle in getToolHints()
- Hints now remember what user has selected to provide appropriate guidance
- Step 0: 'pick edge or first point' (covers all workflows)
- Step 1: Context-aware based on first selection:
  - If point first: 'pick first edge' (point+edge+edge workflow)
  - If line first: 'pick second line or point' (line+line or edge+point+edge)
- Step 2: Context-aware based on selection history:
  - Point+edge+edge: 'pick second edge'
  - Edge+point+edge: 'pick second edge'
- Fixes part of issue #22282 - missing angle constraint hints
2025-09-30 08:47:43 -05:00
George Peden
27af7fda04 Add missing hints for ConstrainRadiam tool
- Add hints entry for Sketcher_ConstrainRadiam in hints array
- ConstrainRadiam now shows 'pick circle or arc' hint like other radius/diameter tools
- Fixes part of issue #22282 - missing radius constraint hints
2025-09-30 08:47:43 -05:00
Sami Liedes
846b14e793 Gui/Application, QuarterWidget: request OpenGL compatibility profile (#23768)
On Wayland with Qt, the default OpenGL context often ends up being
OpenGL ES. ES is a stricter API based on the "core" profile and lacks
many legacy functions (e.g. glEnd). FreeCAD relies on some of these
functions, which work under Mesa’s permissive stack but fail outright
with NVIDIA’s proprietary drivers, resulting in a blank 3D view.

Fix this by explicitly requesting a desktop OpenGL compatibility
profile both before QApplication creation and in QuarterWidget. This
ensures the presence of the legacy entry points required by Coin/SoQt.

(NB: both requests appear to be necessary; a single change was not
sufficient in testing.)
2025-09-29 19:22:29 -05:00
PaddleStroke
fa15dc6791 Assembly: Fix errors on solve when limits 2025-09-29 12:46:19 -05:00
sliptonic
274153016f CAM: Fixes #11163
Changes default scale from 2.0 to 3.0  Adds a parameter. DefaultArrowScale
to control.
2025-09-29 11:37:06 -05:00
Chris Hennes
9cfe1efa37 Part: Fix 'Copy' item text 2025-09-29 18:17:12 +02:00
Ryan Kembrey
36ce0df98c TechDraw: Fix selections not clearing when subelements are also selected 2025-09-29 11:11:34 -05:00
sliptonic
61d0262dab Merge pull request #24046 from Connor9220/FixCAMSanityReport
CAM: Fix CAM Sanity Report
2025-09-29 11:09:06 -05:00
Kacper Donat
646fb6dce8 Compiler warning cleanup (#22997)
* Part: Remove unused arguments from isLinearEdge

* Gui: For Qt 6.5 and later, use ParseOptions in xml

* Gui: Remove unused variable from fuzzyMatch()

* Sketcher: Remove unused parameter from *ReferenceSelection

* PD: Remove unused parameter from *ReferenceSelection

* Part: Rename layout to avoid conflict

* FEM: remove unused variable from handlePropertyChange

* CAM: Eliminate C++11 compiler warning by explicitly defaulting copy
2025-09-29 18:05:58 +02:00
sliptonic
bb4e22709e Merge pull request #24148 from Connor9220/ConvertTappingOpToExperimental
CAM: Convert tapping operation to experimental feature, Add tap pitch / spindle speed, Fix toolbit schema bugs, update legacy linuxcnc post
2025-09-29 11:03:13 -05:00
sliptonic
c2c9621e7c Merge pull request #24234 from Connor9220/FixTooLibrarySpindleDirection
CAM: Fix SpindleDirection and Material not updating from toolbit files; reduce log noise
2025-09-29 11:02:58 -05:00
Chris Hennes
f90ada9c4c Merge pull request #21713 from 3x380V/pd_fixes
PartDesign: Random fixes
2025-09-29 10:54:46 -05:00
Chris Hennes
5938479cf4 Assembly: Fix translatable strings (#24243)
* Assembly: Fix translatable strings

* [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-09-29 17:48:01 +02:00
Krzysztof
988083d3f7 FEM: Restore and harmonize FEM Task selection hints (#23678)
* FEM: Add hint about selectable geometry types in 'Geometry reference selector'

* FEM: Harmonize selection hint in FEM Task dialogs

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

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

FEM: Add translation support, correct selectable geometry

FEM: Harmonize selection hint in FEM Task dialogs

* [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-09-29 10:43:23 -05:00
Roy-043
2a805a76fb BIM: Arch_MergeWalls: issue message when walls are not the same
Fixes #21228.
2025-09-29 17:28:53 +02:00
Chris Hennes
a0c7c7dc38 Merge pull request #23230 from tetektoza/fix/22070_fix_deleting_compound_not_deleting_children
Core: Allow users deleting objects under group recursively
2025-09-29 10:14:11 -05:00
luzpaz
cfca7e3a72 FEM: fix source comment typos
Fix various source comment typos introduced recently.
2025-09-29 08:47:20 -05:00
captain0xff
4517452306 Gui: set focus to the corresponding property when a gizmo is released 2025-09-28 21:39:34 -05:00
Kacper Donat
7b4066f397 Sketcher: Do not force visibility of planes on edit
This updates the logic that had special handling for planes for the
temporary visibility feature of sketcher which was mishandled after move
to core datums.
2025-09-28 18:59:37 -05:00
Bas Ruigrok
dbcd6912d0 Don't inform Coin to use EGL for Coin 4.0.6+
Coin figures it out automatically starting from 4.0.6. Only for Coin 4.0.4 and 4.0.5 it is needed to explicitly tell Coin to use EGL.
2025-09-28 18:57:18 -05:00
marioalexis
de4bf34093 Fem: Add tensor components to calculator variables 2025-09-28 18:55:48 -05:00
marcuspollio
25434474a0 Draft: update Group icons (#23771)
* Draft: update Group icons

* Draft: update Group icons after feedback
2025-09-28 15:10:00 +02:00
Chris Hennes
43fd9e2b55 GUI: Fix some translatable text (#24289) 2025-09-28 10:47:16 +02:00
tetektoza
ec7bb3ddae Part: Allow deleting children recursively
Add feature to allow deletion of all children of compounds and booleans.
2025-09-27 19:10:42 -05:00
tetektoza
bd3c1647d6 Core: Allow deleting objects in group recursively
Add a special marker that will signal to VPs that they should delete
their children recursively under the group.
2025-09-27 19:09:55 -05:00
Kacper Donat
82dc9ae692 PartDesign: Fix crash on editing feature outside of body 2025-09-27 15:21:59 -05:00
Ladislav Michl
78349baec0 PartDesign: Microoptimize updateSpacings()
This also fixes "comparison of integer expressions of different
signedness: ‘int’ and ‘size_t’" warning.

Fixes: 5d2037c820 ("PartDesign: Transform rework")
2025-09-27 11:40:07 -05:00
Syres916
ac0a60f7a6 [Part] Fix Part Boolean operations Refine incorrectly set for new users (#24256)
* [Part] Fix Part Boolean operations Refine incorrectly set for new users

* [Part] update tests to specify Refine to be...

...false where necessary
2025-09-27 00:33:57 -05:00
luzpaz
e2da81bf4a Docs: update stylesheet doc (fixes #22717) (#23056)
* Docs: update stylesheet doc (fixes #22717)
Fixes #22717

* Refined instructions to be more OS agnostic

* Update src/Gui/Stylesheets/FreeCAD.qss

---------

Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>
Co-authored-by: Beep6581 <Beep6581@noreply.users.github.com>
2025-09-27 02:52:13 +00:00
Tiago-Almeida007
65892708d9 Gui: Organize tree view preferences (#21867)
* feat #18649: Organize tree options in one single preference page
-Removed tree view related code from all DlgSettingsAdvanced files
-Added Font size and Item Background Padding to DlgSettingsUI

Co-authored-by: Tiago Cardoso <tiagomiguelcardoso@tecnico.ulisboa.pt>

* fix #18649: Organize tree options in one single preference page
-Added new line at the end of file DlgSettingsAdvanced.cpp
-Added new line at the end of file DlgSettingsAdvanced.py
-Added new line at the end of file DlgSettingsUI.ui
-Delete trailing space on file DlgSettingsAdvanced.py
-Delete extra line on file DlgSettingsAdvanced.h

Co-authored-by: Tiago Almeida <tiago.c.almeida@tecnico.ulisboa.pt>

* Gui: Remove over-advanced UI prefs

---------

Co-authored-by: Tiago Cardoso <tiagomiguelcardoso@tecnico.ulisboa.pt>
Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>
2025-09-27 02:33:04 +00:00
wandererfan
17b4b4a24b [TD]fix uncommanded leader position change 2025-09-26 21:24:49 -05:00
Chris Hennes
3a91404f98 Merge pull request #21541 from furgo16/bim-refactor-arch-iter-2
BIM: Arch module refactor, Arch.makeWindow documentation and tests - iteration 2
2025-09-26 19:58:49 -05:00
Roy-043
b0cf38efb8 BIM: fix linked document of BIM_Library task panel (#24169)
* BIM: fix linked document of BIM_Library task panel

Fixes #22437.

The task panel of the BIM_Library command would be linked to the active document, which would to be the temporary Viewer document if that option was checked. Closing that document in the `Insert` function would therefore also close the task panel resulting in errors for following code.

Additionally:
The code to close the temporary Viewer document was moved to the `Reject` function. Otherwise that document would stay open if the task panel was closed without inserting.
2025-09-27 00:54:31 +00:00
marioalexis
1c1a989a63 PartDesign: Use AllowCompound user parameter along the workbench - fixes #23596 2025-09-26 19:50:21 -05:00
tetektoza
a6f2d5db96 Gui: Fix clarify selection menu HiDPI positioning issues
On HiDPI screens, the Clarify Selection context menu appears
far to the right of the intended position when triggered via
right-click, which was making it really problematic to select entities.

So the easiest solution is to apply `devicePixeLRatio` scaling when
converting the stored right-click postiion from device pixels to Qt
logical coordinates before calling `mapToGlobal()`.
2025-09-26 19:19:04 -05:00
Kacper Donat
203b944f17 Gui: Render profile preview in proper coordinate space 2025-09-26 17:00:53 -05:00
wmayer
02e09e7586 PD: Restore GUI commands for PartDesign datum objects
With PR 19114 the commands to create PD datum objects are replaced with
the counterparts of Part. However, PD datum objects are much more powerful
than the Part datum objects.
(see e.g. https://forum.freecad.org/viewtopic.php?p=806960)

So, this change brings these commands back to the task panel.
2025-09-26 23:46:27 +02:00
wmayer
61e7517592 PD: Show commands in task panel when selecting (sub) shape binders
This fixes issue 19098
2025-09-26 23:46:27 +02:00
wmayer
244020c3b7 PD: Improve groove feature
The only difference between groove and revolution is that for the former
the revolved face is removed from the base shape instead of added.

Thus, the code of the Revolution and Groove classes should be almost
identical. This allows it in a further step to refactor the code and
make a common base class.

This fixes issue 18842.
2025-09-26 23:46:25 +02:00
wmayer
0421af3e1f PD: Improve revolution feature
* Allow a minimum angle of 0.0 as this is needed in 'Two Angles' mode
* Set the default value of Angle2 to 0.0
* Check for valid input in 'Angle' and 'Two Angles' mode
* Replace the confusing enum labels 'Dimension' and 'TwoDimensions'
2025-09-26 23:45:53 +02:00
wmayer
b3eb32258c PD: Remove unneeded class member 'isApplying' from 'TaskHoleParameters' 2025-09-26 23:45:23 +02:00
wmayer
f7e22f339c PD: Support of plane in linear pattern feature 2025-09-26 23:45:23 +02:00
wmayer
bea83ab5ec PD: Fix support of datum lines in draft 2025-09-26 23:45:23 +02:00