From dd6cc1edc6e3f982763fb9b1a355b4b35bf07106 Mon Sep 17 00:00:00 2001 From: Roman Telezhynskyi Date: Sun, 14 Jan 2018 18:19:43 +0200 Subject: [PATCH] Enhancement. Disable a label options if a label template is empty. Many user confused by not visible label even if "all" data filed. Valentina should warn about this situation and force user to fill a label template. --HG-- branch : develop --- .../dialogs/tools/piece/dialogseamallowance.cpp | 12 ++++++++++++ .../vtools/dialogs/tools/piece/dialogseamallowance.h | 2 ++ .../vtools/dialogs/tools/piece/tabs/tablabels.ui | 12 +++++++++--- src/libs/vtools/tools/vtoolseamallowance.cpp | 2 +- 4 files changed, 24 insertions(+), 4 deletions(-) diff --git a/src/libs/vtools/dialogs/tools/piece/dialogseamallowance.cpp b/src/libs/vtools/dialogs/tools/piece/dialogseamallowance.cpp index 4f57f0bb8..af64a6951 100644 --- a/src/libs/vtools/dialogs/tools/piece/dialogseamallowance.cpp +++ b/src/libs/vtools/dialogs/tools/piece/dialogseamallowance.cpp @@ -79,6 +79,15 @@ QString GetFormulaFromUser(QPlainTextEdit *textEdit) } } +//--------------------------------------------------------------------------------------------------------------------- +DialogSeamAllowance::DialogSeamAllowance(const VContainer *data, const VAbstractPattern *doc, const quint32 &toolId, + QWidget *parent) + : DialogSeamAllowance(data, toolId, parent) +{ + SCASSERT(doc != nullptr) + uiTabLabels->groupBoxPatternLabel->setEnabled(not doc->GetPatternLabelTemplate().isEmpty()); +} + //--------------------------------------------------------------------------------------------------------------------- DialogSeamAllowance::DialogSeamAllowance(const VContainer *data, const quint32 &toolId, QWidget *parent) : DialogTool(data, toolId, parent), @@ -323,6 +332,8 @@ void DialogSeamAllowance::SetPiece(const VPiece &piece) uiTabLabels->checkBoxFold->setChecked(m_oldData.IsOnFold()); m_templateLines = m_oldData.GetLabelTemplate(); + uiTabLabels->groupBoxDetailLabel->setEnabled(not m_templateLines.isEmpty()); + uiTabGrainline->comboBoxArrow->setCurrentIndex(int(piece.GetGrainlineGeometry().GetArrowType())); uiTabLabels->groupBoxDetailLabel->setChecked(m_oldData.IsVisible()); @@ -2264,6 +2275,7 @@ void DialogSeamAllowance::EditLabel() if (QDialog::Accepted == editor.exec()) { m_templateLines = editor.GetTemplate(); + uiTabLabels->groupBoxDetailLabel->setEnabled(not m_templateLines.isEmpty()); } } diff --git a/src/libs/vtools/dialogs/tools/piece/dialogseamallowance.h b/src/libs/vtools/dialogs/tools/piece/dialogseamallowance.h index 1dfebe12b..8a90f262c 100644 --- a/src/libs/vtools/dialogs/tools/piece/dialogseamallowance.h +++ b/src/libs/vtools/dialogs/tools/piece/dialogseamallowance.h @@ -56,6 +56,8 @@ class DialogSeamAllowance : public DialogTool Q_OBJECT public: + DialogSeamAllowance(const VContainer *data, const VAbstractPattern *doc, const quint32 &toolId, + QWidget *parent = nullptr); DialogSeamAllowance(const VContainer *data, const quint32 &toolId, QWidget *parent = nullptr); virtual ~DialogSeamAllowance(); diff --git a/src/libs/vtools/dialogs/tools/piece/tabs/tablabels.ui b/src/libs/vtools/dialogs/tools/piece/tabs/tablabels.ui index 7dde99590..ef6e28277 100644 --- a/src/libs/vtools/dialogs/tools/piece/tabs/tablabels.ui +++ b/src/libs/vtools/dialogs/tools/piece/tabs/tablabels.ui @@ -55,7 +55,7 @@ - Edit pattern label + Edit piece label template Edit template @@ -237,7 +237,10 @@ - true + false + + + Options to control position a detail label. <b>Not available if a detail label template is empty</b>. Detail label visible @@ -946,7 +949,10 @@ - true + false + + + Options to control position a pattern label. <b>Not available if a pattern label template is empty</b>. Pattern label visible diff --git a/src/libs/vtools/tools/vtoolseamallowance.cpp b/src/libs/vtools/tools/vtoolseamallowance.cpp index 345d4a8e4..784bc4f45 100644 --- a/src/libs/vtools/tools/vtoolseamallowance.cpp +++ b/src/libs/vtools/tools/vtoolseamallowance.cpp @@ -1430,7 +1430,7 @@ void VToolSeamAllowance::SaveDialogChange(const QString &undoText) void VToolSeamAllowance::ShowOptions() { QSharedPointer dialog = - QSharedPointer(new DialogSeamAllowance(getData(), m_id, qApp->getMainWindow())); + QSharedPointer(new DialogSeamAllowance(getData(), doc, m_id, qApp->getMainWindow())); dialog->EnableApply(true); m_dialog = dialog; m_dialog->setModal(true);