Dialog seam allowance tool should show visualization only when user is creating

new piece.

--HG--
branch : feature
This commit is contained in:
Roman Telezhynskyi 2016-11-08 19:11:47 +02:00
parent fc035f6f67
commit f593d4ca5b
2 changed files with 37 additions and 23 deletions

View File

@ -54,7 +54,10 @@ DialogSeamAllowance::DialogSeamAllowance(const VContainer *data, const quint32 &
connect(ui->listWidget, &QListWidget::customContextMenuRequested, this, &DialogSeamAllowance::ShowContextMenu);
connect(ui->listWidget->model(), &QAbstractItemModel::rowsMoved, this, &DialogSeamAllowance::ListChanged);
if (not applyAllowed)
{
vis = new VisToolPiece(data);
}
}
//---------------------------------------------------------------------------------------------------------------------
@ -129,6 +132,8 @@ void DialogSeamAllowance::ChosenObject(quint32 id, const SceneObject &type)
ValidObjects(MainPathIsValid());
if (not applyAllowed)
{
auto visPath = qobject_cast<VisToolPiece *>(vis);
SCASSERT(visPath != nullptr);
const VPiece p = CreatePiece();
@ -146,6 +151,7 @@ void DialogSeamAllowance::ChosenObject(quint32 id, const SceneObject &type)
visPath->RefreshGeometry();
}
}
}
}
//---------------------------------------------------------------------------------------------------------------------
@ -156,10 +162,13 @@ void DialogSeamAllowance::ShowDialog(bool click)
emit ToolTip("");
prepare = true;
if (not applyAllowed)
{
auto visPath = qobject_cast<VisToolPiece *>(vis);
SCASSERT(visPath != nullptr);
visPath->SetMode(Mode::Show);
visPath->RefreshGeometry();
}
// Fix issue #526. Dialog Detail is not on top after selection second object on Mac.
setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint);
@ -231,10 +240,13 @@ void DialogSeamAllowance::ShowContextMenu(const QPoint &pos)
//---------------------------------------------------------------------------------------------------------------------
void DialogSeamAllowance::ListChanged()
{
if (not applyAllowed)
{
auto visPath = qobject_cast<VisToolPiece *>(vis);
SCASSERT(visPath != nullptr);
visPath->SetPiece(CreatePiece());
visPath->RefreshGeometry();
}
}
//---------------------------------------------------------------------------------------------------------------------

View File

@ -400,7 +400,9 @@ void VToolSeamAllowance::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
QAction *selectedAction = menu.exec(event->screenPos());
if (selectedAction == actionOption)
{
m_dialog = new DialogSeamAllowance(getData(), id, qApp->getMainWindow());
auto *dialog = new DialogSeamAllowance(getData(), id, qApp->getMainWindow());
dialog->EnableApply(true);
m_dialog = dialog;
m_dialog->setModal(true);
connect(m_dialog, &DialogTool::DialogClosed, this, &VToolSeamAllowance::FullUpdateFromGuiOk);
SetDialog();