Commit Graph

41920 Commits

Author SHA1 Message Date
Zbyněk Winkler
1fa05fed83 typing_extensions package was missing 's' 2025-06-02 13:12:40 +02:00
Alfredo Monclus
cfb31e6850 Gui: Property editor combobox fix not popping up if the user canceled (#21688)
* Gui: Property editor combobox fix not popping up if the user canceled the popup and then try to open it again

fixes #21675

* Update src/Gui/propertyeditor/PropertyItemDelegate.cpp

---------

Co-authored-by: Kacper Donat <kadet1090@gmail.com>
2025-06-02 10:40:08 +00:00
matthiasdanner
187f1b647f Sketcher: Fix Arrow Direction of Angle Arrows (#21645)
* Fix Arrow Direction of Angle Arrows

* Fix huge Space of angle box in negative angles

* Swap the direction vectors for the arrows
2025-06-02 12:22:24 +02:00
mosfet80
96c0acb825 FEM: clean code (#21526)
* FEM: clean code

clean code

* [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-06-02 12:13:35 +02:00
Matthias Danner
46d626f368 fix use of viewScalingFactor 2025-06-02 12:05:55 +02:00
George Peden
b0e901bab6 Sketcher: Implement hints for for all drawing tools and modes (consolidates previous PRs into a single PR) (#21632)
* Implement hints for arc

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

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

* Change hint text to lower case per comments and style guide

* Sketcher: Add input hint to Point tool

Adds a structured input hint ("🖱 pick point location") to the Point tool
using Gui::InputHint. Hint appears immediately upon tool activation
and uses the new `%1` icon injection pattern with MouseLeft.

* Sketcher: Add structured input hints for Polyline (LineSet) tool

- Adds context-sensitive input hints to the Polyline (LineSet) tool using Gui::InputHint.
- Shows "pick first point" and "pick next point" with MouseLeft, and "right-click to finish" with MouseRight, updating as the tool state changes.
- Hints appear in the status area to guide users through polyline creation.

* Cleanup 'using' and short form of syntax per PR comment

* Cleanup 'using' and short form of syntax per PR comment

* Add Escape Key to cancel hints

* Add MouseRight to cancel hint

* MouseRight and Escape Key hints for all states

* Sketcher: Add context-sensitive input hints to Line tool

- Implements updateHints() for DrawSketchHandlerLine to show "pick first point" and "pick second point" actions with appropriate mouse icons.
- Hints update dynamically based on tool state for improved user guidance.

* Sketcher: Add context-sensitive input hints to Circle tool

- Implements updateHints() for DrawSketchHandlerCircle to show appropriate hints for center and 3-rim construction methods.
- Hints update dynamically based on tool state to guide user actions.

* Remove cancel hints per PR/Discord feedback discussion

* Sketcher: Refine Arc tool input hints for construction method

- updateHints() now explicitly distinguishes between Center and ThreeRim construction methods.
- Shows accurate context-sensitive hints for both arc creation modes.
- Removes generic else for future-proofing and clarity.

* Remove cancel hints per Discord discussion

* Refactor to use using and short form of class names per PR feedback

* Sketcher: Refactor Polygon tool to use new input hints mechanism

- Replaces legacy getToolHints() with updateHints() following the modern pattern by @kadet
- Ensures consistent, context-sensitive hints for Polygon tool, matching Arc, Line, and Circle tools
- Removes cancel hints per maintainer feedback

* Sketcher: Refactor Circle tool to use new input hints mechanism

- Implements updateHints() for DrawSketchHandlerCircle
- Provides context-sensitive hints for both center and 3-rim construction methods
- Ensures consistency with Arc, Line, and Polygon tools

* Sketcher: Update Rectangle tool to use new input hints mechanism

- Implements updateHints() for DrawSketchHandlerRectangle
- Provides context-sensitive hints for all supported rectangle construction methods
- Ensures consistency with Arc, Line, Circle, and Polygon tools

Note: All rectangle construction modes are supported and can be cycled after tool activation, even if not all are directly shown in the UI.

* Sketcher: Refactor Slot tool to use new input hints mechanism

- Implements updateHints() for DrawSketchHandlerSlot
- Provides context-sensitive hints for all slot drawing steps
- Ensures consistency with other Sketcher tools

* Sketcher: Refactor Arc Slot tool to use new input hints mechanism

- Implements updateHints() for DrawSketchHandlerArcSlot
- Provides context-sensitive hints for both ArcSlot and RectangleSlot construction methods
- Ensures consistency with other Sketcher tools

* Sketcher: Refactor B-spline tool to use new input hints mechanism

- Implements updateHints() for DrawSketchHandlerBSpline
- Provides context-sensitive hints for all B-spline drawing steps
- Ensures consistency with other Sketcher tools

* Sketcher: Refactor Arc of Parabola tool to use new input hints mechanism

- Implements updateHints() for DrawSketchHandlerArcOfParabola
- Provides context-sensitive hints for each step of arc of parabola creation
- Ensures consistency with other Sketcher tools

* Sketcher: Refactor Arc of Ellipse tool to use new input hints mechanism

- Implements updateHints() for DrawSketchHandlerArcOfEllipse
- Provides context-sensitive hints for each step of arc of ellipse creation
- Ensures consistency with other Sketcher tools

* Sketcher: Add input hints to Arc of Hyperbola tool

- Implements updateHints() for DrawSketchHandlerArcOfHyperbola
- Provides context-sensitive hints for each step of arc of hyperbola creation
- Ensures consistency with other Sketcher tools
- Note: This only adds hints to the existing tool code; no refactor to controller/state machine pattern

* Sketcher: Add M key hint to polyline tool

- Adds a hint for the M key ("change mode") in the polyline (lineset) tool when drawing subsequent segments.
- Improves discoverability of cycling segment/transition modes while drawing.

* Merge branch 'sketcher-hints-circle' into sketcher-hints-all-drawing-tools

* Restore updateHints() for Circle from sketcher-hints-circle branch

* Refactor Sketcher tools to use getToolHints() for input hints (most tools updated, a few pending fine-tuning)

* Sketcher: Ensure input hints update after every state change in LineSet tool

- Explicitly call updateHint() after all Mode/state transitions in DrawSketchHandlerLineSet.
- Fixes missing or stale input hints when using the polyline/lineset tool with custom state machine.
- Brings hint update behavior in line with other Sketcher drawing tools.

* Sketcher: Refactor Slot tool to use new input hints mechanism

* Call updateHint() after setting mode

* Sketcher: Add getToolHints() override to Rectangle handler for unified input hints

- Revert inccorect previous inadvertent deletions (reverted to main)
- Implements getToolHints() in DrawSketchHandlerRectangle to provide context-sensitive input hints.
- Brings Rectangle tool in line with other Sketcher handlers using the standard input hint system.
- No changes to controller or parameter adaptation logic.

* Sketcher: Remove redundant 'click' from Point tool hint text

- Change '%1 click to place a point' to '%1 place a point'
- Mouse cursor already indicates clicking is needed
- Makes hint text more concise and focused on the action

* - Change remove implied 'click to finish" to just 'finish'
- Mouse cursor already indicates clicking is needed
- Makes hint text more concise and focused on the action"

* Refactor all handlers to modern compact enum pattern per PR feedback

- Use 'using enum Gui::InputHint::UserInput;' for cleaner enum usage
- Direct return statements instead of intermediate variables
- QObject::tr() for concise translation calls
- Consistent modern pattern across all handlers
- Improved readability and maintainability
- Also implmemented getToolHints() in ArcSlot.

* Add M key hint functionality to tools with multiple construction methods:

- Circle: Center ↔ 3-point modes
- Arc: Center ↔ 3-point modes
- Rectangle: Diagonal → Center → 3-corner → Center+2-corner modes
- Line: Point+length+angle → Point+width+height → 2-point modes
- B-Spline: Control points ↔ Knots modes (+ construction-method-aware hints)

Features:
- Add 'M switch mode' hints to make mode switching discoverable
- Add doConstructionMethodChanged() template specializations to update hints
- Use generic 'switch mode' text for initial implementation (vs specific mode names)
- Maintain consistent hint patterns across all tools
- Preserve existing functionality while adding discoverability

Users can now press M to cycle through construction methods in any multi-mode
drawing tool and see the mode switching option in the hints panel.

This first implementation uses generic 'switch mode' hint to avoid the complexity of tracking mode cycles with drop downs, etc. This would be where integrating hints into the underlying state machine might help

* Per PR review feedback, replace repeated inline 'switch mode' hint definitions with const variables:
- Define 'const InputHint switchModeHint' once per tool function
- Use variable reference in all hint lists instead of inline creation
- Reduces code duplication from 30+ repetitions to 5 clean definitions

Affected tools: Circle, Arc, Rectangle, Line, B-Spline

Improves maintainability - hint text changes only need updates in one
location per tool. Follows DRY principle and reviewer feedback.

No functional changes - same hints displayed to users.

* Per PR feedback, remove repetitive 'arc slot' prefix from hint messages:
- 'pick arc slot center' → 'pick slot center'
- 'pick arc slot radius' → 'pick slot radius'
- 'pick arc slot angle' → 'pick slot angle'
- 'pick arc slot width' → 'pick slot width'

Context is already clear from the active tool. Follows reviewer
feedback to make hints more concise and less verbose.

Improves readability while maintaining clarity

* per PR feedback, Change 'change mode' to 'switch mode' to match all other drawing tools.

* remove hanging Claude

* per PR review, restore accidentally deleted Rectangle adaptParameters method

Add back DSHRectangleController::adaptParameters template specialization
that was accidentally removed during manual file reconstruction.

This method handles parameter updates during Rectangle tool interaction,
including checkbox synchronization for M key mode switching and proper
state management when transitioning between construction methods.

Without this method, mode switching leaves the tool in an inconsistent
state with misaligned parameters and out-of-sync checkboxes.

Addresses reviewer feedback - this functionality should not be removed.

* Clean up placeholder comment per PR review feedback

* Refactor Arc hints to declarative data-driven architecture

Inspired by early feedback regarding separation of code and data, this
refactors the Arc tool hints from functional logic to a pure declarative
table-driven system.

Key improvements:
- Pure data-driven hint lookup via static table
- Complete separation of hint data from control logic
- Elimination of nested if/switch complexity
- Establishes reusable pattern for other drawing tools
- Maintains identical functionality with a cleaner architecture

This creates a scalable template that other sketcher tools and workbenches can adopt,
demonstrating proper usage of the InputHint framework through
declarative configuration rather than imperative code."

* Convert Point tool to declarative hint system

Apply the proven declarative pattern to Point tool:
- Replace functional getToolHints() with table lookup
- Single state tool demonstrates pattern scalability
- Maintains identical functionality with cleaner architecture

* Convert Line tool to declarative hint system

Apply declarative pattern to Line tool with 3 construction methods:
- OnePointLengthAngle, OnePointWidthHeight, TwoPoints
- All method/state combinations properly handled
- Maintains identical functionality with cleaner architecture

* Refine Arc tool declarative hints - address maintainer feedback

- Use camelCase naming convention (switchModeHint, getArcHintTable)
- Move tr() calls to runtime to fix translation caching issues
- Preserve declarative table structure with runtime generation
- Add structure comments for maintainability
- Maintains identical functionality with cleaner implementation

* Refine Point tool declarative hints - address feedback

- Use camelCase naming (getPointHintTable)
- Move tr() calls to runtime to fix translation issues
- Preserve simple declarative structure
- Point tool has no construction methods, keeps single-state simplicity

* Refine Line tool declarative hints - address feedback

- Use camelCase naming (switchModeHint, getLineHintTable)
- Move tr() calls to runtime to fix translation issues
- Preserve declarative table structure with 3 construction methods
- Maintains all functionality for OnePointLengthAngle, OnePointWidthHeight, TwoPoints modes

* Convert Arc of Ellipse to declarative hint system

- Replace functional switch statement with declarative table approach
- Use camelCase naming and runtime tr() calls
- Maintains 4-state workflow: center, axis, start, end points
- Consistent with refined declarative pattern used in Arc/Point/Line tools

* Convert Circle to declarative hint system

- Replace nested if/switch statements with declarative table approach
- Use camelCase naming and runtime tr() calls
- Support both Center and ThreeRim construction methods
- Maintains all state transitions: center/rim points
- Consistent with refined declarative pattern

* Convert Polygon to declarative hint system

- Replace switch statement with declarative table approach
- Use camelCase naming and runtime tr() calls
- Simple 2-state tool: center selection and rotation/size
- Preserves polygon-specific hints (U/J keys for side count)
- Consistent with refined declarative pattern

* Convert Slot to declarative hint system

- Replace switch statement with declarative table approach
- Use camelCase naming and runtime tr() calls
- Simple 3-state tool: start point, end point, radius
- Consistent with refined declarative pattern

* Convert Arc Slot to declarative hint system

- Replace switch statement with declarative table approach
- Use camelCase naming and runtime tr() calls
- 4-state tool: center, radius, angle, width
- Consistent with refined declarative pattern

* Convert Arc of Hyperbola to declarative hint system

- Replace switch statement with declarative table approach
- Use camelCase naming and runtime tr() calls
- 4-state tool: center, axis, start point, end point
- Consistent with refined declarative pattern

* Convert Parabola to declarative hint system

- Replace switch statement with declarative table approach
- Use camelCase naming and runtime tr() calls
- 4-state tool: focus point, axis, starting point, end point
- Consistent with refined declarative pattern

* Convert B-spline to declarative hint system

- Replace nested if/switch statements with declarative table approach
- Use camelCase naming and runtime tr() calls
- Support both ControlPoints and Knots construction methods
- Preserves special finish functionality (MouseRight)
- Consistent with refined declarative pattern

* Convert Ellipse to declarative hint system

- Replace nested if/switch statements with declarative table approach
- Use camelCase naming and runtime tr() calls
- Support both Center and ThreeRim construction methods
- 3-state workflow for each method
- Consistent with refined declarative pattern

* Convert LineSet to declarative hint system

- Replace switch statement with declarative table approach
- Use camelCase naming and runtime tr() calls
- 2-mode tool: first point, then multi-point with finish/switch
- Preserves finish and mode switching functionality
- Consistent with refined declarative pattern

* Convert Rectangle to declarative hint system

- Replace nested switch statements with declarative table approach
- Use camelCase naming and runtime tr() calls
- Support all 4 construction methods: Diagonal, CenterAndCorner, ThreePoints, CenterAnd3Points
- Each method has 4-state workflow with switch mode functionality
- Consistent with refined declarative pattern

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-06-02 12:00:50 +02:00
Roy-043
3fc219a824 BIM: Terrain should not also be in Group of Site
Addresses one of the issues mentioned in #21667.

* If the Terrain is dropped on the Site it is added to the Group (as before) but the Terrain property is then also set to None.
* If one of the objects in Group is selected as the Terrain it is removed from the Group.
2025-06-02 11:45:34 +02:00
Jacob Oursland
09fbb6162b CI: add typing_extensions to runtime dependency for weekly build. 2025-06-01 15:38:32 -04:00
sliptonic
e777e2e8ae Merge pull request #21635 from tarman3/contextmenu
CAM: Dressup context submenu
2025-06-01 12:50:14 -05:00
sliptonic
36b3f8ffcb Merge pull request #21684 from chennes/libareaFixEncoding
CAM(libarea): Fix encoding of clipper.cpp
2025-06-01 12:48:22 -05:00
luzpaz
09f91baa2b BIM: fix typo in Arch.py (#21696) 2025-06-01 18:36:10 +02:00
Roy-043
49a9382812 Draft: DraftGui.py correct handling of last point (#21698)
This PR fixes a V1.1 regression.
The default for the last point should be the origin of the working plane if Global mode is off.

Forum topic:
https://forum.freecad.org/viewtopic.php?t=97452
2025-06-01 18:33:18 +02:00
Roy-043
b3f7639016 Draft: Tweak working plane code (#21672)
* The new align_to_face_and_edge functions would align the Y axis to the edge. This should be the X axis.
* The align_to_point_and_axis functions did not accept a zero length upvec.
* Added a return value to the _next function for compatibilty with its counterpart the _previous function.
2025-06-01 09:13:19 +02:00
Chris Hennes
e418014f55 CAM(libarea): Fix encoding of clipper.cpp
This file was encoded in ISO-8859-1, but contained characters that were illegal
in that encoding (superscripts). Convert to UTF-8.
2025-05-31 17:48:38 -05:00
tarman3
239a05b242 command to open folder with macros 2025-05-30 20:02:58 +02:00
sliptonic
8644498400 Merge pull request #21303 from tarman3/array
CAM: Added property CycleTime to old Array
2025-05-29 15:43:47 -05:00
Gonzalo Odiard
eb92a4f496 App: Make Label property on Document read only (#21562)
Fixes: #10010
2025-05-29 22:43:34 +02:00
Alfredo Monclus
4e387e3ff3 Gui: property-editor open the combo directly and apply after selection
Previously you had to make 4 clicks to apply a combo
1 to enter edit, 1 to open the combo, 1 to select, and 1 to defocus and apply

with this commit only 2 clicks:
1 to open the combo and 1 to select
2025-05-29 22:41:37 +02:00
Alfredo Monclus
e7882427e7 Gui: property-editor add property copy context menu 2025-05-29 22:40:59 +02:00
theo-vt
13e7952ccc PartDesign: Fix hole centered on point edge case (#21257)
* Light refactor of getTopoShape function

* Fix hole edge case

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

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

* Update src/Mod/Part/App/PartFeature.cpp

Co-authored-by: Kacper Donat <kadet1090@gmail.com>

* Update src/Mod/Part/App/PartFeature.cpp

Co-authored-by: Kacper Donat <kadet1090@gmail.com>

* Update src/Mod/Part/App/PartFeature.cpp

Co-authored-by: Kacper Donat <kadet1090@gmail.com>

* Update src/Mod/Part/App/PartFeature.cpp

Co-authored-by: Kacper Donat <kadet1090@gmail.com>

* Refactor simplifyCompound()

* Use Base::Flags<GetShapeOption>

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

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

* Shorten enum name and move it from class scope to namespace scope

* [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>
Co-authored-by: Kacper Donat <kadet1090@gmail.com>
2025-05-29 22:37:54 +02:00
sliptonic
17e56f6570 Merge pull request #21416 from jffmichi/custom_gcode_allow_empty_lines
CAM: allow empty lines in Custom operation
2025-05-29 09:47:32 -05:00
Alfredo Monclus
cb290a2396 Gui: property-editor fix text not showing due to stylesheets 2025-05-29 15:01:11 +02:00
Alfredo Monclus
0624d67fe0 Start: fix thumbnails not keeping aspect ratio 2025-05-29 15:00:37 +02:00
Benjamin Bræstrup Sayoc
9709fc43de TechDraw: fix incorrect click handles of editable labels (#21131)
Fixes #20964:
- When `text` element doesn't have id
- When `text` element has transform attribute
2025-05-29 08:30:59 -04:00
tarman3
80d815ba31 CAM: Dressup context submenu 2025-05-29 09:23:29 +03:00
pre-commit-ci[bot]
0691a2d863 [pre-commit.ci] pre-commit autoupdate
updates:
- [github.com/pre-commit/mirrors-clang-format: 300fa4c170bf0887bb5585d17ec50901ad2625fb → c8ab0f80399e63a4fabbf5313c0606831f09742e](300fa4c170...c8ab0f8039)
2025-05-29 00:14:40 +02:00
PaddleStroke
859d4f4fa5 TechDraw: Fix DrawViewSpreadsheet being assigned wrong QGI in QGSPage.cpp (#21623) 2025-05-29 00:06:34 +02:00
dependabot[bot]
0a3c940d08 Bump github/issue-metrics from 3.20.0 to 3.20.1
Bumps [github/issue-metrics](https://github.com/github/issue-metrics) from 3.20.0 to 3.20.1.
- [Release notes](https://github.com/github/issue-metrics/releases)
- [Commits](6a0f49b4e1...119b5237f4)

---
updated-dependencies:
- dependency-name: github/issue-metrics
  dependency-version: 3.20.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-28 21:01:12 +02:00
sliptonic
4a0dec7098 Merge pull request #21530 from jffmichi/sort_all_drilling
CAM: sort locations for all drilling operations
2025-05-28 13:55:20 -05:00
sliptonic
32a8887589 Merge pull request #21528 from mosfet80/piDef
CAM: using std::numbers pi definition
2025-05-28 13:53:00 -05:00
tetektoza
8ec6605fc4 BIM: Add support for deactivation active object to BIM Views Tree (#21570)
* BIM: Use checkbox in model tree for Activation/Deactivation of WP

* BIM: Set active object after deactivating current object if it exists

Currently we can get into a scenario where user can activate two working
planes, one after another. For example, Level, and  then Level001. If
they activate both, and then deactivate Level001, working plane switches
back to Level. But, we didn't set the object as the active one, so user
didn't have clear information that they can deactivate it, only the
working plane was switching it.

So this patch sets the object as the active one, if it exists.

* BIM: Add support for deactivation active object to BIM Views Tree

As the title says - it adds the checkbox that's similarly done in Part
workbench, so user can select/deselect the item and if they had previous
active object, it will also fall back to the previous object.

Also, moved out part of the common logic from ArchBuildingPart and
BimViews to utils.

* BIM: Handle correct context on activating WP for NativeIFC/BIM

* BIM: Remove redundant logic from BIM Views upon double click

As all of the logic is being handled now in `activate` function in
BimViews, this logic is redundant

* BIM: Rename button for taskbar and BIM Views from Activate to Active
2025-05-28 11:27:11 +02:00
Yorik van Havre
1f6ecf83b2 Draft: Added snap recenter functionality (#19728)
* Allow to align the working plane on selected edge + face of a same object, which aligns the plane with the face, but positions it on the edge (the WP is positioned on the edge's first vertex, the WP's X axis is aligned with the edge, and the face's center point provides the third point to define the plane)
* Added a "Recenter" in-command shortcut. This moves the WP to be centered on the current snap position (the WorkingPlane snap button is taken into account, so one can only move the WP in the same plane or not).
2025-05-27 19:17:43 +02:00
Benjamin Nauck
6b7e4185e1 Merge pull request #21552 from alfrix/fixup_hole
PD: Fixup hole
2025-05-27 15:00:13 +02:00
Benjamin Nauck
eb51a5d784 Merge pull request #21379 from alfrix/set_style
Gui: Set QStyle to Fusion if not set
2025-05-26 22:13:31 +02:00
Luz Paz
8a5290ae86 Fix various typos
Found via codespell
2025-05-26 21:40:10 +02:00
Jacob Oursland
bc5616dbf6 CI: pin occt==7.8.1 on weekly builds. 2025-05-26 18:31:05 +02:00
Pieter Hijma
d025501755 Spreadsheet: Add tests for rename property 2025-05-26 18:11:27 +02:00
Pieter Hijma
75a9e26473 Core: Add tests for renaming dynamic properties 2025-05-26 18:11:27 +02:00
Pieter Hijma
5bdfba3a1a Core: Update expressions on property rename
This includes both expressions in generic containers and in
spreadsheets.
2025-05-26 18:11:27 +02:00
Pieter Hijma
18d87df6f1 Core: Add a Python interface for property rename 2025-05-26 18:11:27 +02:00
Pieter Hijma
e7f8f2f48c Core: Add logic to rename dynamic properties 2025-05-26 18:11:27 +02:00
chris
dc7ceddc50 fix for #20656 2025-05-26 18:07:12 +02:00
Syres916
ef4c33fee4 [Gui] InputField correct icon visibility logic on opening a pre-completed task panel 2025-05-26 17:54:39 +02:00
Chris Hennes
e4fa55a922 CAM: Ensure float constants are single-precision (#21322)
* CAM: Ensure float constants are single-precision

* Revert suggestion

---------

Co-authored-by: Benjamin Nauck <benjamin@nauck.se>
2025-05-26 17:38:34 +02:00
Syres916
0e40f2dfc5 [App] Use consistent unit schema names (#21355)
* [Start] ensure user's preferred unit schema is retained after restart of application

* [App] use consistent schema names throughout the application

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

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

* [Start] Revert commit 2eea421

in preference to PR #21466

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-05-26 17:33:45 +02:00
Kacper Donat
d5a091bf0c Merge pull request #21571 from alfrix/property_editor_2
Gui: property editor do not enter edit mode if the property is read-only
2025-05-26 17:20:06 +02:00
WandererFan
4dd2313425 [TD] fix small angle dims (fix #21114) (#21208)
* [TD]fix handling of very small angle dimensions

- also remove test for too small format specifier

* [TD]lint messages

* [TD]apply review comments.
2025-05-26 17:19:19 +02:00
PaddleStroke
82696359f6 TechDraw: richannotation : Fix white text issue (#21515)
* TechDraw: richannotation : Fix white text issue

* Update QGIRichAnno.cpp
2025-05-26 17:18:21 +02:00
Benjamin Bræstrup Sayoc
ade3922a31 TechDraw: fix state handling of dimensions
- Positioning was calculated using `boundingRect` while `transformOriginPoint` was set according to `tightBoundingRect`, causing mismatch when `QGIDatumLabel` contains more than text (eg. shapes around text). Now `transformOriginPoint` and positioning calculated according to `tightBoundingRect`, and setting `transformOriginPoint` of `QGIDatumLabel` are handled by itself. This fixes an issue where the gap between dimension lines and text varied depending on dimension's angle.
- `m_lineWidth` was set in multiple locations, causing confusion and bug introduction
- If `X` or `Y` property changed, the remaining changed properties were not handled due to using `if else` rather than `if` for property change checking. This became an issue due the above mentioned simplification of `m_lineWidth` setting: if `X` or `Y` had changed (upon document restore).
- Center position was uneededly saved in variables `posX` and `posY` when it could be calculated on demand using `tightBoundingRect`. Removing this uneeded state simplfies code and lowers the risk of bug introduction due to lack of updating state.
2025-05-26 17:18:04 +02:00
Alfredo Monclus
1bb05bf987 Gui: property-editor make readonly cells look disabled 2025-05-26 07:13:44 -06:00