Commit Graph

481 Commits

Author SHA1 Message Date
Roy-043
6db658255f Draft: update Draft_ApplyStyle
The command now applies all style properties from `utils.get_default_annotation_style()` and `utils.get_default_shape_style()`.

Additionally: minor improvements to gui_setstyle.py.
2023-12-02 13:11:08 +01:00
Roy-043
e64bb9f499 Draft: update Draft_SetStyle
* Added handling of DefaultShapeVertexColor, DefaultShapePointSize, DefaultAnnoLineColor and DefaultAnnoLineWidth preferences.
* Rearranged the task panel.

Additionally the DefaultDrawStyle and DefaultDisplayMode preferences are now applied by format_object in gui_utils.py.
2023-11-30 21:19:48 +01:00
Roy-043
35993c79ca Draft: implement DefaultAnnoLineWidth and DefaultAnnoLineColor prefs
The format_object function in gui_utils.py still requires some work (in connection with the Draft_SetStyle command). This will be done later.
2023-11-30 09:45:19 +01:00
Roy-043
904b37b47d Draft: implement DefaultAnnoLineWidth and DefaultAnnoLineColor prefs
The format_object function in gui_utils.py still requires some work (in connection with the Draft_SetStyle command). This will be done later.
2023-11-29 23:06:17 +01:00
Roy-043
4bcdb7cb1c Draft: use param observer to update tray 2023-11-27 23:56:00 +01:00
Roy-043
a462e8e616 Draft: improve handling of anno DisplayMode and LineSpacing
* DisplayMode controlled by new pref DefaultAnnoDisplayMode. This replaces the old dimstyle pref.
* LineSpacing pref is now used when creating annotations. Will be added to prefs ui later.
* format_object no longer changes FontSize as this conflicted with the height parameter in the make_text function.
* make_text function updated.
2023-11-27 15:45:56 +01:00
Roy-043
9f235c281e Draft: use clearer snap marker names 2023-11-25 19:29:12 +01:00
Roy-043
a3f285cb46 Draft: improve Snap bar show-hide preference
This PR replaces the showSnapBar and hideSnapBar preferences with a single new preference: SnapBarShowOnlyDuringCommands.

Additonally:
Improved some param observer callbacks.
2023-11-24 13:30:03 +01:00
Roy-043
0973eb6b6f Draft: gui_selectplane can rely on ParamObserver for grid changes 2023-11-24 12:18:57 +01:00
Yorik van Havre
b54642bf93 Draft: Added a preference to turn on/off tool messages (off by default) - fixes #7078 2023-11-23 16:27:36 +01:00
Roy-043
8944c79ebe Draft: make default anno style non-global
Additionally:
* Added the DimShowLine preference. Layout of the tab will be updated later.
* Improved handling of DraftAnnotationScale preference: catch division by zero and use it for the default anno style.
2023-11-23 09:45:12 +01:00
Roy-043
0734b518b4 Merge pull request #11477 from Roy-043/Draft-improved-handling-of-snap-prefs
Draft: improved handling of snap prefs
2023-11-21 18:40:42 +01:00
Roy-043
59ba9146b8 Draft: improved handling of snap prefs
* Some trackers had 2 color nodes.
* Added a setColor function to some trackers.
* Added a set_snap_style function to the Snapper class.
2023-11-21 17:14:17 +01:00
Roy-043
84deb09f0b Draft: make mod key prefs non-global 2023-11-20 21:17:18 +01:00
Roy-043
1193491f40 Draft: gridShowHuman did not work
* The gridBorder pref was ignored.
* BimProject has been renamed to BimProjectManager.
2023-11-20 19:54:24 +01:00
Roy-043
99d23ee7f4 Draft: store more command modes in prefs
With this PR the following 5 command modes are automatically stored in the preferences:
* "ContinueMode"
* "RelativeMode"
* "GlobalMode"
* "fillmode" (existing preference, removed from the Preferences Editor)
* "SubelementMode"

Additionally:
Three commands (Draft_Ellipse, Draft_Rectangle and Draft_Stretch) call `setRelative` after the 1st point has been specified and would permanently switch on relativeMode. After this PR this switch is temporary.
2023-11-18 21:03:26 +01:00
Roy-043
9511ef6fb7 Merge pull request #11440 from Roy-043/Draft-make-Draft_Edit-prefs-non-global
Draft: make Draft_Edit prefs non-global
2023-11-18 19:45:00 +01:00
Roy-043
6e6be51bf0 Draft: make Draft_Edit prefs non-global 2023-11-18 19:18:23 +01:00
Roy-043
05f064d35b Draft: constraining did not respect global mode
Fixes #10496.
2023-11-18 13:36:35 +01:00
Roy-043
acac040b6e Draft: Draft_Join should call join_wires
Also removed an obsolete comment.
2023-11-16 21:02:19 +01:00
Roy-043
cb94603731 Draft: menu texts of snaps to sentence case 2023-11-15 14:59:38 +01:00
Roy-043
50e5130060 Draft: cleanup related to PR11336
See #11336
2023-11-14 11:51:34 +01:00
Roy-043
7521751f79 Typos 2023-11-14 00:04:33 +01:00
Roy-043
bbc53afc37 Draft: more file extensions also in caps 2023-11-13 23:12:18 +01:00
Roy-043
88cd41416e Draft: Draft_SelectPlane did not trigger the grid 2023-11-12 20:16:34 +01:00
Roy-043
89c967008d Draft: Improve grid behavior
This PR improves the behavior of the Draft grid:
* Options in the preferences: "Always show the grid" and "Show the grid during commands".
* The parameters are used for new views. In existing views the grid can be toggled either during a command or when no command is active.
* When switching to a different workbench all grids are hidden unless GridHideInOtherWorkbenches is set to `False`. This can be a Fine-tuning parameter IMO.

Notes:
* The defaultCameraHeight parameter becomes obsolete. It was only used in very specific circumstances.
* The code of PR #8818 becomes obsolete. It makes more sense to use `App.activeDraftCommand` instead of adding a `tool` argument to some functions. Will do some related cleanup later.
* Improved alignment for the related preference ui. The checkbox interaction has been fixed as well.
2023-11-10 14:02:38 +01:00
Roy-043
80b83201df Draft: renaming of anno style could fail
The error occurred if the style was in use.
2023-11-06 11:40:24 -06:00
Roy-043
f200e8f54a Draft: Updates related to the PlaneGui class (step 4)
Related issue:
#5603.

For gui_snapper.py and gui_trackers.py an intermediate solution has been adopted. They still rely on App.DraftWorkingPlane, but now use a small function to retreive it.

Simply switching to the PlaneGui class is problematic for the trackers as this results in an endless recursion (wp->grid->wp->...). Using the old App.DraftWorkingPlane (which is kept up-to-date by PlaneGui) solves this for now. I will try to return to this later (which may be after the next release though).
2023-10-31 15:41:21 +01:00
Roy-043
539a3fa245 Merge pull request #11117 from Roy-043/Draft-Updates-related-to-the-PlaneGui-class-(step-2)
Draft: Updates related to the PlaneGui class (step 2)
2023-10-27 10:49:56 +02:00
Roy-043
b5b122fba7 Draft: Draft_SelectPlane was not correctly finished in case of a pre-selection
Fixes #11157.
2023-10-24 10:44:46 +02:00
Vincenzo Calligaro
c8b3d42064 [Feature Request] [Draft] [UI/UX] new Draft_Hyperlink command (#10878)
* Draft: added the new Draft_Hyperlink command

Signed-off-by: CalligaroV <vincenzo.calligaro@gmail.com>

* Draft: added the new Draft_Hyperlink command
 * Updated regex condition for more Windows file paths and network resources
 * Added check for file existence
 * Modified syntax for Win32/CygWin case
 * Declared ret variable outside if statement

Signed-off-by: CalligaroV <vincenzo.calligaro@gmail.com>

* Draft: added the new Draft_Hyperlink command
 * Replaced os.startfile and subprocess.call with QDesktopServices.openUrl
 * Removed unused Python dependencies

Signed-off-by: CalligaroV <vincenzo.calligaro@gmail.com>

---------

Signed-off-by: CalligaroV <vincenzo.calligaro@gmail.com>
2023-10-23 17:42:47 +02:00
Roy-043
d065f13f67 Draft: Updates related to the PlaneGui class (step 2)
Related issue:
#5603.

Additionally:
Fixed the issue where the texts of Arch_Space objects were not exported to DXF.
2023-10-23 16:25:12 +02:00
Roy-043
76eb1bef10 Draft: Fix Gui.doCommand issue in gui_planeproxy caused by PR11080 (#11134)
The previous code resulted in a syntax error.
2023-10-22 11:15:00 +02:00
Roy-043
2335c6beff Draft: Updates related to the PlaneGui class
Related issue:
#5603.
2023-10-18 09:50:50 +02:00
Roy-043
cd802d7bcb Draft: Make Facebinders link-aware
Forum topic:
https://forum.freecad.org/viewtopic.php?t=81997

Additionally:
* Fixed offset and extrusion for non-planar faces.
* Improved the addSubobjects function,
* Cleaned up the code a little bit.
2023-10-18 09:50:18 +02:00
Roy-043
308391a806 Draft: Update gui_selectplane.py
Related issue:
#5603

Previous PR:
#11010

* This PR implements the new PlaneGui class for the Draft_SelectPlane command.
* As mentioned in the previous PR, almost all working plane related code has been removed from gui_selectplane.py.
* The task panel has a new button "Next" to switch to the next working plane in the history.
* Both the "Previous" and "Next" buttons are only enabled if there is a corresponding step in the history.
* PlaneGui stores a working plane per 3D view, but the other commands have to be updated before that system is fully functional.
* Code to update the toolbar when switching to a different view will be added later.
2023-10-17 15:05:28 +02:00
Roy-043
355c7111ad Draft: Fix angular dimension issue caused by #10556
Forum topic:
https://forum.freecad.org/viewtopic.php?t=81956

This PR basically reverts PR #10556.

The angular offset required for the Draft_Arc command is handled in the gui_arc.py file instead. Also removed the unused `urotated` variable from that file.
2023-10-17 15:05:12 +02:00
Roy-043
3e45d030cf Draft: Fix cursor scaling issue
Fixes #6793
2023-10-09 14:01:21 +02:00
Roy-043
887e8f63fc Draft: gui_edit called displayPoint without mask (#10693)
Forum topic:
https://forum.freecad.org/viewtopic.php?t=81186
2023-09-16 17:08:50 +02:00
Roy-043
1c39dabdb6 Draft: arcTracker did not take Working Plane rotation into account
Steps to verify the issue:
1. Open FreeCAD.
2. Switch to Std_ViewTop.
3. Click one of the curved arrows of the Navigation Cube.
4. Switch to the Draft WB.
5. Make sure Draft_SelectPlane is set to "Auto".
6. Start Draft_Arc and click 2 points (for the radius and the start angle).
7. Result: The displayed arc does not match the start angle or the current point.

Additonally:
* Removed the normal argument from `__init__`. The tracker does not work properly with just a normal. AFAICT there is no code that specifies this normal.
* Minor improvement to `getAngle`: Switched the vectors.
2023-09-05 15:39:17 +02:00
Yorik van Havre
50513232ac Merge pull request #10505 from Roy-043/Draft-Fix-angle-range-issue-of-make_circle
Draft: Fix angle range issue of make_circle
2023-09-04 11:29:13 +02:00
Roy-043
a8e4b3a18f Ammended files based on review 2023-09-03 12:43:34 +02:00
Roy-043
341649e1d1 Draft: Correct mistake in PR10160 (#10506)
`self.gui_tools_repository` is an instance of a class that manages a dictionary, it is not a dictionary itself.
2023-09-02 23:37:16 +02:00
Roy-043
5cc0cc22db Typo... 2023-09-02 23:04:41 +02:00
Roy-043
0d2b3f566a Draft: Fix angle range issue of make_circle 2023-09-02 20:48:40 +02:00
Roy-043
08c8f1d0da Draft: Remove unused import WorkingPlane 2023-08-29 18:59:40 +02:00
Roy-043
9fde9f53fa Draft: Fix Draft_Mirror preview 2023-08-29 16:25:42 +02:00
Roy-043
c2a843a5dd Draft: Reduce occurrences of App.DraftWorkingPlane 2 (#10390) 2023-08-28 10:17:58 +02:00
Roy-043
af87661093 Draft: Reduce occurrences of App.DraftWorkingPlane (#10388) 2023-08-28 10:16:36 +02:00
Roy-043
32c47e64a3 Draft: Make gui_tool_utils.get_support nesting aware (#10373)
The get_support function did not work for objects nested in, for example, Std_Parts.

Additionally improved and cleaned up the code, and reduced the docstrings.
2023-08-27 12:41:25 +02:00