Commit Graph

52 Commits

Author SHA1 Message Date
Roy-043
51f7ee09a2 Draft: Draft_Edit: restore Relative checkbox
The relative checkbox was hidden by mistake.
2024-02-07 10:26:16 +01:00
Roy-043
51035731e7 Draft: Avoid draftToolBar.getDefaultColor outside DraftGui.py
The draftToolBar.getDefaultColor() function is an indirect way of retreiving a parameter. It is better to avoid it where possible.
2024-02-01 18:02:10 +01:00
Ladislav Michl
839fb17649 Draft: Use widgets from QtWidgets 2024-01-25 14:27:38 +01:00
Roy-043
b0aa33f92a Draft: implement new get_param functions (step 2)
See #11677
2023-12-12 14:48:09 +01:00
Roy-043
6e86e9efa2 Draft: use MarkerSize for snap and tracker markers 2023-12-08 21:17:34 +01:00
Roy-043
6e6be51bf0 Draft: make Draft_Edit prefs non-global 2023-11-18 19:18:23 +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
2335c6beff Draft: Updates related to the PlaneGui class
Related issue:
#5603.
2023-10-18 09:50:50 +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
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
b83e401836 Draft: Avoid dictionary.keys() where possible (#10160) 2023-08-13 11:46:25 +02:00
luzpaz
38a01939e0 Migrate domain name from freecadweb to freecad (#9352)
* Migrate domain name from freecadweb to freecad
* Migrate src/Mod/Material files
* Migrate Stylesheet related files
* Migrate *.svg files
* Migrate miscellaneous files
* Migrate some build files
* Migrate recently added TD AR_IRAM template files

Closes #6415
2023-04-24 15:19:20 -05:00
Roy-043
9351bbe7bf Draft: Escape should not switch off continue mode 2022-10-15 12:14:51 +02:00
Roy-043
f09bfd3695 Draft: Improve Draft_Edit task panel 2022-10-01 11:51:53 +02:00
Roy-043
25ee38495e Draft: Improve Draft_Edit context menus 2022-09-26 10:03:50 +02:00
Roy-043
c44dcf018b Draft: Fix-gui_edit.py Y is zero input bug
Entering a Y=0 coordinate when editing points caused an error.
2022-01-31 22:15:38 +01:00
Roy-043
d97ba3c622 Draft: fix task panel issues (gui_edit.py) 2021-12-04 21:58:50 +01:00
Yorik van Havre
4633ef67d2 Merge pull request #4891 from Roy-043/Draft_Fix_Misplaced_Edit_Nodes_BezCurve_2
Draft: Fix misplaced Draft_Edit nodes for BezCurve 2nd version
2021-09-02 11:41:51 +02:00
Yorik van Havre
2c074af17e Merge pull request #4492 from marioalexis84/draft-wp_restore
Draft: Fixes #0004562: Active working plane changes when I close Draft Edit panel
2021-06-30 10:50:25 +02:00
Roy-043
a7513591ae Draft: Fix misplaced Draft_Edit nodes for BezCurve 2nd version
The poles in the resetTrackersBezier function are in the CS of the geometric parent of the curve. Before using `p = obj.getGlobalPlacement().multVec(p)` the nodes have to be translated to the CS of the curve. Otherwise the effects of the curve's Placement would be added twice. See discussion: https://github.com/FreeCAD/FreeCAD/pull/4889



 the global coordinate system. They should therefore not be translated from the LCS to the GCS.
2021-06-26 09:42:56 +02:00
carlopav
cdb3a1d7fd Draft: Edit, cleanup of new GuiTools.addPoint methods
In new splitted addPoint methods, getObjectsInfo and the consequent checks have been removed and moved to main DraftEdit module in a new get_specific_object_info method.
This method returns the info for the selected object at a given position and the 3d Vector of the point clicked on the object.
2021-06-01 23:21:12 +02:00
carlopav
d2d570f875 Draft: Edit, moved resetTrackers for context menu actions to main module
The wrapper allows to call resetTrackers in the main module after the callback to the GuiTools is executed.

This is the last commit, many thanks to @matthijskooijman for having menthored me :)

I think it's helpful to have @matthijskooijman explanation on this use of the wrapper:

This defines a new wrapper function, that calls the original callback and then calls resetTrackers. Note that this creates a new function for every loop iteration, so each of these wrapper functions captures potentially different callback, self and obj values so things work as expected. Note I did something weird with the callback value there: Since functions like these capture a variable, not its value at the time of function definition, and loop variables like label and callback are a single variable shared between all loop iterations, capturing callback directly ends up with all wrappers calling the last callback (i.e. they all capture the same variable and by the time the wrappers are called, that variable will contain the last of the callbacks). This is commonly solved by using a default value in the function definition, since such a default value uses the value of the (in this case) callback variable, not capturing the variable.
2021-06-01 23:20:41 +02:00
carlopav
d3b524704f Draft: Edit, rewriting context menu system
get_edit_point_context_menu(self, edit_command, obj, node_idx)
get_edit_obj_context_menu(self, edit_command, obj, position)
that are called depending if the user is over an editpoint or over another part of the object.
2021-06-01 22:53:01 +02:00
carlopav
50a596f687 Draft: Edit, Split out addPoint in multiple methods in the GuiTools
Now Draft_Wire, Draft_BSpline, Draft_Bezcurve have their own methods to add points.
2021-06-01 21:57:38 +02:00
carlopav
2e36f8a832 Draft: Edit, change startEditing method to accept (obj, node_idx)
This enable to start editing also without an user click event, by just calling the method and specifying the object and the edit point index.
It is used for alternative edit mode (alt_edit_mode) by arc context menu
2021-06-01 21:47:37 +02:00
Yorik van Havre
966906da96 Merge pull request #4557 from luzpaz/crowdin/whitespaces-substituted-into-code
Crowdin: represent whitespace in code instead of in string
2021-05-05 17:18:35 +02:00
luz paz
6f83a4a815 Crowdin: represent whitespace in code instead of string 2021-04-19 06:23:07 -04:00
marioalexis
6795e0d7e6 Draft: Change selectUi and makeDumbTask argument named 'callback' to 'on_close_call'
Suggested by user @carlopav
2021-03-20 17:12:58 -03:00
marioalexis
7c00d19a28 Draft: Call finish method if pressed Close button in dumb taskdialog 2021-03-20 17:12:58 -03:00
Chris Hennes
4ebdff9d9c [Draft] Fix localize_vectors double definition
LGTM identified an instance where a function was defined twice: in this
case, one version was intended to take a list of items and the second
version just a single item. Because they share the same name and number
of arguments, the second definition overrode the first. This causes no
problems in the current code because the version that takes a list is
never used. However, for consistency with the analogous
"globalize_vectors" and "globalize_vector" functions, the "localize*"
versions are changed to match that pattern. All calls in are
converted to the singular use.
2021-03-01 09:36:21 -06:00
Chris Hennes
26ce308cf1 [DRAFT] Add call to super().__init__ where missing
Identified by LGTM. The toplevel superclass does initialize one data
member to an empty array, but this didn't appear to cause any problems.
2021-02-27 18:21:54 +01:00
marioalexis
edbb798184 Draft: Remove restore WP method call in draftguitools's finish method - fixes #0004562 2021-02-19 13:13:05 -03:00
Yorik van Havre
abee35f38a Draft: Fixed broken translations everywhere 2021-02-12 14:44:58 +01:00
Chris Hennes
a7522c384e [DRAFT] Catch only Exception, not BaseException 2021-02-11 11:52:45 +01:00
carlopav
e78b104a75 Draft: provide the possibility to implement support for Edit in objs
As suggested by @Vanuan. and already implemented in new experimental BIM Wall: 1084a4b0a9
Draft: updated Draft Edit

thanks to the suggestions by @Vanuan
Draft: further bugfixing and improvements in Draft_Edit


Draft: moved Draft_Edit preview code into respective GuiTools
2020-09-09 14:13:29 +02:00
carlopav
1006529999 Draft: support experimental BIM wall in Draft_Edit 2020-09-09 14:13:29 +02:00
vocx-fc
f4611f0a31 Draft: add modules of draftguitools to the proper Doxygen group
This includes `gui_annotationstyleeditor`, `gui_arcs`, `gui_array_simple`,
`gui_arrays`, `gui_base`, `gui_base_original`, `gui_beziers`,
`gui_circles`, `gui_circulararray`, `gui_clone`, `gui_circulararray`,
`gui_clone`, `gui_dimension_ops`, `gui_dimensions`, `gui_downgrade`,
`gui_draft2sketch`, `gui_drawing`, `gui_edit`, `gui_edit_arch_objects`,
`gui_edit_draft_objects`, `gui_edit_part_objects`, `gui_edit_sketcher_objects`,
`gui_ellipses`, `gui_facebinders`, `gui_fillets`, `gui_grid`,
`gui_groups`, `gui_heal`, `gui_join`, `gui_labels`, `gui_line_add_delete`,
`gui_lineops`, `gui_lines`, `gui_lineslope`, `gui_mirror`,
`gui_move`, `gui_offset`, `gui_orthoarray`, `gui_patharray`,
`gui_planeproxy`, `gui_pointarray`, `gui_points`, `gui_polararray`,
`gui_polygons`, `gui_rectangles`, `gui_rotate`, `gui_scale`,
`gui_selectplane`, `gui_shape2dview`, `gui_shapestrings`, `gui_snapper`,
`gui_snaps`, `gui_splines`, `gui_split`, `gui_stretch`, `gui_styles`,
`gui_subeleemnts`, `gui_texts`, `gui_togglemodes`, `gui_tools_utils`,
`gui_trackers`, `gui_trimex`, `gui_upgrade`, `gui_wire2spline`.

These are added to the `draftguitools` Doxygen group
so that the functions and classes contained in each module
are listed appropriately in the automatically generated
documentation.
2020-07-17 13:01:45 +02:00
carlopav
011a0f0764 Draft: further cleanup of Draft Edit. 2020-05-29 13:35:51 +02:00
carlopav
8749a75056 Draft: bugfix on Edit BezCurve 2020-05-25 13:37:55 +02:00
carlopav
aa92bfba80 Draft: Edit bugfix in Wire/BSpline curve editing 2020-05-25 13:37:55 +02:00
carlopav
8926651c0e Draft: Edit support for Part Sphere
.
2020-05-25 13:37:55 +02:00
carlopav
4507a5a21b Draft: Edit support for Part Cone 2020-05-25 13:37:55 +02:00
carlopav
cdbc11e2ad Draft: reordered supported edit objects and support for PartCylinder 2020-05-25 13:37:55 +02:00
carlopav
89d4a6e00c Draft: Edit reordering 1
Started a general refactor to handle all the conversion between global and object coordinate system inside the main methods and just use object coordinates inside object functions.
Draft: Edit reordering 2

Fixed Editing of Part objects according to the new refactor
Draft: fix in autogroup function for dimensions


Draft: fixed Polygon editing when inscribed or circumscribed


Draft: Edit support for Ellipse object


.


Draft: Edit docstrings


Draft: Edit reordering 3


Draft: Fixed Edit for structure object

And also refactor Edit methods that control special object display during editing.
Draft: Fixed edit for arch wall object
2020-05-25 13:37:55 +02:00
carlopav
4e8124e415 Draft: Split Draft Edit into 4 modules
One for interaction handling and 3 for object editing functions, divided between Draft, Part, Arch
2020-05-25 13:37:55 +02:00
carlopav
83b708127d Draft: Cleanup of Draft Edit 2020-05-25 13:37:55 +02:00
carlopav
c1696f20dc Draft: fixed edit for dimension objects 2020-05-04 10:53:54 +02:00
carlopav
81e5a3487b Draft: fix ScaleMultiplier on annotation objects
Object auto create the property when opening an old Draft annotation
.
2020-05-04 10:53:54 +02:00
luz.paz
1319bfe11c LGTM: Fix 'testing equality to None'
Testing whether an object is `None` using the `==` operator is inefficient and potentially incorrect.
2020-04-22 12:18:33 +02:00
vocx-fc
f329fbeb40 Draft: gui_edit, many small spacing and docstring edits 2020-04-07 18:12:06 +02:00