Commit Graph

141 Commits

Author SHA1 Message Date
Andrea
146d8a356b change MIN_boost_version
ubuntu version 20.04 is no longer supported.
The minimum boost version used for freecad is now 1.74 (ubuntu 22.04) https://launchpad.net/ubuntu/jammy/+package/libboost-system-dev
2025-02-15 13:33:32 -06:00
tritao
551c2e48fb Gui: Reorganize the selection files into a top Selection folder. 2025-02-03 17:56:57 +01:00
PaddleStroke
17e6aa9629 Sketcher: Rename movePoint to moveGeometries. 2024-12-06 16:45:47 +01:00
PaddleStroke
95c3d4febc Sketcher: Group dragging 2024-12-04 10:58:29 +01:00
Florian Foinant-Willig
ea8814785a Sketcher infinite axes 2024-11-25 18:27:10 +01:00
Kacper Donat
7646d4b611 Sketcher: AutoColor should update only colors
Previously AutoColor property forced reinitialization of all subscribed
parameters. It was mostly fine as most of them should stay in sync with
user settings but it also affected grids.
2024-09-09 21:19:35 -05:00
bgbsww
9f2210313d Toponaming: Tests, cleanup, and fix axis drawing 2024-07-26 11:49:56 -04:00
ppphp
12e8fb1695 fix unique ptr usage in sketch (#15008)
* fix unique ptr usage in sketch

* [pre-commit.ci] auto fixes from pre-commit.com hooks
2024-07-08 10:53:49 -05:00
Kacper Donat
bcb4ee21cc Gui: Update sketcher colors after file load
This commit introduces AutoColor property for sketches that when
enabled ensures that sketches are updated with the color of user
preference. It ensures that sketches from different users will be
still visible on different themes.

To ensure backward compatiblity migration strategy is to compute default
value for this property based on the color. If it is non-white (the
default value in FreeCAD) we assume that the change was inentional and
that it should be kept as-is turning automatic coloring off. In other
cases it is enabled by default.

Fixes: FreeCAD#13980
2024-06-03 11:15:36 -05:00
0penBrain
4857ef19f2 Gui: offer possibility to editing view provider to handle "Select All" command 2024-05-27 10:52:00 -05:00
wmayer
be3de50660 Sketcher: fixes #12343: Undo/Redo for sketcher constraints doesn't work correctly 2024-02-25 00:59:35 +01:00
Max Wilfinger
4b71f44414 Improvements to contextual right click menu in Sketcher.
Consider preselection, external geo and copy/cut/paste commands.
2024-02-12 11:04:06 -06:00
Paddle
88883faaf8 Sketcher: Add copy/cut/paste sketcher commands 2024-01-19 11:13:53 +01:00
Paddle
ec7e3ea364 Sketcher: Define double click on edges : Select the whole wire. 2024-01-17 11:05:28 -03:00
Max Wilfinger
96d3e26110 sketcher: create contextual right click menu 2024-01-08 12:39:17 -05:00
Abdullah Tahiri
99889ac487 Sketcher: Box Selection - refactor
==================================

Full refactor of this function without change of functionality (hopefully).
2023-11-11 21:19:12 +01:00
Abdullah Tahiri
f56eebea64 Sketcher: Fix lints 2023-11-08 17:46:34 +01:00
Abdullah Tahiri
2f40dd34c8 Sketcher: Encapsulate function to ensure MDI focus 2023-11-08 17:46:34 +01:00
Abdullah Tahiri
7034795723 Sketcher: ToolSettings Widget - Tool Management
===============================================

Sets the full interface between the DrawSketchHandler and a tool widget available somewhere in the UI.

Signalling is as follows:
1. On activation of the tool, DrawSketchHandler notifies the tool widget.
2. The tool widget retrieves tool information necessary for representation (type of widget, visibility, ...)
3. When the tool widget has created an appropriate widget, it notifies back a widget change.
4. The tool receives the widget handler and can now configure and interact with the widget.
2023-10-15 15:20:03 +02:00
Paddle
5ad7548340 ToolWidget-Sketcher: Tool widget basic framework
================================================

Provides a framework to show in the taskbar a taskbox with a tool settings dialog.
2023-10-15 15:20:03 +02:00
wmayer
d305f306df Core: Revert superfluous changes made with PR #9521 2023-10-09 15:06:45 +02:00
AgCaliva
a4e90b2609 Merge branch 'master' into User/Document/Feature_level_units_selection_#7746 2023-09-25 22:58:23 -03:00
Paddle
9c3c763d10 Sketcher: Angle constraint: when moving it with mouse, it enables user to switch of supplementary angle. 2023-09-19 07:22:50 +02:00
AgCaliva
f206e91e1c fixing DOMDocument redefinition3 2023-09-16 07:27:11 -03:00
pre-commit-ci[bot]
d793d1c177 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2023-09-12 21:19:33 +02:00
pre-commit-ci[bot]
e92ed45df9 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2023-09-12 13:02:35 -04:00
Chris Hennes
fcedce3c42 Sketcher: Reformat to current clang-format standard 2023-09-04 07:17:28 -05:00
wmayer
6ff3ee9951 Sketch: modernize C++: use override 2023-08-04 17:09:53 +02:00
Abdullah Tahiri
78ae9c1d7d SketcherGui: apply clang-format 2023-05-25 17:08:03 +02:00
Paddle
ecb1724bf1 Sketcher: Snap: initial implementation: - creation of SnapManager class. - Move grid snap to this new class. - Add snap to object. - Add snap at angle. 2023-03-19 19:14:22 +01:00
Abdullah Tahiri
f2d6b287ab Sketcher: ViewProviderSketch
============================

Adding PropertyVisualLayerList to ViewProviderSketch
2023-03-02 20:42:48 +01:00
Abdullah Tahiri
f486ee74a4 Sketcher: Grid - correction of design decisions
===============================================

Removal of ViewProviderGridExtension properties:
-GridStyle
-GridSnap

Improvement of ViewProviderGridExtension API:
- color via App::Color

Toolbar grid command:
- Conversion of Snapping to edit parameter
- Snap gets a class enum to support future Snapping functionalities as edit parameter

Sketcher Settings:
- Removal of snap preference

Behaviour:
- ShowGrid, GridAuto, GridSize preferences do not change any existing VP. They apply to any newly created sketch.
- Do not limit grid to hardcoded values

Snap to grid:
- Code updated to use closestpoint functionality provided by the extension,

Several other fixes
2023-02-25 23:13:55 +01:00
Abdullah Tahiri
1d9298590f 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
Paddle
40271a29ea 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
Uwe
800005a7bd [Sketch] Gui: U - End: remove unused headers
- also some sorting
2022-12-13 04:02:20 +01:00
0penBrain
4e6625ac12 Sketcher: remove unneeded flag 2022-10-21 15:15:43 +02:00
0penBrain
3581d0f6c7 [Bugfix]Sketcher/BackEdit : Backedit lost if user changed camera mode
- in current implementation, backedit feature is lost if user changes camera mode (for example from orthographic to
   perspective, or oppositely). This happens because when changing camera mode, Coin actually do not just change a
   parameter of the camera node, but delete the current camera node and add a new one to the scenegraph. Thus the
   SoFieldSensor currently used (attached to camera orientation) is just detached and sensing is left -- notice is would
   be same with a SoNodeSensor attached to camera node --. The solution is to attach the sensor at scenegraph root node
   so it isn't lost when camera mode changed. No pre-check (such as checking if camera node changed since last call) has
   been added currently because it would not actually reduce callback execution time (and even worsen it).
2022-10-19 11:34:17 +02:00
0penBrain
c910ff6509 Sketcher/BackEdit: makes clip plane switch side according to view side 2022-09-09 16:09:42 +02:00
0penBrain
bd40fa403f Sketcher/BackEdit: makes view orientation factor accessible to coin managers 2022-09-09 16:09:42 +02:00
0penBrain
ea0f62c38e Sketcher/BackEdit: Add camera sensor to VP that detects side and redraw if side changed 2022-09-09 16:09:42 +02:00
berniev
180edfa3cc Mod: Single arg ctors must be explicit 2022-08-24 16:55:20 +02:00
berniev
71dc5ead2f Mod: Use override etc 2 2022-08-09 12:52:26 +02:00
berniev
f4ffd15864 Mod: redundant void 2 2022-08-08 10:27:50 +02:00
Abdullah Tahiri
5be75acdb0 ViewProviderSketch: Cursor movement and preselection at sketch coordinates
===============================================================================

- Support to programatically move the cursor to sketch coordinates
- Support to try preselection at a given sketch coordinates
2022-06-28 18:58:47 +02:00
Abdullah Tahiri
1aab305577 Sketcher: DrawSketchHandler draw multiple edit curves
=====================================================

Extension of the framework to draw an arbitrary curve in draw sketch handlers, so that
a plurality of curves can be handled.

DrawSketchHandler is extended to additionally offer drawing several curves:
- void drawEdit(const std::list<std::vector<Base::Vector2d>> &list);
- void drawEdit(const std::vector<Part::Geometry *> &geometries);

A new class, CurveConverter, enables to convert individual Part::Geometry or vectors of them
to appropriate vectors or list of vectors of Vector2d representing the curves. This can be
used in a specific DrawSketchHandler to combine Part::Geometries and arbritary curves.
2022-03-14 16:02:49 +01:00
Abdullah Tahiri
23f18505f2 Sketcher: Redraw constraints on wheel event
===========================================

https://forum.freecadweb.org/viewtopic.php?p=577585#p577585
2022-03-13 11:33:52 +01:00
wmayer
8f786ea6ef Gui: Optimize includes to reduce compile time 2022-03-07 20:29:18 +01:00
wmayer
bb2872d5de Sketch: make sure that Attachment editor shows up in the context-menu 2022-02-17 19:27:11 +01:00
0penBrain
3eb233dc37 [Sketcher] Fix typo 2022-02-17 16:17:04 +01:00
0penBrain
a12f5f2691 [Sketcher] Disable constraints selection when geometry/constraint handler is active 2022-02-17 16:17:04 +01:00