PartDesign: fix small issue with embedded TaskPanels in MultiTransform
This commit is contained in:
parent
9f452bd6ca
commit
afc794894f
|
@ -66,15 +66,18 @@ TaskLinearPatternParameters::TaskLinearPatternParameters(ViewProviderTransformed
|
|||
setupUI();
|
||||
}
|
||||
|
||||
TaskLinearPatternParameters::TaskLinearPatternParameters(QWidget *parent, TaskMultiTransformParameters *parentTask)
|
||||
: TaskTransformedParameters(parent, parentTask)
|
||||
TaskLinearPatternParameters::TaskLinearPatternParameters(TaskMultiTransformParameters *parentTask, QLayout *layout)
|
||||
: TaskTransformedParameters(parentTask)
|
||||
{
|
||||
proxy = new QWidget(parentTask);
|
||||
ui = new Ui_TaskLinearPatternParameters();
|
||||
ui->setupUi(parent);
|
||||
ui->setupUi(proxy);
|
||||
connect(ui->buttonOK, SIGNAL(pressed()),
|
||||
parentTask, SLOT(onSubTaskButtonOK()));
|
||||
QMetaObject::connectSlotsByName(this);
|
||||
|
||||
layout->addWidget(proxy);
|
||||
|
||||
ui->buttonOK->setEnabled(true);
|
||||
ui->listFeatures->hide();
|
||||
ui->checkBoxUpdateView->hide();
|
||||
|
@ -364,6 +367,8 @@ const unsigned TaskLinearPatternParameters::getOccurrences(void) const {
|
|||
TaskLinearPatternParameters::~TaskLinearPatternParameters()
|
||||
{
|
||||
delete ui;
|
||||
if (proxy)
|
||||
delete proxy;
|
||||
}
|
||||
|
||||
void TaskLinearPatternParameters::changeEvent(QEvent *e)
|
||||
|
|
|
@ -53,7 +53,7 @@ public:
|
|||
/// Constructor for task with ViewProvider
|
||||
TaskLinearPatternParameters(ViewProviderTransformed *TransformedView, QWidget *parent = 0);
|
||||
/// Constructor for task with parent task (MultiTransform mode)
|
||||
TaskLinearPatternParameters(QWidget *parent, TaskMultiTransformParameters *parentTask);
|
||||
TaskLinearPatternParameters(TaskMultiTransformParameters *parentTask, QLayout *layout);
|
||||
virtual ~TaskLinearPatternParameters();
|
||||
|
||||
const QString getDirection(void) const;
|
||||
|
|
|
@ -66,15 +66,18 @@ TaskMirroredParameters::TaskMirroredParameters(ViewProviderTransformed *Transfor
|
|||
setupUI();
|
||||
}
|
||||
|
||||
TaskMirroredParameters::TaskMirroredParameters(QWidget *parent, TaskMultiTransformParameters *parentTask)
|
||||
: TaskTransformedParameters(parent, parentTask)
|
||||
TaskMirroredParameters::TaskMirroredParameters(TaskMultiTransformParameters *parentTask, QLayout *layout)
|
||||
: TaskTransformedParameters(parentTask)
|
||||
{
|
||||
proxy = new QWidget(parentTask);
|
||||
ui = new Ui_TaskMirroredParameters();
|
||||
ui->setupUi(parent);
|
||||
ui->setupUi(proxy);
|
||||
connect(ui->buttonOK, SIGNAL(pressed()),
|
||||
parentTask, SLOT(onSubTaskButtonOK()));
|
||||
QMetaObject::connectSlotsByName(this);
|
||||
|
||||
layout->addWidget(proxy);
|
||||
|
||||
ui->buttonOK->setEnabled(true);
|
||||
ui->listFeatures->hide();
|
||||
ui->checkBoxUpdateView->hide();
|
||||
|
@ -298,6 +301,8 @@ const QString TaskMirroredParameters::getMirrorPlane(void) const
|
|||
TaskMirroredParameters::~TaskMirroredParameters()
|
||||
{
|
||||
delete ui;
|
||||
if (proxy)
|
||||
delete proxy;
|
||||
}
|
||||
|
||||
void TaskMirroredParameters::changeEvent(QEvent *e)
|
||||
|
|
|
@ -53,7 +53,7 @@ public:
|
|||
/// Constructor for task with ViewProvider
|
||||
TaskMirroredParameters(ViewProviderTransformed *TransformedView, QWidget *parent = 0);
|
||||
/// Constructor for task with parent task (MultiTransform mode)
|
||||
TaskMirroredParameters(QWidget *parent, TaskMultiTransformParameters *parentTask);
|
||||
TaskMirroredParameters(TaskMultiTransformParameters *parentTask, QLayout *layout);
|
||||
|
||||
virtual ~TaskMirroredParameters();
|
||||
|
||||
|
|
|
@ -171,19 +171,10 @@ void TaskMultiTransformParameters::onSelectionChanged(const Gui::SelectionChange
|
|||
|
||||
void TaskMultiTransformParameters::closeSubTask()
|
||||
{
|
||||
if (subTask == NULL)
|
||||
return; // e.g. if user OKs a new subTask and then immediately deletes it
|
||||
delete subTask;
|
||||
subTask = NULL;
|
||||
ui->widgetFeature->close();
|
||||
// FIXME: If the layout of the UI changes this code needs to be adapted
|
||||
// But I couldn't find any other way to free the widget to have a different dialog attached to it
|
||||
ui->verticalLayout->removeWidget(ui->widgetFeature);
|
||||
delete ui->widgetFeature;
|
||||
ui->widgetFeature = new QWidget(this);
|
||||
ui->widgetFeature->setObjectName(QString::fromUtf8("widgetFeature"));
|
||||
ui->widgetFeature->setMinimumSize(QSize(0, 180));
|
||||
ui->verticalLayout->addWidget(ui->widgetFeature);
|
||||
if (subTask) {
|
||||
delete subTask;
|
||||
subTask = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void TaskMultiTransformParameters::onTransformDelete()
|
||||
|
@ -217,17 +208,15 @@ void TaskMultiTransformParameters::onTransformEdit()
|
|||
|
||||
subFeature = static_cast<PartDesign::Transformed*>(transformFeatures[row]);
|
||||
if (transformFeatures[row]->getTypeId() == PartDesign::Mirrored::getClassTypeId())
|
||||
subTask = new TaskMirroredParameters(ui->widgetFeature, this);
|
||||
subTask = new TaskMirroredParameters(this, ui->verticalLayout);
|
||||
else if (transformFeatures[row]->getTypeId() == PartDesign::LinearPattern::getClassTypeId())
|
||||
subTask = new TaskLinearPatternParameters(ui->widgetFeature, this);
|
||||
subTask = new TaskLinearPatternParameters(this, ui->verticalLayout);
|
||||
else if (transformFeatures[row]->getTypeId() == PartDesign::PolarPattern::getClassTypeId())
|
||||
subTask = new TaskPolarPatternParameters(ui->widgetFeature, this);
|
||||
subTask = new TaskPolarPatternParameters(this, ui->verticalLayout);
|
||||
else if (transformFeatures[row]->getTypeId() == PartDesign::Scaled::getClassTypeId())
|
||||
subTask = new TaskScaledParameters(ui->widgetFeature, this);
|
||||
subTask = new TaskScaledParameters(this, ui->verticalLayout);
|
||||
else
|
||||
return; // TODO: Show an error?
|
||||
|
||||
ui->widgetFeature->show();
|
||||
}
|
||||
|
||||
void TaskMultiTransformParameters::onTransformActivated(const QModelIndex& index) {
|
||||
|
@ -407,6 +396,8 @@ TaskMultiTransformParameters::~TaskMultiTransformParameters()
|
|||
{
|
||||
closeSubTask();
|
||||
delete ui;
|
||||
if (proxy)
|
||||
delete proxy;
|
||||
}
|
||||
|
||||
void TaskMultiTransformParameters::changeEvent(QEvent *e)
|
||||
|
|
|
@ -44,16 +44,6 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="widgetFeature" native="true">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>180</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
|
|
|
@ -66,15 +66,18 @@ TaskPolarPatternParameters::TaskPolarPatternParameters(ViewProviderTransformed *
|
|||
setupUI();
|
||||
}
|
||||
|
||||
TaskPolarPatternParameters::TaskPolarPatternParameters(QWidget *parent, TaskMultiTransformParameters *parentTask)
|
||||
: TaskTransformedParameters(parent, parentTask)
|
||||
TaskPolarPatternParameters::TaskPolarPatternParameters(TaskMultiTransformParameters *parentTask, QLayout *layout)
|
||||
: TaskTransformedParameters(parentTask)
|
||||
{
|
||||
proxy = new QWidget(parentTask);
|
||||
ui = new Ui_TaskPolarPatternParameters();
|
||||
ui->setupUi(parent);
|
||||
ui->setupUi(proxy);
|
||||
connect(ui->buttonOK, SIGNAL(pressed()),
|
||||
parentTask, SLOT(onSubTaskButtonOK()));
|
||||
QMetaObject::connectSlotsByName(this);
|
||||
|
||||
layout->addWidget(proxy);
|
||||
|
||||
ui->buttonOK->setEnabled(true);
|
||||
ui->listFeatures->hide();
|
||||
ui->checkBoxUpdateView->hide();
|
||||
|
@ -370,6 +373,8 @@ const unsigned TaskPolarPatternParameters::getOccurrences(void) const
|
|||
TaskPolarPatternParameters::~TaskPolarPatternParameters()
|
||||
{
|
||||
delete ui;
|
||||
if (proxy)
|
||||
delete proxy;
|
||||
}
|
||||
|
||||
void TaskPolarPatternParameters::changeEvent(QEvent *e)
|
||||
|
|
|
@ -53,7 +53,7 @@ public:
|
|||
/// Constructor for task with ViewProvider
|
||||
TaskPolarPatternParameters(ViewProviderTransformed *TransformedView, QWidget *parent = 0);
|
||||
/// Constructor for task with parent task (MultiTransform mode)
|
||||
TaskPolarPatternParameters(QWidget *parent, TaskMultiTransformParameters *parentTask);
|
||||
TaskPolarPatternParameters(TaskMultiTransformParameters *parentTask, QLayout *layout);
|
||||
virtual ~TaskPolarPatternParameters();
|
||||
|
||||
const QString getAxis(void) const;
|
||||
|
|
|
@ -66,15 +66,18 @@ TaskScaledParameters::TaskScaledParameters(ViewProviderTransformed *TransformedV
|
|||
setupUI();
|
||||
}
|
||||
|
||||
TaskScaledParameters::TaskScaledParameters(QWidget *parent, TaskMultiTransformParameters *parentTask)
|
||||
: TaskTransformedParameters(parent, parentTask)
|
||||
TaskScaledParameters::TaskScaledParameters(TaskMultiTransformParameters *parentTask, QLayout *layout)
|
||||
: TaskTransformedParameters(parentTask)
|
||||
{
|
||||
proxy = new QWidget(parentTask);
|
||||
ui = new Ui_TaskScaledParameters();
|
||||
ui->setupUi(parent);
|
||||
ui->setupUi(proxy);
|
||||
connect(ui->buttonOK, SIGNAL(pressed()),
|
||||
parentTask, SLOT(onSubTaskButtonOK()));
|
||||
QMetaObject::connectSlotsByName(this);
|
||||
|
||||
layout->addWidget(proxy);
|
||||
|
||||
ui->buttonOK->setEnabled(true);
|
||||
ui->listFeatures->hide();
|
||||
ui->checkBoxUpdateView->hide();
|
||||
|
@ -202,6 +205,8 @@ const unsigned TaskScaledParameters::getOccurrences(void) const
|
|||
TaskScaledParameters::~TaskScaledParameters()
|
||||
{
|
||||
delete ui;
|
||||
if (proxy)
|
||||
delete proxy;
|
||||
}
|
||||
|
||||
void TaskScaledParameters::changeEvent(QEvent *e)
|
||||
|
|
|
@ -53,7 +53,7 @@ public:
|
|||
/// Constructor for task with ViewProvider
|
||||
TaskScaledParameters(ViewProviderTransformed *TransformedView, QWidget *parent = 0);
|
||||
/// Constructor for task with parent task (MultiTransform mode)
|
||||
TaskScaledParameters(QWidget *parent, TaskMultiTransformParameters *parentTask);
|
||||
TaskScaledParameters(TaskMultiTransformParameters *parentTask, QLayout *layout);
|
||||
virtual ~TaskScaledParameters();
|
||||
|
||||
const double getFactor(void) const;
|
||||
|
|
|
@ -61,8 +61,8 @@ TaskTransformedParameters::TaskTransformedParameters(ViewProviderTransformed *Tr
|
|||
featureSelectionMode = true;
|
||||
}
|
||||
|
||||
TaskTransformedParameters::TaskTransformedParameters(QWidget *parent, TaskMultiTransformParameters *parentTask)
|
||||
: TaskBox(QPixmap(), tr(""), true, parent),
|
||||
TaskTransformedParameters::TaskTransformedParameters(TaskMultiTransformParameters *parentTask)
|
||||
: TaskBox(QPixmap(), tr(""), true, parentTask),
|
||||
TransformedView(NULL),
|
||||
parentTask(parentTask),
|
||||
insideMultiTransform(true),
|
||||
|
|
|
@ -54,7 +54,7 @@ public:
|
|||
/// Constructor for task with ViewProvider
|
||||
TaskTransformedParameters(ViewProviderTransformed *TransformedView, QWidget *parent = 0);
|
||||
/// Constructor for task with parent task (MultiTransform mode)
|
||||
TaskTransformedParameters(QWidget *parent, TaskMultiTransformParameters* parentTask);
|
||||
TaskTransformedParameters(TaskMultiTransformParameters *parentTask);
|
||||
virtual ~TaskTransformedParameters()
|
||||
{}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user