Commit Graph

193 Commits

Author SHA1 Message Date
Benjamin Nauck
738bc95fa2 TechDraw: Add #include <limits> where used 2025-03-31 23:53:03 +02:00
Benjamin Nauck
cf94011294 Techdraw: Use std::numeric_limits and std::numbers instead of defines 2025-03-29 13:32:39 +01:00
Chris Hennes
d41114589c Merge pull request #19411 from benj5378/enums2
TechDraw: hard type enums, part 2
2025-03-03 10:37:21 -06:00
Chris Hennes
1a2070c36f Merge pull request #19636 from kadet1090/color-in-base
Base: Move App::Color to Base
2025-03-02 16:36:40 -06:00
Benjamin Bræstrup Sayoc
351feb132a Remove magic number and hard type enums in ArrowPropEnum.h
- Remove currently present magic numbers
- Hard type enums, so magic numbers can no longer be introduced. We don't want people to introduce magic numbers.
2025-03-02 17:14:24 +01:00
Benjamin Bræstrup Sayoc
aae45a2b8a TechDraw: extract QGIDatumLabel 2025-02-25 14:25:31 +00:00
Benjamin Bræstrup Sayoc
9941b59e98 TechDraw: hard type enums, part 3 (#19418)
* Remove magic number and hard type enums in LineNameEnum.h

- Remove currently present magic numbers
- Hard type enums, so magic numbers can no longer be introduced. We don't want people to introduce magic numbers.

* Remove magic number and hard type enums in QGIFace.h

- Remove currently present magic numbers
- Hard type enums, so magic numbers can no longer be introduced. We don't want people to introduce magic numbers.

* Remove magic number and hard type enums in Enums.h

- Remove currently present magic numbers
- Hard type enums, so magic numbers can no longer be introduced. We don't want people to introduce magic numbers.

* Remove magic number and hard type enums in QGVPage.h

- Remove currently present magic numbers
- Hard type enums, so magic numbers can no longer be introduced. We don't want people to introduce magic numbers.

* Remove magic number and hard type enums in TaskSurfaceFinishSymbols.h

- Remove currently present magic numbers
- Hard type enums, so magic numbers can no longer be introduced. We don't want people to introduce magic numbers.

* Remove magic number and hard type enums in QGTracker.h

- Remove currently present magic numbers
- Hard type enums, so magic numbers can no longer be introduced. We don't want people to introduce magic numbers.
2025-02-24 11:58:05 -05:00
WandererFan
abb57f10b6 Update src/Mod/TechDraw/Gui/QGIViewDimension.cpp
Co-authored-by: Benjamin Bræstrup Sayoc <benj5378@outlook.com>
2025-02-23 09:14:23 -05:00
WandererFan
022dde80f1 Update src/Mod/TechDraw/Gui/QGIViewDimension.cpp
Co-authored-by: Benjamin Bræstrup Sayoc <benj5378@outlook.com>
2025-02-23 09:14:23 -05:00
WandererFan
d928750026 Update src/Mod/TechDraw/Gui/QGIViewDimension.cpp
Co-authored-by: Benjamin Bræstrup Sayoc <benj5378@outlook.com>
2025-02-23 09:14:23 -05:00
wandererfan
812976f9df [TD]lint removal 2025-02-23 09:14:23 -05:00
wandererfan
b084d7fadb {TD]Set Arrow end property at Dimension level. 2025-02-23 09:14:23 -05:00
Kacper Donat
13fbab9e42 Base: Move App::Color to Base
Every basic data type is stored in Base module, color is standing out as
one that does not. Moving it to Base opens possibilities to integrate it
better with the rest of FreeCAD.
2025-02-17 21:10:26 +01:00
Benjamin Bræstrup Sayoc
c53679422b Remove magic numbers and hard type enums in DimensionFormatter.h.h
- Remove currently present magic numbers
- Hard type enums, so magic numbers can no longer be introduced. We don't want people to introduce magic numbers.
2025-02-17 12:16:49 -05:00
Benjamin Bræstrup Sayoc
9a8bdbaf9f TechDraw: Use QStringLiteral 2025-02-10 18:32:44 +01:00
Chris Hennes
143edf737a Merge pull request #19232 from WandererFan/miscSmallFixes
[TD]minor fixes x3
2025-02-03 17:54:20 +01:00
Benjamin Guest
4f56102978 TechDraw: Fix dimension alignment issue.
Fixes issue #19121 "dimension numbers placed lower than normal".

Problem:

QGCustomText has a new method `alignmentRect` which can optionally return a
`tightBoundingRect` instead of the regular `boundingRect`. The
`alignmentRect` is used for laying out the `QGIDatumLabel`, however
QGraphicsItemGroup's `childrenBoundingRect` use the childrens'
`boundingRect` and knows nothing of `alignmentRect`. The result is an
improperly sized label and frame and miss alignment. Additionally
`childrenBoundingRect` calculations includes hidden views, so even though
the `m_tolTextOver` and `m_tolTextUnder` are hidden they still affect
the bounding rect size.

Solution:

1. Implement new method `QGIDatumLabel::tightBoundingRect` this
   calculates the bounding rect using the subview's
   `aligmentRect` if there is text in the custom text.
2. Use `tightBoundingRect` in place of `boundingRect` to for the drawing of
   arrows and the exact dim frames.
3. This PR acknowledges that there are some edge case fonts that while not
   clipped may not interface perfectly with arrows and the exact dimension
   frame.
4. Fix vertical alignment of `m_tolTextOver` / `m_tolTextUnder`
5. Incorporate PR Review comments
2025-01-27 20:39:41 +01:00
wandererfan
2bc9f2ea1f [TD]allow showing units on individual dimensions 2025-01-24 13:04:00 -05:00
WandererFan
dc25d51e80 [TD]Dimension font clipping (fix #11452) (#18771)
* [TD]separate alignment and rendering bounding rectangles

* [TD]use alignment rectangle (fix #11452)
2025-01-13 11:13:59 -06:00
Ladislav Michl
1e529bcc7d TechDraw: Ensure tolerance font size is > 0 2024-12-16 12:23:51 -05:00
luzpaz
a633be7342 Fix various typos
Found via codespell.
2024-11-15 20:18:46 +01:00
wandererfan
17e9f10ca7 [TD]throttle over aggressive dimension autocorrect 2024-10-14 17:45:53 +02:00
Benjamin Bræstrup Sayoc
66539741ac [TechDraw] Some refactoring of frame pen 2024-09-02 16:53:37 -04:00
Benjamin Bræstrup Sayoc
61a681de19 [TechDraw] Fix incorrect centering of dimension label
and improve rendering of frame
Fixes #15103
2024-09-02 16:53:37 -04:00
PaddleStroke
3375bbfb8e TechDraw: Snap: disable snap if ALT is pressed. 2024-06-25 09:16:51 -05:00
wmayer
127f935711 Fix several compiler warnings
* -Wmaybe-uninitialized
* -Wunused-parameter
* -Wunused-variable
* -Wnonnull
* -Wstringop-truncation
* -Wstringop-overflow
2024-06-19 21:14:23 -05:00
PaddleStroke
c335ecb5ae TechDraw: Snapping: Fix bug where distanceX dimensions would wrongly compare to all dimensions. 2024-06-03 11:58:58 -04:00
PaddleStroke
cc4dd7ca64 TechDraw: Dimension Snapping : Enable different types of dimensions to snap together. 2024-06-03 11:58:58 -04:00
PaddleStroke
fcf973170b TechDraw: Dimension: fix centering snapping. 2024-06-03 11:58:58 -04:00
wmayer
3e23bd759b Mod: Fix several compiler warnings 2024-05-30 08:55:11 +02:00
PaddleStroke
f523f6c3ad TechDraw: Introduce dimension snapping 2024-05-27 11:44:31 -04:00
PaddleStroke
80fb3a492c TechDraw: Dimension: Allow snapping label to its center position. 2024-05-27 11:44:31 -04:00
PaddleStroke
cc393632e1 Techdraw: Smart Dimension: Fixes and simplifies code 2024-05-13 15:03:37 +02:00
PaddleStroke
41650a78d4 TechDraw: Implement 'Area' dimension. 2024-05-06 18:42:28 +02:00
wmayer
48ff9ad3a1 [TD]Refactor LTNP correction code for Dimensions
- additional geometry types

- add method to handle line like bsplines

- handle deleted ref body feature

- add test for empty savedGeometry

- add switch for matcher/LTNP on/off
2024-03-17 08:56:34 -04:00
wandererfan
c94a419eac [TD]fix over/under tolerance
- left justify tolerances
- use format spec for tolerance == zero
- prevent uncommanded tolerance format changes
- use 'w' format for HoleShaftFit
- allow zero tolerance values for HoleShaftFit
2024-03-14 21:45:16 -04:00
Tomas Pavlicek
1cf7861b51 [TechDraw] Implement proper selection of subitems (#11804) 2023-12-22 08:25:58 -05:00
wandererfan
b8bea76481 [TD]spelling in comments 2023-11-26 16:42:06 -05:00
wandererfan
9d3d7aba22 [TD]fix dimension location 2023-11-25 08:05:50 -05:00
Florian Foinant-Willig
2d27b84686 TechDraw: fix extension lines of projected dimension 2023-10-02 13:53:01 -04:00
wandererfan
9a6f12d9c6 [TD]fix selection highlighting from tree 2023-09-03 10:09:42 -04:00
wandererfan
9ad7a0ea72 [TD]use vp Property for arrow size 2023-06-07 12:38:26 -04:00
luzpaz
4e2124e1d3 Fix misc. linting and typos
Trim whitespace; move imports to separate lines, fix typos
2023-04-25 17:14:39 +02:00
Benjamin Bræstrup Sayoc
ddff39dbac [TechDraw] Add customizability for dimension line spacing 2023-04-15 10:20:38 -04:00
Benjamin Bræstrup Sayoc
a93060c6b9 [TechDraw] Simplify return logic
Normal warmup
2023-04-11 13:49:57 -04:00
Benjamin Bræstrup Sayoc
3794897699 [TechDraw] Simplify return logic 2023-04-10 23:34:05 -04:00
Benjamin Bræstrup Sayoc
5d05acc87e [TechDraw] Simplify retrievement of user preferences
for all TechDraw files
2023-04-10 23:34:05 -04:00
wandererfan
8a11528a7e [TD]corrupt dim reference detect and correct 2023-03-22 20:09:35 -04:00
wmayer
25beef481c TD: move to new style connect() 2023-02-01 01:33:34 +01:00
wandererfan
437457e996 [TD]remove obsolete log messages 2023-01-13 12:15:33 -05:00