Commit Graph

75 Commits

Author SHA1 Message Date
Kacper Donat
651cefde4d Gui: Use getObject<T>() helpers in classes
This commit is generated using regex based find and replace:

```
s/[\w:]+_cast\s*<([^>]+)\*>\s*\(\s*getObject\(\s*\)\)/getObject<$1>/
s/[\w:]+_cast\s*<([^>]+)\*>\s*\(\s*([^)]*)\s*->\s*getObject\(\s*\)\)/$2->getObject<$1>()/
```

To regenerate if needed.
2024-12-06 18:29:39 +01:00
Benjamin Nauck
fdfb9fd2c6 Reuse Std_Delete shortcut instead of hardcoding Delete (#16682)
* Reuse Std_Delete shortcut in TaskBooleanParameters

* Reuse Std_Delete shortcut in TaskDressUpParameters

* Reuse Std_Delete shortcut in TaskLoftParameters

* Reuse Std_Delete shortcut in TaskPipeParameters

* Reuse Std_Delete shortcut in TaskSapeBinder

* Reuse Std_Delete shortcut in TaskTransformedParameters

* Reuse Std_Delete shortcut in TaskExtrudeParameters

* Reuse Std_Delete shortcut in TaskSections

* Reuse Std_Delete shortcut in MaterialSave

* Reuse Std_Delete shortcut in Array2D

* Reuse Std_Delete shortcut in TaskFemConstraint

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-09-23 10:53:39 -05:00
wwmayer
e98ffc3060 PartDesign: Prepare for clang-format (#16048)
* PartDesign: Prepare for clang-format

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-09-02 17:48:26 +02:00
wmayer
5731a27609 PD: Add template helper functions to safely access feature or view provider
In subclasses of TaskFeatureParameters use the new helper functions and check for null pointer. This fixes #15453
2024-07-18 13:40:08 +02:00
wmayer
351397e088 PD: Replace helper functions in subclasses of TaskDlgFeatureParameters with a template function 2024-07-18 00:02:07 +02:00
Syres916
a0331f2c80 [PartDesign] Revert #11357
See https://github.com/FreeCAD/FreeCAD/issues/11961#issuecomment-1889721739
2024-01-12 18:37:24 -06:00
bgbsww
f2d5e07b4e PartDesign: refresh body after pipe creation (#11357) 2023-11-16 12:58:39 -03:00
wmayer
9a1f8a11d6 PD: modernize C++: use range-based for loop 2023-08-16 21:54:56 -05:00
wmayer
141b2ecf0a Qt6: fix possible build failure with Qt 6.5
Forum thread: https://forum.freecad.org/viewtopic.php?p=692199#p692199
2023-07-20 08:58:56 -05:00
Chris Hennes
b03783f274 PD: Attempt to translate exceptions in dialogs
Relies on the exception text having been added to the translation database in a previous call to QT_TRANSLATE_NOOP, and put in the 'Exception' context.
2023-04-27 17:41:41 -05:00
Uwe
bdc704eaa0 [PD] revolve: remove unused code
- also come code style unification
2023-03-22 17:46:03 +01:00
wmayer
2a970b3045 clang: fix -Wunused-but-set-variable 2023-03-12 15:05:21 +01:00
wmayer
12ed13ddbe PD: move to new style connect() 2023-01-15 14:27:33 +01:00
berniev
2d4c5a4cfb Mod: use emplace_back 2022-08-05 10:36:16 +02:00
wmayer
88accdb421 PD: [skip ci] Fix several clazy issues:
* Maybe you meant to call base method instead [-Wclazy-skipped-base-method]
* Missing reference in range-for with non trivial type [-Wclazy-range-loop-reference]
* Mixing iterators with const_iterators [-Wclazy-strict-iterators]
* Unused QByteArray [-Wclazy-unused-non-trivial-variable]
* C++11 range-loop might detach Qt container (QList) [-Wclazy-range-loop-detach]
2022-07-25 13:40:19 +02:00
wmayer
9ef2470799 PD: Fix several coverity issues:
* CID 350558: Uninitialized pointer field
* CID 350554: Uninitialized pointer field
* CID 350589: Uninitialized pointer field
* CID 350608: Uninitialized pointer field
* CID 350544: Uncaught exception
* CID 350568: Uncaught exception
* CID 350603: Uncaught exception
* CID 350562: Unchecked dynamic_cast
* CID 350591: Unchecked dynamic_cast
* CID 350583: Unchecked dynamic_cast
* CID 350598: Unchecked dynamic_cast
2022-03-13 16:32:19 +01:00
Uwe
7c8031d356 [PD] Hole, Pipe and Revolution: remove unused includes 2022-02-19 18:47:26 +01:00
0penBrain
aed8864cd9 Modernize signal/slot connection for real :) 2022-02-08 17:51:36 +01:00
wmayer
a1a8de633c PD: fix small inconsistence, use forwared declaration 2022-01-14 12:22:16 +01:00
Ajinkya Dahale
b2e6f91c1d [PD] Use buttonToggled signal in PD pipe
Combines other button toggle methods/signals/slots involved.
2022-01-13 22:31:05 -05:00
Ajinkya Dahale
1296e2c417 [PD] Use Gui::ButtonGroup in TaskDlgPipeParameters 2022-01-13 22:31:05 -05:00
wmayer
ca5c799ce2 Gui: rename methods of SelectionObserver to clarify intention in client code 2021-12-07 14:17:07 +01:00
wmayer
ce88fa2052 PD: enable selection only on request and disable it after selecting an object 2021-12-07 13:06:48 +01:00
Uwe
625c84e34a [PD] allow to move sweep sections
Now that we have the feature that sweeps can have vertices as end or begin of a sweep, there is the need for the feature to move sections. For example vertices may only be the last section.
2021-11-29 00:13:23 +01:00
Ajinkya Dahale
71e70c876b [PD] Use PropertyLinkSubList for loft and sweep sections
This change is necessary since we restrict part-design features to only use
other features from the same body.
2021-11-20 21:37:14 +01:00
Uwe
0b3839f0f6 [PD] TaskDlgPipeParameters - refactor comments
update/refactor comments after today's changes
2021-11-12 00:44:35 +01:00
wmayer
126fadd2d6 PD: make sure to switch off Profile and Section highlighting when closing sweep dialog 2021-11-11 20:33:27 +01:00
wmayer
fb9a3eecff PD: change visibility handling of sweep to support undo/redo 2021-11-11 20:21:47 +01:00
Uwe
6069d48b6d [PD] fix sweep visibility bug
Currently:

    only sweep path is toggled correctly in its visibility, the profile is never shown
    the sections are always shown

This PR fixes this inconsistency reported here: https://forum.freecadweb.org/viewtopic.php?f=19&t=63544
2021-11-11 00:00:58 +01:00
Ajinkya Dahale
37df050d59 [PD] Clear other taskbox buttons in loft and pipe when one pressed 2021-11-10 17:59:45 +01:00
Ajinkya Dahale
314ff0053c [PD] Fixed loft and sweep breaking on section deletion
Item removal in `onDeleteSection()` was also clearing subname details so if one
of the remaining sections was a face this caused a failure.
2021-11-09 23:05:29 +01:00
Ajinkya Dahale
03a8ff7841 [PD] Support adding solid faces for loft and pipe sections
With these changes, one face per solid can be added as either the first
"profile" or subsequent sections in loft and pipe.

This commit depends on `App::PropertyXLinkSubList` preserving the order in which
sections are added.

A minor change this also adds is that when a solid's face is selected that face
is mentioned in the fields instead of the solid (eg `Box:Face1` instead of
`Box`).
2021-11-09 23:05:29 +01:00
wmayer
84274f5c80 PD: [skip ci] fix ambiguous shortcut overload in TaskDlgPipeParameters 2021-11-07 08:27:33 +01:00
wmayer
05f1634276 PD: [skip ci] fixes #0004139: Macro - SubtractivePipe attached path object issues after macro executed 2021-03-29 10:43:08 +02:00
wmayer
08de4809c4 PD: [skip ci] fixes #0004205: Bad behavior when entering manually PD/AdditivePipe path 2021-02-15 00:06:29 +01:00
donovaly
2834075d6a [PD] rename icons to match Wiki files
For the What#s this feature we need to have a uniform naming of the features and its icons. For some PD icons this is not the case and since we are in feature freeze, this is the right time to address this.
(I see the same is already done for Mesh.)
2021-02-11 12:47:25 +01:00
Chris Hennes
41a40c1c31 [PD] Catch Python exceptions in dtors (Coverity)
In some PartDesign task dialogs, the destructors call functions that may
throw exceptions. If that occurs and the exception is uncaught, this
will ususally end up terminating the program. This commit adds try-catch
blocks around each instance of that (identified by Coverity) and handles
the Python exception in the normal reporting workflow.
2021-02-08 21:30:22 +01:00
donovaly
2ac84872ec [PD] make pointers to the UI std::unique_ptr
Same as PR #4293, just for PartDesign

as noted in https://github.com/FreeCAD/FreeCAD/pull/4271#discussion_r554673632
the pointer to the UI should be a unique pointer.

This PR does this for all PartDesign dialogs that don't already use a unique_ptr.
2021-02-05 18:01:57 +01:00
wmayer
b9e5bce0f0 PD: improve reference highlighting of a pipe
This change allows to highlight the spline, auxiliary spine, profile and sections of a pipe.
This gives the user a much better feedback of what external shapes are already used to build the pipe
2020-09-17 16:19:38 +02:00
wmayer
a3fda6f9ed PD: [skip ci] fixes for pipe task panel
+ Add/Remove are checkable buttons so if user unchecks it then disable highlighting of spine
+ Avoid superfluous char* -> QString conversion
2020-09-17 14:04:36 +02:00
wmayer
2b676020d2 PD: fixes for pipe task panel
+ fix Qt4 build failure
+ fix handling of adding items to spine/auxiliary spine/sections to allow to remove them again
+ QListWidget::takeItem() returns a pointer to the removed item. So a previous call of QListWidget::item() is superfluous
2020-09-17 11:35:41 +02:00
donovaly
5d96f01cf7 [PD] add context menus to sweep Dialog
- elements in the list of edges/spines/sections can now be deleted by pressing DEL and there is a context menu for this action

see https://forum.freecadweb.org/viewtopic.php?f=19&t=50222&p=431021#p431021
2020-09-17 00:45:43 +02:00
wmayer
1c730a7f00 PD: do not use active document in task dialogs because this is error-prone 2020-09-15 13:21:32 +02:00
mwganson
74e4a3e976 [Part Design] allow for preselecting loft sections and pipe spines prior to invoking command 2020-09-15 10:48:09 +02:00
wmayer
b480a207c0 Coverity: Uncaught exception 2020-07-20 17:34:29 +02:00
wmayer
9a7f97c827 Fix usage of Reference dialog:
+ fix memory leak by using QDialog on the stack
+ open a transaction where needed when making a copy to avoid mess with undo/redo
+ set proper title and use main window as parent
+ replace class name Dialog with PartDesignGui::DlgReference
2018-12-03 17:54:05 +01:00
wmayer
7acdb56d92 Replace Base::Exception with appropriate subclass 2018-11-14 19:28:00 +01:00
wmayer
198b047bdd clean-up work in TaskPipeOrientation 2018-09-20 17:47:36 +02:00
wmayer
14b8579a62 fixes #0003599: PartDesign Additive and Subtractive Pipe features don't allow changing sections after creation 2018-09-20 17:17:41 +02:00
wmayer
83c40da2a5 issue #0003599: PartDesign Additive and Subtractive Pipe features don't allow changing sections after creation 2018-09-20 15:14:33 +02:00