diff --git a/src/app/dialogs/app/dialogincrements.cpp b/src/app/dialogs/app/dialogincrements.cpp index 4fde5f5f2..3060e10db 100644 --- a/src/app/dialogs/app/dialogincrements.cpp +++ b/src/app/dialogs/app/dialogincrements.cpp @@ -100,6 +100,27 @@ DialogIncrements::DialogIncrements(VContainer *data, VPattern *doc, QWidget *par if (qApp->patternType() == MeasurementsType::Standard) { ui->toolBoxMeasurements->setItemEnabled(0, false); + + const QString filePath = doc->MPath(); + VStandardMeasurements *mSt; + try + { + VDomDocument::ValidateXML("://schema/standard_measurements.xsd", filePath); + mSt = new VStandardMeasurements(data); + mSt->setXMLContent(filePath); + + ui->labelBaseValues->setText(tr("Base size: %1 %3; Base height: %2 %3").arg(mSt->Size()) + .arg(mSt->Height()).arg(VDomDocument::UnitsToStr(qApp->patternUnit()))); + ui->labelDescription->setText(tr("Description: \"%1\"").arg(mSt->TrDescription())); + delete mSt; + } + catch (VException &e) + { + e.CriticalMessageBox(tr("File error."), this); + delete mSt; + emit DialogClosed(QDialog::Rejected); + return; + } } else { @@ -133,6 +154,10 @@ DialogIncrements::DialogIncrements(VContainer *data, VPattern *doc, QWidget *par connect(ui->comboBoxSex, static_cast(&QComboBox::currentIndexChanged), this, &DialogIncrements::SaveSex); connect(ui->dateEditBirthDate, &QDateEdit::dateChanged, this, &DialogIncrements::SaveBirthDate); + + // hide fileds that don't exist in individual measurements + ui->labelBaseValues->setVisible(false); + ui->labelDescription->setVisible(false); } ui->toolBoxMeasurements->setCurrentIndex(1); diff --git a/src/app/dialogs/app/dialogincrements.ui b/src/app/dialogs/app/dialogincrements.ui index 08556feaa..72dbd4d04 100644 --- a/src/app/dialogs/app/dialogincrements.ui +++ b/src/app/dialogs/app/dialogincrements.ui @@ -118,8 +118,8 @@ 0 0 - 559 - 82 + 939 + 411 @@ -290,6 +290,23 @@ Measurements + + + + Base size: ; base height: + + + + + + + Description: + + + true + + + diff --git a/src/app/dialogs/app/dialogstandardmeasurements.cpp b/src/app/dialogs/app/dialogstandardmeasurements.cpp index 5b4bc433b..8cc53bcb6 100644 --- a/src/app/dialogs/app/dialogstandardmeasurements.cpp +++ b/src/app/dialogs/app/dialogstandardmeasurements.cpp @@ -183,16 +183,11 @@ void DialogStandardMeasurements::LoadStandardTables() } else { - const QString trDesc = qApp->STDescription(m.Id()); - if (trDesc.isEmpty() == false) + const QString desc = m.TrDescription(); + if (desc.isEmpty() == false) { - qCDebug(vStMeasur)<<"Adding user table from"<comboBoxTables->addItem(trDesc, QVariant(fi.absoluteFilePath())); - } - else if (m.Description().isEmpty() == false) - { - qCDebug(vStMeasur)<<"Adding table with id"<comboBoxTables->addItem(m.Description(), QVariant(fi.absoluteFilePath())); + qCDebug(vStMeasur)<<"Adding table from"<comboBoxTables->addItem(desc, QVariant(fi.absoluteFilePath())); } } } diff --git a/src/app/xml/vstandardmeasurements.cpp b/src/app/xml/vstandardmeasurements.cpp index 5e010c69c..e252cf7de 100644 --- a/src/app/xml/vstandardmeasurements.cpp +++ b/src/app/xml/vstandardmeasurements.cpp @@ -51,7 +51,7 @@ VStandardMeasurements::~VStandardMeasurements() {} //--------------------------------------------------------------------------------------------------------------------- -QString VStandardMeasurements::Description() +QString VStandardMeasurements::OrigDescription () { const QString desc = UniqueTagText(TagDescription, ""); if (desc.isEmpty()) @@ -61,6 +61,20 @@ QString VStandardMeasurements::Description() return desc; } +//--------------------------------------------------------------------------------------------------------------------- +QString VStandardMeasurements::TrDescription() +{ + const QString trDesc = qApp->STDescription(Id()); + if (trDesc.isEmpty() == false) + { + return trDesc; + } + else + { + return OrigDescription (); + } +} + //--------------------------------------------------------------------------------------------------------------------- QString VStandardMeasurements::Id() { @@ -72,6 +86,18 @@ QString VStandardMeasurements::Id() return id; } +//--------------------------------------------------------------------------------------------------------------------- +qreal VStandardMeasurements::Size() const +{ + return TakeParametr(TagSize, AttrBase, 50); +} + +//--------------------------------------------------------------------------------------------------------------------- +qreal VStandardMeasurements::Height() const +{ + return TakeParametr(TagHeight, AttrBase, 176); +} + //--------------------------------------------------------------------------------------------------------------------- void VStandardMeasurements::ReadMeasurement(const QDomElement &domElement, const QString &tag) { @@ -124,15 +150,13 @@ qreal VStandardMeasurements::TakeParametr(const QString &tag, const QString &att //--------------------------------------------------------------------------------------------------------------------- void VStandardMeasurements::SetSize() { - const qreal value = TakeParametr(TagSize, AttrBase, 50); - data->SetSize(value); + data->SetSize(Size()); data->SetSizeName(size_M); } //--------------------------------------------------------------------------------------------------------------------- void VStandardMeasurements::SetHeight() { - const qreal value = TakeParametr(TagHeight, AttrBase, 176); - data->SetHeight(value); + data->SetHeight(Height()); data->SetHeightName(height_M); } diff --git a/src/app/xml/vstandardmeasurements.h b/src/app/xml/vstandardmeasurements.h index 70cc3dbc9..8de409cf6 100644 --- a/src/app/xml/vstandardmeasurements.h +++ b/src/app/xml/vstandardmeasurements.h @@ -44,8 +44,13 @@ class VStandardMeasurements:public VAbstractMeasurements public: VStandardMeasurements(VContainer *data); virtual ~VStandardMeasurements(); - QString Description(); + QString OrigDescription (); + QString TrDescription (); QString Id(); + + qreal Size() const; + qreal Height() const; + void SetSize(); void SetHeight(); static const QString TagMeasurement;