Commit Graph

54 Commits

Author SHA1 Message Date
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
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
05f064d35b Draft: constraining did not respect global mode
Fixes #10496.
2023-11-18 13:36:35 +01:00
Roy-043
50e5130060 Draft: cleanup related to PR11336
See #11336
2023-11-14 11:51: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
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
3e45d030cf Draft: Fix cursor scaling issue
Fixes #6793
2023-10-09 14:01:21 +02:00
Roy-043
4d7277138b Draft: fix near snap for meshes (#9719) 2023-06-05 09:58:50 +02:00
Roy-043
a779ba3514 Draft: fix getcoords in gui_snapper.py (#9654)
The function did not handle global and relative mode properly
2023-05-26 19:45:31 +02:00
Yorik van Havre
9b3f5f102e Draft: small optimization in snapper - issue #5761 (#9239) 2023-04-25 10:16:47 +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
Yorik van Havre
53bc32b03e Draft: Fixes grid on/off behaviour - fixes #5878
- If grid is on and auto grid on: Grid always appears
- If grid is on and auto grid off: Grid off at start, on when using a tool, off afterwards
- If grid is off: Grid never appears
2023-03-10 12:19:27 +01:00
Roy-043
b5a44e6f73 Draft: housekeeping: indentation gui_snapper.py
As mentioned here: #8172
2023-01-12 16:04:31 +01:00
Roy-043
dfb5f5de4b Draft: Properly remove Snap toolbar when switching workbenches (#8172) 2023-01-12 15:29:21 +01:00
Roy-043
7951dab2bf Draft: update inspect.getargspec to inspect.getfullargspec (#8101) 2022-12-29 23:20:38 +01:00
Roy-043
6261854a50 Draft: housekeeping: rename snap icons 2022-11-11 17:33:09 +01:00
Roy-043
024c50cd4f Draft: Change Snap toolbar to standard toolbar 2022-10-27 10:45:48 +02:00
wmayer
838a91fafb Draft: fix snapper icons
* Add convenience function to get 3D views from MDI area
* Use 'inherits' instead of 'QMetaObject.className()' to check more reliably for sub-classes
2022-08-11 11:50:53 +02:00
Roy-043
d2ce02058e Update gui_snapper.py 2022-07-04 16:59:02 +02:00
Roy-043
9623cd5973 Draft: Fix near snap 2022-07-04 09:43:15 +02:00
Roy-043
f2698ac017 Draft: Fix Draft_Snap_Intersection for self-intersecting objects 2022-04-29 14:20:15 +03:00
Roy
db7b37dd1f Draft: Fix additional translation issues related to the snapping commands 2022-01-12 13:44:05 +01:00
Roy-043
ba3961574b Draft: make Draft_Snap_Angle work in 3D
Draft_Snap_Angle only worked for circular edges on a plane parallel to the XY plane of the global coordinate system.
2022-01-06 16:57:55 +01:00
Roy-043
f89078c01f Draft: fix 3 snap issues
1. Draft_Snap_Parallel only worked beyond the endpoints of the edge.
2. It was very hard to select an edge for Draft_Snap_Parallel if no other snaps were active.
3. Only two snap objects were stored.
2021-11-25 15:21:11 +01:00
Roy-043
413fff7ea2 Draft: fix toggle grid issue. 2021-11-17 19:26:36 +01:00
carlopav
967a97e9a8 Draft: fix Snapper GridSnap not working over a face
ref. https://forum.freecadweb.org/viewtopic.php?f=23&t=62274&sid=4c9d07255e4f0db219b661c345768319

If the cursor is over a Face and no SnapCenter is active, the snapToObject method returns the current cursor point instead of None. Doing so the snap() method does not check for extension and grid snaps.
It seems this is a bug since the snap() already contains the deleted code.

One note: the no snaps case was moved before the lastObj setting, since if no snap point was found, it's not right to set it to a non snapped object.
2021-09-19 14:31:44 +02:00
marioalexis
b8dee20115 Draft: Fix snap to proxy WP and BuildingParts - fixes #0004278 2021-02-23 21:40:06 -03:00
Chris Hennes
a7522c384e [DRAFT] Catch only Exception, not BaseException 2021-02-11 11:52:45 +01:00
Roy-043
b6976b3b23 [Draft] Fix snap to center of faces of solids
The code would only find a center snap on the face with index=0 of solids.

In V0.19 Part.getShape was introduced (line 399). But not all consequences were not fully implemented.

In the '# we are snapping to an edge' section (line 411) the code could be cleaned up. There is no need to check if the index of the edge is correct for the parent object since we are no longer dealing with a parent object. That portion was effectively dead code.

The '# we are snapping to a face' section (line 429 in the revised code) has been modified accordingly, which fixes the bug.

Forum discussion:
https://forum.freecadweb.org/viewtopic.php?f=23&t=54747
2021-01-25 15:33:36 +01:00
Yorik van Havre
7b10771b7c Draft: Don't snap to ImagePlanes 2021-01-12 15:31:55 +01:00
Yorik van Havre
1cce61670c Draft: better checks for no active document 2020-11-16 13:25:12 +01:00
Yorik van Havre
583b59c29f Draft: Condensed the Draft toolbar style buttons into one with more options 2020-11-10 14:14:18 +01:00
luz paz
27fc4d6c7e Fix various typos [skip-ci] 2020-10-24 12:25:46 +02:00
John Yani
2cf6d093d6 Proper check for Qt version 2020-09-30 22:36:22 +02:00
John Yani
d5d5301144 Fix indentation 2020-09-30 12:31:15 +02:00
John Yani
826f6c1bf3 HiDPI cursors: Support Qt < 5
Forum thread: https://forum.freecadweb.org/viewtopic.php?p=433621#p433621
2020-09-30 12:31:15 +02:00
carlopav
41f81b2cff Draft: fixed obj.TypeId output after utils.get_type() change
.


.
2020-09-09 14:13:29 +02:00
Roy-043
a620ddc0bc Update gui_snapper.py 2020-09-08 16:13:02 +02:00
Vanuan
0e7e44e97e High DPI support: Scale Draft cursor to device pixel ratio 2020-08-19 19:59:13 +02:00
Vanuan
187cf585ce Fix a typo in draft snapping 2020-08-11 11:59:52 +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
Yorik van Havre
29d4859633 Draft: snapper.getPoint() does not return object anymore if no snapped object 2020-06-17 14:03:29 +02:00
carlopav
aa572290b7 Draft: bugfix in Snapper 2020-05-12 10:03:52 +02:00
luz.paz
cb9379225a [skip-ci] Fix typos
Found via codespell v1.17.0.dev0  
```
codespell -q 3 -L aci,ake,aline,alle,alledges,alocation,als,ang,anid,ba,beginn,behaviour,bloaded,byteorder,calculater,cancelled,cancelling,cas,cascade,centimetre,childs,colour,colours,commen,connexion,currenty,dof,doubleclick,dum,eiter,elemente,ende,feld,finde,findf,freez,hist,iff,indicies,initialisation,initialise,initialised,initialises,initialisiert,ist,kilometre,lod,mantatory,methode,metres,millimetre,modell,nd,noe,normale,normaly,nto,numer,oder,orgin,orginx,orginy,ot,pard,pres,programm,que,recurrance,rougly,seperator,serie,sinc,strack,substraction,te,thist,thru,tread,uint,unter,vertexes,wallthickness,whitespaces -S ./.git,*.po,*.ts,./ChangeLog.txt,./src/3rdParty,./src/Mod/Assembly/App/opendcm,./src/CXX,./src/zipios++,./src/Base/swig*,./src/Mod/Robot/App/kdl_cp,./src/Mod/Import/App/SCL,./src/WindowsInstaller,./src/Doc/FreeCAD.uml
```
2020-04-27 11:29:32 +02:00
Yorik van Havre
e496f356f2 Draft: fixed regression in snapper 2020-04-23 12:05:59 +02:00
carlopav
ff4ac3a3b4 Draft: reintroduced grid button in snap toolbar 2020-04-22 12:14:23 +02:00
carlopav
e68bf521f6 [Draft] Snapper cleanup
Cleanup after @vocx-fc review
2020-04-20 12:38:06 +02:00
carlopav
113c699ada [Draft] Snap improvement and statusbar cleanup after rebase
[Draft] Attempt to make base classes compatible with super on py2


[Draft] Refactored imports of snapper and snaps gui tools


.


.
2020-04-20 12:38:06 +02:00
carlopav
78a5036048 [Draft] Improved Snapper Toolbar Behaviour
Changed snap toolbar behaviour:
- create a list of available snaps (Gui.Snapper.snaps)
- make it consistent with Snap Gui Commands (in gui_snaps module)
- create a list of active snaps (Gui.Snapper.active_snaps)
- refactor the isEnabled() method to allow it to check if the given snap is in Gui.Snapper.active_snaps and not if the snap toolbar button isChecked()
- updated and reordered the new list of gui snap commands in draftutils.init_tools and used it as a base to refactor the creation of draft toolbar
- updated all the draft snap gui tools to make them control the toolbar buttons directly
.


.


.
2020-04-20 12:38:06 +02:00
vocx-fc
b206106df5 Draft: gui_snapper clean up docstrings and spaces (2) 2020-04-07 18:12:06 +02:00