Commit Graph

303 Commits

Author SHA1 Message Date
Roy-043
3c3cf74cb0 Draft: DraftGui.py fix updateSnapper and implement display_point_active
* The updateSnapper function did not work properly.
* Added display_point_active attribute to prevent the displayPoint function from triggering the changeXValue etc. functions. This would lead to a loss of accuracy as the rounded displayed values would be read from the inputboxes.
2025-01-22 10:03:36 +01:00
Roy-043
b055924bd7 Changed one tooltip as requested 2025-01-21 15:17:03 +01:00
Roy-043
e79beed491 Draft: DraftGui.py improve some tooltips
Avoid 'new point' and 'next point' in tooltips as this does not always apply.
2025-01-20 20:53:25 +01:00
Roy-043
2ee620ab42 Draft: make move, rotate and scale commands link-aware (#18795)
* Draft: make move, rotate and scale commands link-aware

Fixes #12836.
Fixes #15681.

These changes are presented as a single ('big') PR because the mentioned commands have several similarities. Working on them seperately would have made less sense.

The commands have been made 'link-aware' meaning they can now handle Links and objects in linked containers.

This required several changes in the following main files. For each command all options are handled by a single function now (the `move`, `rotate` and `scale` functions). This was the only reasonable solution to correctly handle nested placements. As a result there is no longer a need to build very complex 'cmd' strings in the gui_*.py files (which is a good thing IMO).

Main files:

* move.py
* rotate.py
* scale.py
* gui_move.py
* gui_rotate.py
* gui_scale.py
* gui_trackers.py

The following files have also been updated:

* Draft.py: Imports updated.
* DraftGui.py: If `CopyMode` is changed the ghosts have to be updated. The move and rotate commands now also show previews of movable children. But since those are not copied they should be removed from the ghosts if `CopyMode` is changed to `True`.
* utils.py: Some helper functions have been added. An existing helper function (only used internally) has been renamed.
* gui_utils.py: The `select` function has been updated to accept a list of tuples to allow the reselection of nested objects.
* clone.py: A new property `ForceCompound`, necessary for non-uniform scaling, has been added.
* join.py: The `join_wires` function now returns the resultant wire objects.
* task_scale.py: Updated to allow negative scale factors. Support for `SubelementMode` preference added.
* dimension.py: `transform` methods added.
* layer.py: `get_layer` function added.
* svg.py: Updated to use `get_layer`.
* view_text.py: Instead of two added `coin.SoTransform()` nodes the main transform node is used instead. This was done so that ghosts of Draft Texts can be handled properly without requiring dedicated code in gui_trackers.py.

Notes:

* Support for "App::Annotation" is limited. Only their `Position` is handled (by the move and rotate commands).
* Support for "Image::ImagePlane" has been removed from the scale command. The object has its own calibrate feature (see https://wiki.freecad.org/Std_Import).
* Copies and clones are always created in the global space.

* Fix several unit test issues.

* Reset value that was changed while testing

* Rebase and update test_modification.py

* Reintroduce scaling of image planes
2025-01-20 18:23:36 +01:00
Roy-043
86a7cdd94c Draft: fix selection for FacebinderTaskPanel
See:
https://forum.freecad.org/viewtopic.php?t=93682
2025-01-08 14:36:07 +01:00
Roy-043
f4a36f31e9 Draft: fix focus behavior of radius input
Fixes #16249.

The input did receive the focus, but the existing value was not selected.

The circle, arc, trim and offset tools had a related issue. The whole radius/distance value, including the unit string, was selected, instead of just the numerical portion.
2024-11-26 16:48:35 +01:00
Roy-043
3f15242ad1 Draft: fix tray construction mode button for Light and Dark themes (#17886)
Fixes #17869.
2024-11-16 18:04:26 +01:00
Roy-043
1dd4fd636c More logical implementation of the fix. 2024-10-07 14:58:36 +02:00
Roy-043
6ccca8b9ad Draft: Stop draftToolBar.escape() executing multiple times
Fixes #17027.

The `DraftTaskPanel.reject()` function can be called multiple times if Esc is pressed during a fast mouse move. We need to prevent multiple calls to `draftToolBar.escape()` as this will lead to multiple calls to `gui_utils.end_all_events()` which results in a crash.
2024-10-07 14:58:36 +02:00
Yorik van Havre
5c38080296 Draft: Fixed restrained movement - Fixes #16386 2024-09-13 13:20:45 -06:00
Kacper Donat
e04b28e66d Gui: Use our own ToolBar class in all places 2024-06-25 11:39:54 +02:00
Martin Rodriguez Reboredo
51987dc1ab Fixups with Qt6 enums (#13611)
* Python PySide enums to C++ converter

* Python IntFlags to C++ int in getStandardButtons

* Remove int conversion in mods Python sources
2024-05-06 18:02:18 +02:00
wwmayer
dd9da969e9 PySide6: Fixes #13533: QSvgWidget is not a child of QtSvg in PySide6 (#13554)
* Create a compatibility module QtSvgWidgets.py to handle PySide2 & PySide6
* In the Arch and Material modules use the QtSvgWidgets module
* Since Qt6 the method QFont.setWeight() doesn't accept an int any more but requires an enum. Since the call of QFont.setBold(True) sets
  a weight of 75 the extra calls of QFont.setWeight(75) can be safely removed

Co-authored-by: Adrián Insaurralde Avalos <36372335+adrianinsaval@users.noreply.github.com>
2024-04-22 18:35:33 -04:00
Roy-043
6ad75fb315 Draft: Fix error when deleting first digit of input
Fixes #13150.
2024-04-19 19:16:13 +02:00
Chris Hennes
bf6a209c22 Fix missing translations in task panel (#12738)
* Draft: Add missing translation to task panel

* PD: Add missing translation to task panel
2024-03-11 18:10:42 +01:00
Yorik van Havre
9d7682c01f Draft: Introduce mouse delay (#12624)
* Draft: Introduce mouse delay - fixes #11807

* Draft: set default mouse delay to 1
2024-03-11 11:54:07 -05:00
Ladislav Michl
839fb17649 Draft: Use widgets from QtWidgets 2024-01-25 14:27:38 +01:00
Roy-043
c155edcd87 Draft: DraftGui.py make type of self.facecolor consistent
Since V0.19 self.facecolor had two types: integer (initial value) or QColor. With this PR it is again always a QColor.
2024-01-19 18:31:11 +01:00
Roy-043
744ef19866 Draft: Task panel checkboxes were repositioned by accident
In a previous PR of mine I have reorganized some lines of code in DraftGui.py without realizing that this would reposition checkboxes. This PR fixes that.
2024-01-17 11:00:40 +01:00
Roy-043
8d8f429d89 Draft: improve checkSpecialChars in DraftGui.py 2023-12-23 10:33:54 +01:00
Roy-043
16e5835aa6 Draft: implement new get_param functions (step 4)
See #11677
2023-12-13 19:39:35 +01:00
Roy-043
3aa08c96ea Draft: use consistent is-number string in DraftGui.py 2023-11-25 15:59:29 +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
6ac062f8fb Draft: make in-command shortcuts non-global
Fixes #8329.
2023-11-17 12:57:56 +01:00
Roy-043
7a05e9809b Draft: minor updates related to precision pref 2023-11-17 09:49:01 +01:00
Roy-043
65ec16341d Draft: prefs: remove copymode, useSupport no longer via UI
This PR removes the copymode (Global copy mode) preference.

Forum topic:
https://forum.freecad.org/viewtopic.php?t=82679

Additionally useSupport is removed from preferences-draft.ui, turning it into a fine-tuning preference. Use of this feature is rare and may not be supported in the future. No need to present this preference to new users in the UI.

Forum topic:
https://forum.freecad.org/viewtopic.php?t=80689
2023-11-16 11:40:23 +01:00
Roy-043
2335c6beff Draft: Updates related to the PlaneGui class
Related issue:
#5603.
2023-10-18 09:50:50 +02:00
sliptonic
9f49202dc3 Merge pull request #10230 from chennes/draftTranslateDraftAxisLabels
Draft: translate draft axis labels
2023-08-21 11:10:25 -05:00
Chris Hennes
fcd622393a Draft: Translate label type combobox (#10228) 2023-08-17 15:36:37 +02:00
Chris Hennes
ddaa34f0fc Draft: Translate Dimension and axis labels 2023-08-14 08:14:32 -07: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
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
mosfet80
e9c1a1600a [Draft] Remove obsolete code related to Drawing WB
* [Draft] Remove obsolete code related to Drawing WB




remove unused elif

* [Draft] Remove obsolete code related to the Drawing WB

* Update preferences-draftvisual.ui

Also remove the template label.

* Update utils.py

Remove reference to "template"

* Remove Draft_Drawing.svg from Draft.qrc

---------

Co-authored-by: Roy-043 <info@b-k-g.nl>
Co-authored-by: Roy-043 <70520633+Roy-043@users.noreply.github.com>
2023-04-03 16:36:23 +02:00
Roy-043
5e8ec9daf7 [Draft] small DraftGui.py cleanup (#9108) 2023-03-28 23:54:00 +02:00
Roy-043
b5ade2c085 [Draft] Remove obsolete decode code (#9106) 2023-03-28 21:03:33 +02:00
Roy-043
a632498875 [Draft] Remove obsolete ShapeString code from DraftGui.py (#9102) 2023-03-28 17:26:14 +02:00
Hannu Koivisto
e5ce7e763d [Draft] Mitigate crash in Draft_Edit (#8749) (#8750)
This mitigates the crash reported in issue #8749.  The crash happens when
using Draft_Edit and using keyboard to enter a coordinate in Edit node
dialog.  This change partially restores behaviour before commit b45258b,
after which FreeCADGui.Control.closeDialog and showDialog calls during
execution of DraftToolBar.editUi are no longer made using the todo.delay
mechanism.  The crash can still be triggered by artificially slowing down key
event processing, so this is not a proper fix, just a mitigation.
2023-03-11 17:44:04 +01:00
Roy-043
1e03fddb67 Draft: housekeeping: remove obsolete code (uiMode and DraftGui.py) (#8327) 2023-02-02 23:24:27 +01:00
Roy-043
9351bbe7bf Draft: Escape should not switch off continue mode 2022-10-15 12:14:51 +02:00
Roy-043
25ee38495e Draft: Improve Draft_Edit context menus 2022-09-26 10:03:50 +02:00
Roy-043
c142e1ad62 Draft: Improve In-Command-shortcut Undo implementation 2022-08-13 14:10:43 +02:00
Yorik van Havre
367ce63a8a Draft: Enabled shortcut for undo segment - fixes #6181
That shortcut had apparently been left out last time the system was recoded..
I used the default shortcut '/' because Ctrl doesn't really work with the
current system, and Z is already taken
2022-08-04 17:40:05 +02:00
luzpaz
95070bded4 Draft: Fix 'testing inequality to None' syntax (#7275)
* Draft: Fix 'testing inequality to None' syntax 

- Substitute `is not None` for `!= None`
- Trim trailing whitespace on touched files
2022-07-30 00:26:56 +02:00
Peter Marquardt
a1c8380be3 Draft: fix spacing of ToolTip text 2022-07-12 02:59:30 +02:00
Roy-043
732489de2d Draft: Fix default fillmode in DraftGui.py 2022-06-28 15:42:28 +02:00
Roy-043
cd6f894986 Draft: Fix Angle Lock
Fix problem with self.angle = None.
2022-04-21 12:17:42 +02:00
Roy-043
b830f77215 Draft: Fix Angle Lock for non-XY workingplane 2022-03-10 17:44:38 +01:00
Roy
359f9d7886 Draft: Fix several translation issues 2022-01-28 14:01:42 -06:00
Roy
c7da560d39 Draft: fix task panel related issues
This PR fixes several task panel related issues for Draft modifier commands.
2022-01-15 18:23:05 +01:00
marioalexis
5acf2f5340 Draft: Use super() to call base class methods 2022-01-07 22:24:21 +01:00