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 "ViewProviderLinearPattern.h"
|
||||||
#include "TaskLinearPatternParameters.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;
|
using namespace PartDesignGui;
|
||||||
|
|
||||||
PROPERTY_SOURCE(PartDesignGui::ViewProviderLinearPattern,PartDesignGui::ViewProviderTransformed)
|
PROPERTY_SOURCE(PartDesignGui::ViewProviderLinearPattern,PartDesignGui::ViewProviderTransformed)
|
||||||
|
|
||||||
bool ViewProviderLinearPattern::setEdit(int ModNum)
|
TaskDlgFeatureParameters *ViewProviderLinearPattern::getEditDialog() {
|
||||||
{
|
return new TaskDlgLinearPatternParameters (this);
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,7 +37,8 @@ public:
|
||||||
sPixmap = "PartDesign_LinearPattern.svg"; }
|
sPixmap = "PartDesign_LinearPattern.svg"; }
|
||||||
|
|
||||||
protected:
|
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 "ViewProviderMirrored.h"
|
||||||
#include "TaskMirroredParameters.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;
|
using namespace PartDesignGui;
|
||||||
|
|
||||||
PROPERTY_SOURCE(PartDesignGui::ViewProviderMirrored,PartDesignGui::ViewProviderTransformed)
|
PROPERTY_SOURCE(PartDesignGui::ViewProviderMirrored,PartDesignGui::ViewProviderTransformed)
|
||||||
|
|
||||||
bool ViewProviderMirrored::setEdit(int ModNum)
|
TaskDlgFeatureParameters *ViewProviderMirrored::getEditDialog() {
|
||||||
{
|
return new TaskDlgMirroredParameters (this);
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,8 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
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 "ViewProviderMultiTransform.h"
|
||||||
#include "TaskMultiTransformParameters.h"
|
#include "TaskMultiTransformParameters.h"
|
||||||
#include <Mod/PartDesign/App/FeatureMultiTransform.h>
|
#include <Mod/PartDesign/App/FeatureMultiTransform.h>
|
||||||
#include <Mod/Sketcher/App/SketchObject.h>
|
|
||||||
#include <Gui/Control.h>
|
|
||||||
#include <Gui/Command.h>
|
#include <Gui/Command.h>
|
||||||
#include <Gui/Application.h>
|
|
||||||
|
|
||||||
using namespace PartDesignGui;
|
using namespace PartDesignGui;
|
||||||
|
|
||||||
PROPERTY_SOURCE(PartDesignGui::ViewProviderMultiTransform,PartDesignGui::ViewProviderTransformed)
|
PROPERTY_SOURCE(PartDesignGui::ViewProviderMultiTransform,PartDesignGui::ViewProviderTransformed)
|
||||||
|
|
||||||
bool ViewProviderMultiTransform::setEdit(int ModNum)
|
TaskDlgFeatureParameters *ViewProviderMultiTransform::getEditDialog() {
|
||||||
{
|
return new TaskDlgMultiTransformParameters (this);
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<App::DocumentObject*> ViewProviderMultiTransform::claimChildren(void) const
|
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());
|
PartDesign::MultiTransform* pcMultiTransform = static_cast<PartDesign::MultiTransform*>(getObject());
|
||||||
std::vector<App::DocumentObject*> transformFeatures = pcMultiTransform->Transformations.getValues();
|
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)
|
for (std::vector<App::DocumentObject*>::const_iterator it = transformFeatures.begin(); it != transformFeatures.end(); ++it)
|
||||||
{
|
{
|
||||||
if ((*it) != NULL)
|
if ((*it) != NULL)
|
||||||
|
|
|
@ -41,7 +41,9 @@ public:
|
||||||
virtual bool onDelete(const std::vector<std::string> &);
|
virtual bool onDelete(const std::vector<std::string> &);
|
||||||
|
|
||||||
protected:
|
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 "ViewProviderPolarPattern.h"
|
||||||
#include "TaskPolarPatternParameters.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;
|
using namespace PartDesignGui;
|
||||||
|
|
||||||
PROPERTY_SOURCE(PartDesignGui::ViewProviderPolarPattern,PartDesignGui::ViewProviderTransformed)
|
PROPERTY_SOURCE(PartDesignGui::ViewProviderPolarPattern,PartDesignGui::ViewProviderTransformed)
|
||||||
|
|
||||||
bool ViewProviderPolarPattern::setEdit(int ModNum)
|
TaskDlgFeatureParameters *ViewProviderPolarPattern::getEditDialog() {
|
||||||
{
|
return new TaskDlgPolarPatternParameters (this);
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,7 +37,8 @@ public:
|
||||||
sPixmap = "PartDesign_PolarPattern.svg"; }
|
sPixmap = "PartDesign_PolarPattern.svg"; }
|
||||||
|
|
||||||
protected:
|
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 "ViewProviderScaled.h"
|
||||||
#include "TaskScaledParameters.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;
|
using namespace PartDesignGui;
|
||||||
|
|
||||||
PROPERTY_SOURCE(PartDesignGui::ViewProviderScaled,PartDesignGui::ViewProviderTransformed)
|
PROPERTY_SOURCE(PartDesignGui::ViewProviderScaled,PartDesignGui::ViewProviderTransformed)
|
||||||
|
|
||||||
bool ViewProviderScaled::setEdit(int ModNum)
|
TaskDlgFeatureParameters *ViewProviderScaled::getEditDialog() {
|
||||||
{
|
return new TaskDlgScaledParameters (this);
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,7 +37,8 @@ public:
|
||||||
sPixmap = "PartDesign_Scaled.svg"; }
|
sPixmap = "PartDesign_Scaled.svg"; }
|
||||||
|
|
||||||
protected:
|
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);
|
pcRoot->addChild(pcRejectedRoot);
|
||||||
|
|
||||||
recomputeFeature();
|
recomputeFeature();
|
||||||
return true;
|
|
||||||
|
return ViewProvider::setEdit(ModNum);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ViewProviderTransformed::unsetEdit(int ModNum)
|
void ViewProviderTransformed::unsetEdit(int ModNum)
|
||||||
|
@ -136,36 +137,6 @@ bool ViewProviderTransformed::onDelete(const std::vector<std::string> &s)
|
||||||
return ViewProvider::onDelete(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)
|
void ViewProviderTransformed::recomputeFeature(void)
|
||||||
{
|
{
|
||||||
PartDesign::Transformed* pcTransformed = static_cast<PartDesign::Transformed*>(getObject());
|
PartDesign::Transformed* pcTransformed = static_cast<PartDesign::Transformed*>(getObject());
|
||||||
|
|
Loading…
Reference in New Issue
Block a user