PartDesign: fix small issue with embedded TaskPanels in MultiTransform

This commit is contained in:
logari81 2012-09-10 11:37:48 +02:00
parent 9f452bd6ca
commit afc794894f
12 changed files with 49 additions and 48 deletions

View File

@ -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)

View File

@ -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;

View File

@ -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)

View File

@ -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();

View File

@ -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)

View File

@ -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/>

View File

@ -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)

View File

@ -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;

View File

@ -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)

View File

@ -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;

View File

@ -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),

View File

@ -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()
{}