PartDesign/Gui: make Transformed ViewProviders use common code with other
This commit is contained in:
parent
9cba6c48ea
commit
1b1bd5f17e
|
@ -28,39 +28,11 @@
|
|||
|
||||
#include "ViewProviderLinearPattern.h"
|
||||
#include "TaskLinearPatternParameters.h"
|
||||
#include <Mod/PartDesign/App/FeatureLinearPattern.h>
|
||||
#include <Mod/Sketcher/App/SketchObject.h>
|
||||
#include <Gui/Control.h>
|
||||
#include <Gui/Command.h>
|
||||
#include <Gui/Application.h>
|
||||
|
||||
using namespace PartDesignGui;
|
||||
|
||||
PROPERTY_SOURCE(PartDesignGui::ViewProviderLinearPattern,PartDesignGui::ViewProviderTransformed)
|
||||
|
||||
bool ViewProviderLinearPattern::setEdit(int ModNum)
|
||||
{
|
||||
ViewProviderTransformed::setEdit(ModNum);
|
||||
|
||||
if (ModNum == ViewProvider::Default ) {
|
||||
TaskDlgLinearPatternParameters *linearpatternDlg = NULL;
|
||||
|
||||
if (checkDlgOpen(linearpatternDlg)) {
|
||||
// always change to PartDesign WB, remember where we come from
|
||||
oldWb = Gui::Command::assureWorkbench("PartDesignWorkbench");
|
||||
|
||||
// start the edit dialog
|
||||
if (linearpatternDlg)
|
||||
Gui::Control().showDialog(linearpatternDlg);
|
||||
else
|
||||
Gui::Control().showDialog(new TaskDlgLinearPatternParameters(this));
|
||||
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
return ViewProviderPart::setEdit(ModNum);
|
||||
}
|
||||
TaskDlgFeatureParameters *ViewProviderLinearPattern::getEditDialog() {
|
||||
return new TaskDlgLinearPatternParameters (this);
|
||||
}
|
||||
|
|
|
@ -37,7 +37,8 @@ public:
|
|||
sPixmap = "PartDesign_LinearPattern.svg"; }
|
||||
|
||||
protected:
|
||||
virtual bool setEdit(int ModNum);
|
||||
/// Returns a newly create dialog for the part to be placed in the task view
|
||||
virtual TaskDlgFeatureParameters *getEditDialog();
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -28,39 +28,11 @@
|
|||
|
||||
#include "ViewProviderMirrored.h"
|
||||
#include "TaskMirroredParameters.h"
|
||||
#include <Mod/PartDesign/App/FeatureMirrored.h>
|
||||
#include <Mod/Sketcher/App/SketchObject.h>
|
||||
#include <Gui/Control.h>
|
||||
#include <Gui/Command.h>
|
||||
#include <Gui/Application.h>
|
||||
|
||||
using namespace PartDesignGui;
|
||||
|
||||
PROPERTY_SOURCE(PartDesignGui::ViewProviderMirrored,PartDesignGui::ViewProviderTransformed)
|
||||
|
||||
bool ViewProviderMirrored::setEdit(int ModNum)
|
||||
{
|
||||
ViewProviderTransformed::setEdit(ModNum);
|
||||
|
||||
if (ModNum == ViewProvider::Default ) {
|
||||
TaskDlgMirroredParameters *mirroredDlg = NULL;
|
||||
|
||||
if (checkDlgOpen(mirroredDlg)) {
|
||||
// always change to PartDesign WB, remember where we come from
|
||||
oldWb = Gui::Command::assureWorkbench("PartDesignWorkbench");
|
||||
|
||||
// start the edit dialog
|
||||
if (mirroredDlg)
|
||||
Gui::Control().showDialog(mirroredDlg);
|
||||
else
|
||||
Gui::Control().showDialog(new TaskDlgMirroredParameters(this));
|
||||
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
return ViewProviderPart::setEdit(ModNum);
|
||||
}
|
||||
TaskDlgFeatureParameters *ViewProviderMirrored::getEditDialog() {
|
||||
return new TaskDlgMirroredParameters (this);
|
||||
}
|
||||
|
|
|
@ -38,7 +38,8 @@ public:
|
|||
}
|
||||
|
||||
protected:
|
||||
virtual bool setEdit(int ModNum);
|
||||
/// Returns a newly create dialog for the part to be placed in the task view
|
||||
virtual TaskDlgFeatureParameters *getEditDialog();
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -29,40 +29,14 @@
|
|||
#include "ViewProviderMultiTransform.h"
|
||||
#include "TaskMultiTransformParameters.h"
|
||||
#include <Mod/PartDesign/App/FeatureMultiTransform.h>
|
||||
#include <Mod/Sketcher/App/SketchObject.h>
|
||||
#include <Gui/Control.h>
|
||||
#include <Gui/Command.h>
|
||||
#include <Gui/Application.h>
|
||||
|
||||
using namespace PartDesignGui;
|
||||
|
||||
PROPERTY_SOURCE(PartDesignGui::ViewProviderMultiTransform,PartDesignGui::ViewProviderTransformed)
|
||||
|
||||
bool ViewProviderMultiTransform::setEdit(int ModNum)
|
||||
{
|
||||
ViewProviderTransformed::setEdit(ModNum);
|
||||
|
||||
if (ModNum == ViewProvider::Default ) {
|
||||
TaskDlgMultiTransformParameters *multitransformDlg = NULL;
|
||||
|
||||
if (checkDlgOpen(multitransformDlg)) {
|
||||
// always change to PartDesign WB, remember where we come from
|
||||
oldWb = Gui::Command::assureWorkbench("PartDesignWorkbench");
|
||||
|
||||
// start the edit dialog
|
||||
if (multitransformDlg)
|
||||
Gui::Control().showDialog(multitransformDlg);
|
||||
else
|
||||
Gui::Control().showDialog(new TaskDlgMultiTransformParameters(this));
|
||||
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
return ViewProviderPart::setEdit(ModNum);
|
||||
}
|
||||
TaskDlgFeatureParameters *ViewProviderMultiTransform::getEditDialog() {
|
||||
return new TaskDlgMultiTransformParameters (this);
|
||||
}
|
||||
|
||||
std::vector<App::DocumentObject*> ViewProviderMultiTransform::claimChildren(void) const
|
||||
|
@ -80,7 +54,7 @@ bool ViewProviderMultiTransform::onDelete(const std::vector<std::string> &svec)
|
|||
PartDesign::MultiTransform* pcMultiTransform = static_cast<PartDesign::MultiTransform*>(getObject());
|
||||
std::vector<App::DocumentObject*> transformFeatures = pcMultiTransform->Transformations.getValues();
|
||||
|
||||
// if abort command deleted the object the transformed features must be deleted, too
|
||||
// if the multitransform object was deleted the transformed features must be deleted, too
|
||||
for (std::vector<App::DocumentObject*>::const_iterator it = transformFeatures.begin(); it != transformFeatures.end(); ++it)
|
||||
{
|
||||
if ((*it) != NULL)
|
||||
|
|
|
@ -41,7 +41,9 @@ public:
|
|||
virtual bool onDelete(const std::vector<std::string> &);
|
||||
|
||||
protected:
|
||||
virtual bool setEdit(int ModNum);
|
||||
/// Returns a newly create dialog for the part to be placed in the task view
|
||||
virtual TaskDlgFeatureParameters *getEditDialog();
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -28,39 +28,11 @@
|
|||
|
||||
#include "ViewProviderPolarPattern.h"
|
||||
#include "TaskPolarPatternParameters.h"
|
||||
#include <Mod/PartDesign/App/FeaturePolarPattern.h>
|
||||
#include <Mod/Sketcher/App/SketchObject.h>
|
||||
#include <Gui/Control.h>
|
||||
#include <Gui/Command.h>
|
||||
#include <Gui/Application.h>
|
||||
|
||||
using namespace PartDesignGui;
|
||||
|
||||
PROPERTY_SOURCE(PartDesignGui::ViewProviderPolarPattern,PartDesignGui::ViewProviderTransformed)
|
||||
|
||||
bool ViewProviderPolarPattern::setEdit(int ModNum)
|
||||
{
|
||||
ViewProviderTransformed::setEdit(ModNum);
|
||||
|
||||
if (ModNum == ViewProvider::Default ) {
|
||||
TaskDlgPolarPatternParameters *polarpatternDlg = NULL;
|
||||
|
||||
if (checkDlgOpen(polarpatternDlg)) {
|
||||
// always change to PartDesign WB, remember where we come from
|
||||
oldWb = Gui::Command::assureWorkbench("PartDesignWorkbench");
|
||||
|
||||
// start the edit dialog
|
||||
if (polarpatternDlg)
|
||||
Gui::Control().showDialog(polarpatternDlg);
|
||||
else
|
||||
Gui::Control().showDialog(new TaskDlgPolarPatternParameters(this));
|
||||
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
return ViewProviderPart::setEdit(ModNum);
|
||||
}
|
||||
TaskDlgFeatureParameters *ViewProviderPolarPattern::getEditDialog() {
|
||||
return new TaskDlgPolarPatternParameters (this);
|
||||
}
|
||||
|
|
|
@ -37,7 +37,8 @@ public:
|
|||
sPixmap = "PartDesign_PolarPattern.svg"; }
|
||||
|
||||
protected:
|
||||
virtual bool setEdit(int ModNum);
|
||||
/// Returns a newly create dialog for the part to be placed in the task view
|
||||
virtual TaskDlgFeatureParameters *getEditDialog();
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -28,39 +28,11 @@
|
|||
|
||||
#include "ViewProviderScaled.h"
|
||||
#include "TaskScaledParameters.h"
|
||||
#include <Mod/PartDesign/App/FeatureScaled.h>
|
||||
#include <Mod/Sketcher/App/SketchObject.h>
|
||||
#include <Gui/Control.h>
|
||||
#include <Gui/Command.h>
|
||||
#include <Gui/Application.h>
|
||||
|
||||
using namespace PartDesignGui;
|
||||
|
||||
PROPERTY_SOURCE(PartDesignGui::ViewProviderScaled,PartDesignGui::ViewProviderTransformed)
|
||||
|
||||
bool ViewProviderScaled::setEdit(int ModNum)
|
||||
{
|
||||
ViewProviderTransformed::setEdit(ModNum);
|
||||
|
||||
if (ModNum == ViewProvider::Default ) {
|
||||
TaskDlgScaledParameters *scaledDlg = NULL;
|
||||
|
||||
if (checkDlgOpen(scaledDlg)) {
|
||||
// always change to PartDesign WB, remember where we come from
|
||||
oldWb = Gui::Command::assureWorkbench("PartDesignWorkbench");
|
||||
|
||||
// start the edit dialog
|
||||
if (scaledDlg)
|
||||
Gui::Control().showDialog(scaledDlg);
|
||||
else
|
||||
Gui::Control().showDialog(new TaskDlgScaledParameters(this));
|
||||
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
return ViewProviderPart::setEdit(ModNum);
|
||||
}
|
||||
TaskDlgFeatureParameters *ViewProviderScaled::getEditDialog() {
|
||||
return new TaskDlgScaledParameters (this);
|
||||
}
|
||||
|
|
|
@ -37,7 +37,8 @@ public:
|
|||
sPixmap = "PartDesign_Scaled.svg"; }
|
||||
|
||||
protected:
|
||||
virtual bool setEdit(int ModNum);
|
||||
/// Returns a newly create dialog for the part to be placed in the task view
|
||||
virtual TaskDlgFeatureParameters *getEditDialog();
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -109,7 +109,8 @@ bool ViewProviderTransformed::setEdit(int ModNum)
|
|||
pcRoot->addChild(pcRejectedRoot);
|
||||
|
||||
recomputeFeature();
|
||||
return true;
|
||||
|
||||
return ViewProvider::setEdit(ModNum);
|
||||
}
|
||||
|
||||
void ViewProviderTransformed::unsetEdit(int ModNum)
|
||||
|
@ -136,36 +137,6 @@ bool ViewProviderTransformed::onDelete(const std::vector<std::string> &s)
|
|||
return ViewProvider::onDelete(s);
|
||||
}
|
||||
|
||||
const bool ViewProviderTransformed::checkDlgOpen(TaskDlgTransformedParameters* transformedDlg) {
|
||||
// When double-clicking on the item for this feature the
|
||||
// object unsets and sets its edit mode without closing
|
||||
// the task panel
|
||||
Gui::TaskView::TaskDialog *dlg = Gui::Control().activeDialog();
|
||||
transformedDlg = qobject_cast<TaskDlgTransformedParameters *>(dlg);
|
||||
|
||||
if ((transformedDlg != NULL) && (transformedDlg->getTransformedView() != this))
|
||||
transformedDlg = NULL; // another transformed feature left open its task panel
|
||||
|
||||
if ((dlg != NULL) && (transformedDlg == NULL)) {
|
||||
QMessageBox msgBox;
|
||||
msgBox.setText(QObject::tr("A dialog is already open in the task panel"));
|
||||
msgBox.setInformativeText(QObject::tr("Do you want to close this dialog?"));
|
||||
msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
|
||||
msgBox.setDefaultButton(QMessageBox::Yes);
|
||||
int ret = msgBox.exec();
|
||||
if (ret == QMessageBox::Yes)
|
||||
Gui::Control().reject();
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
// clear the selection (convenience)
|
||||
Gui::Selection().clearSelection();
|
||||
|
||||
// Continue (usually in virtual method setEdit())
|
||||
return true;
|
||||
}
|
||||
|
||||
void ViewProviderTransformed::recomputeFeature(void)
|
||||
{
|
||||
PartDesign::Transformed* pcTransformed = static_cast<PartDesign::Transformed*>(getObject());
|
||||
|
|
Loading…
Reference in New Issue
Block a user