Commit Graph

1754 Commits

Author SHA1 Message Date
Abdullah Tahiri
d586ea6238 Sketcher/Part: Grid - Architecture
==================================

- Move all grid specific code out of ViewProviderSketch and EditModeCoinManager.
- The code in made into a new extension in Part - ViewProviderGridExtension
- ViewProviderSketch starts deriving from this new extension
- ViewProviderSketch configures the extension according to its Grid preferences
- Grid code refactored to remove hardcoded sketcher preference parameters.
- ViewProviderGridExtension handles property name/type changes within its competence.
2023-02-25 23:13:55 +01:00
Abdullah Tahiri
3381d91b82 Sketcher: Add QtAll to PCH 2023-02-25 23:13:55 +01:00
Abdullah Tahiri
f1428994b7 Sketcher: Grid settings - disable spacing when auto mode selected and vice versa 2023-02-25 23:13:55 +01:00
Abdullah Tahiri
ea3277e5ea Sketcher: Resources - remove unnecessary resources 2023-02-25 23:13:55 +01:00
Abdullah Tahiri
1a6ed6cd76 Sketcher: command - review code improvements 2023-02-25 23:13:55 +01:00
Abdullah Tahiri
52a92e1915 Sketcher: Grid Command - Correct dependencies 2023-02-25 23:13:55 +01:00
Abdullah Tahiri
5a0e7d4ee3 Sketcher: Rewrite grid command
==============================

Fix unresolved issues:
https://github.com/FreeCAD/FreeCAD/pull/7754/files#r1025493443
https://github.com/FreeCAD/FreeCAD/pull/7754/files#r1019077589
https://github.com/FreeCAD/FreeCAD/pull/7754/files#r1025502204

Summary:
- EventFilter unnecessary in light of new implemented signal aboutToshow. The data of the drop-down action is updated only when necessary (when it is going to be shown).
- Structure of individual commands under drop-down simplified to a single action, rendering the need for groupcommands obsolete, while keeping all the grid related controls and
the logic for controlling the grid in a single action class.
- Reduce the complexity and overload of isActive to the bare minimum (determining if it is active and updating the icon to the right icon if so).

Refactor:
- Better name for utils functions, as when a DSH is active, the edit mode VPSketch is a data member of DSH, sketchgui (so this function is not really necessary when the DSH is active).
2023-02-25 23:13:55 +01:00
Abdullah Tahiri
816fa3fe3e Sketcher: Refactor miscelaneous command isActive() 2023-02-25 23:13:55 +01:00
Paddle
78333e7eab Sketcher: Grid coin manager: fix includes 2023-02-25 23:13:55 +01:00
Paddle
2cba01586a Sketcher: Grid rework. Include:
- Adding 'auto spacing' option.
    - Drawing grid dynamically on viewer area only.
    - Moving code to coinManager.
    - Adding a 'grid tool' to sketcher-edit-mode toolbar.
2023-02-25 23:13:55 +01:00
Paddle
7f18faae7d Sketcher: Remove grid settings from Edit Control widget. 2023-02-25 23:13:55 +01:00
0penBrain
dfe4c35600 [BugFix] Sketcher: correctly handles angle strings displayed at cursor for all locales, fixes #8611 2023-02-24 10:05:57 +01:00
Abdullah Tahiri
e566daa1af Sketcher: Correct font sizes and updates
========================================

Fonts:
- SoDatumLabel internally uses QFont and thus points. It was being fed pixels, for which the configured size in preferences did not match the actual on screen size. This is corrected.
- Font sizes fed directly from parameters to the coin nodes skeleton were not being updated, as the parameter observer is initialised after the nodes are created, and the parameter
observer was not configured to update this nodes. This is corrected.

Colors:
- Some color parameters were not being being updated by the parameter observer. This is corrected.
2023-02-15 17:29:46 +01:00
Syres916
f6b3399848 [Sketcher] Fix cursor coordinates text size...
...to stay in proportion to the constraint text size. Fixes https://github.com/FreeCAD/FreeCAD/issues/7080
2023-02-14 15:07:01 +01:00
Yorik van Havre
50fb6d6b46 merged crowdin translations 2023-02-13 15:45:26 +01:00
Yorik van Havre
c71e551556 Merged crowdin translations 2023-02-07 15:55:31 +01:00
Yorik van Havre
f51a6f2cf9 updated ts files 2023-02-07 15:55:31 +01:00
wmayer
7f8b136dae Sketcher: replace slots with member function pointers 2023-02-03 00:21:38 +01:00
wandererfan
a810fa68b4 [Sketcher]fix cursor display of angles 2023-01-30 11:04:42 -08:00
Yorik van Havre
4eca103469 Merged crowdin translations 2023-01-30 10:04:15 +01:00
Yorik van Havre
31b89be95f update ts files 2023-01-30 09:55:26 +01:00
Ajinkya Dahale
862bc58809 [Sketcher] Substitute knot tangent related constraints 2023-01-23 20:43:51 +01:00
luzpaz
2c3e6bd70a Sketcher: convert indentations to spaces 2023-01-23 15:46:49 +01:00
Yorik van Havre
166183e788 Merged crowdin translations 2023-01-23 11:25:49 +01:00
Yorik van Havre
d3149de589 Updated ts files 2023-01-23 10:41:33 +01:00
Ajinkya Dahale
41d240c515 [Sketcher] Auto-constrain point on B-spline 2023-01-21 21:41:27 +01:00
Ajinkya Dahale
05295be7cd [Sketcher] Enable point-on-B-spline in Sketcher and GUI
Also squashes:

[Sketcher] Allow point on external B-spline
2023-01-21 21:41:27 +01:00
Ajinkya Dahale
982152c332 [Sketcher] Add line tangent at knot through endpoint 2023-01-17 16:02:23 +01:00
Yorik van Havre
199ef42f62 Merged crowdin translations 2023-01-17 09:40:31 +01:00
Yorik van Havre
4641218403 Updated ts files 2023-01-17 09:24:46 +01:00
Ajinkya Dahale
bbce4cb4c4 [Sketcher] Do not allow B-spline degree to be too high
...depending on number of poles (and periodic status).

NOTE: It is still possible to run the command in console with a higher degree.
2023-01-16 16:45:17 +01:00
wmayer
7ccee344c7 Sketcher: move to new style connect() 2023-01-13 20:17:53 +01:00
Ajinkya Dahale
e47147ea37 [Sketcher] Prevent dereferencing nullptr in ConstraintView
Fixes #8104.

As described in that issue, a crash happens under the following
conditions:
1. A `DrawSketchHandler` is active.
2. No constraint is selected.
3. Context menu on the `ConstraintView` is triggered.
2023-01-13 15:06:39 +01:00
wmayer
103de43a4e Gui: fix possible problems with new style connect
* In UIntSpinBox rename the signal to not overwrite the signal of the base class
* In UIntSpinBox use the (ambiguous) signal 'valueChanged' of the base class QSpinBox
* To avoid that connect() fails use the function pointer of the Qt class where the signal is defined
2023-01-12 17:02:59 +01:00
Uwe
ed995b5a15 [Gui] modernize some connect() settings
- addresses #6166
2023-01-12 15:13:16 +01:00
Yorik van Havre
3a8fcb53ec Merged crowdin translations 2023-01-09 14:06:28 +01:00
Yorik van Havre
0439b4dca9 Updated ts files 2023-01-09 13:24:16 +01:00
Ajinkya Dahale
c6b4e5cfe8 [Sketcher] Delete check for OCC >= 6.9.0
The oldest version we plan to support is 7.0.0. See
https://forum.freecadweb.org/viewtopic.php?f=10&p=650487#p650487.
2023-01-05 00:27:01 +01:00
wmayer
3e58513c24 Mod: fix some compiler warnings:
* QString::indexOf() is now marked as [[nodiscard]]
* QApplication::fontMetrics() is deprecated, use the constructor of QFontMetricsF
* fix -Wunused-result
* fix -Wunused-but-set-variable
2022-12-31 21:54:45 +01:00
Ajinkya Dahale
e8838b8ef5 [Sketcher] Disallow tangent at knot with non-line in GUI 2022-12-24 18:22:16 -06:00
Ajinkya Dahale
3bccd6686a [Sketcher] Do not use TangentViaPoint for tangent-at-knot 2022-12-24 18:22:16 -06:00
Ajinkya Dahale
a609bce527 [Sketcher] Use tangent at B-spline knot constraint
Also squashes:

[Sketcher] Make tangent-at-knot with just knot and line

[Sketcher] Disallow tangent at C0 knot

If passed on to planegcs can cause segmentation fault.

[Sketcher] (Re-)Support tangent at B-spline end-knots

New code had introduced problems for non-periodic spline end-points, and
periodic spline "end-points" were not supported anyway.

(here end-points mean star/end points)
2022-12-24 18:22:16 -06:00
Yorik van Havre
8890f229ba Regenerated ts files using lupdate6.6 2022-12-22 15:39:42 +01:00
Yorik van Havre
ec12763278 Fixed ts files 2022-12-22 13:34:31 +01:00
Ajinkya Dahale
cbf40d528b [Sketcher] Support splitting B-splines at knots 2022-12-21 16:01:23 +01:00
Ajinkya Dahale
87f5cc327a [Sketcher] Support splitting ellipses 2022-12-21 16:01:23 +01:00
Ajinkya Dahale
9034a37aa7 [Sketcher] Support splitting arcs of conics
This commit also squashes:

[Sketcher] Remove redundant geometry type check

(Arc of) a circle is (an arc of) a conic.
2022-12-21 16:01:23 +01:00
Ajinkya Dahale
5d32faedae [Sketcher] Support splitting arcs of ellipses 2022-12-21 16:01:23 +01:00
Ajinkya Dahale
062450be1b [Sketcher] Support splitting b-splines 2022-12-21 16:01:23 +01:00
Abdullah Tahiri
01013bc411 Sketcher: Make parabola axis to be internal alignment 2022-12-21 16:01:23 +01:00