[Part] allow to edit helices via a dialog

+ add class ViewProviderPrimitive to avoid to re-implement setEdit/unsetEdit methods for each sub-class separately
+ avoid using global variables
+ when editing a feature directly pass it to the dialogs
+ when editing a feature then do not use active document as this could point to the wrong object
+ fix undo/redo message
+ re-add '3D View' button to location dialog
This commit is contained in:
wmayer
2020-11-06 19:59:14 +01:00
parent ca5d4d5f72
commit 677ce69873
32 changed files with 407 additions and 248 deletions

View File

@@ -30,6 +30,7 @@
#include <Gui/Application.h>
#include <Gui/Control.h>
#include <Mod/Part/App/PrimitiveFeature.h>
#include "DlgPrimitives.h"
#include "ViewProviderHelixParametric.h"
@@ -67,19 +68,13 @@ void ViewProviderHelixParametric::setupContextMenu(QMenu* menu, QObject* receive
ViewProviderSpline::setupContextMenu(menu, receiver, member);
}
void ViewProviderHelixParametric::updateData(const App::Property* prop)
{
PartGui::ViewProviderSpline::updateData(prop);
}
bool ViewProviderHelixParametric::setEdit(int ModNum)
{
if (ModNum == ViewProvider::Default) {
if (Gui::Control().activeDialog())
return false;
auto ObjectName = getObject()->getNameInDocument();
PartGui::TaskPrimitivesEdit* dlg
= new PartGui::TaskPrimitivesEdit(PartGui::DlgPrimitives::PrimitiveType::Helix, ObjectName);
= new PartGui::TaskPrimitivesEdit(dynamic_cast<Part::Primitive*>(getObject()));
Gui::Control().showDialog(dlg);
return true;
}