From 9d001ea00a528229c0990bfe49158b38624156fc Mon Sep 17 00:00:00 2001 From: dismine Date: Wed, 18 Jun 2014 13:40:42 +0300 Subject: [PATCH] Refactoring. --HG-- branch : feature --- src/app/xml/vabstractmeasurements.cpp | 219 ++++++++++++++++++++++++ src/app/xml/vabstractmeasurements.h | 50 ++++++ src/app/xml/vindividualmeasurements.cpp | 179 ++----------------- src/app/xml/vindividualmeasurements.h | 35 ++-- src/app/xml/vstandardmeasurements.cpp | 192 ++------------------- src/app/xml/vstandardmeasurements.h | 16 +- src/app/xml/xml.pri | 6 +- 7 files changed, 324 insertions(+), 373 deletions(-) create mode 100644 src/app/xml/vabstractmeasurements.cpp create mode 100644 src/app/xml/vabstractmeasurements.h diff --git a/src/app/xml/vabstractmeasurements.cpp b/src/app/xml/vabstractmeasurements.cpp new file mode 100644 index 000000000..810a78bdc --- /dev/null +++ b/src/app/xml/vabstractmeasurements.cpp @@ -0,0 +1,219 @@ +/************************************************************************ + ** + ** @file vabstractmeasurements.cpp + ** @author Roman Telezhynskyi + ** @date 18 6, 2014 + ** + ** @brief + ** @copyright + ** This source code is part of the Valentine project, a pattern making + ** program, whose allow create and modeling patterns of clothing. + ** Copyright (C) 2014 Valentina project + ** All Rights Reserved. + ** + ** Valentina is free software: you can redistribute it and/or modify + ** it under the terms of the GNU General Public License as published by + ** the Free Software Foundation, either version 3 of the License, or + ** (at your option) any later version. + ** + ** Valentina is distributed in the hope that it will be useful, + ** but WITHOUT ANY WARRANTY; without even the implied warranty of + ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + ** GNU General Public License for more details. + ** + ** You should have received a copy of the GNU General Public License + ** along with Valentina. If not, see . + ** + *************************************************************************/ + +#include "vabstractmeasurements.h" + +const QString VAbstractMeasurements::TagUnit = QStringLiteral("unit"); +const QString VAbstractMeasurements::AttrValue = QStringLiteral("value"); + +//--------------------------------------------------------------------------------------------------------------------- +VAbstractMeasurements::VAbstractMeasurements(VContainer *data) + :VDomDocument(data) +{ + SCASSERT(data != nullptr) +} + +//--------------------------------------------------------------------------------------------------------------------- +VAbstractMeasurements::~VAbstractMeasurements() +{} + +//--------------------------------------------------------------------------------------------------------------------- +/** + * @brief Measurements help read all measurements. + * + * Virtual method that keep all common measurements name. Measurements height and size create in different way in + * individual and standard measurements, see VIndividualMeasurements::Measurements(). + */ +void VAbstractMeasurements::Measurements() +{ + //head and neck + Measurement(headGirth_M); + Measurement(midNeckGirth_M); + Measurement(neckBaseGirth_M); + Measurement(headAndNeckLength_M); + //torso + Measurement(centerFrontWaistLength_M); + Measurement(centerBackWaistLength_M); + Measurement(shoulderLength_M); + Measurement(sideWaistLength_M); + Measurement(trunkLength_M); + Measurement(shoulderGirth_M); + Measurement(upperChestGirth_M); + Measurement(bustGirth_M); + Measurement(underBustGirth_M); + Measurement(waistGirth_M); + Measurement(highHipGirth_M); + Measurement(hipGirth_M); + Measurement(upperFrontChestWidth_M); + Measurement(frontChestWidth_M); + Measurement(acrossFrontShoulderWidth_M); + Measurement(acrossBackShoulderWidth_M); + Measurement(upperBackWidth_M); + Measurement(backWidth_M); + Measurement(bustpointToBustpoint_M); + Measurement(halterBustpointToBustpoint_M); + Measurement(neckToBustpoint_M); + Measurement(crotchLength_M); + Measurement(riseHeight_M); + Measurement(shoulderDrop_M); + Measurement(shoulderSlopeDegrees_M); + Measurement(frontShoulderSlopeLength_M); + Measurement(backShoulderSlopeLength_M); + Measurement(frontShoulderToWaistLength_M); + Measurement(backShoulderToWaistLength_M); + Measurement(frontNeckArc_M); + Measurement(backNeckArc_M); + Measurement(frontUpperChestArc_M); + Measurement(backUpperChestArc_M); + Measurement(frontWaistArc_M); + Measurement(backWaistArc_M); + Measurement(frontUpperHipArc_M); + Measurement(backUpperHipArc_M); + Measurement(frontHipArc_M); + Measurement(backHipArc_M); + Measurement(chestSlope_M); + Measurement(backSlope_M); + Measurement(frontWaistSlope_M); + Measurement(backWaistSlope_M); + Measurement(frontNeckToUpperChestHeight_M); + Measurement(frontNeckToBustHeight_M); + //arm + Measurement(armscyeGirth_M); + Measurement(elbowGirth_M); + Measurement(upperArmGirth_M); + Measurement(wristGirth_M); + Measurement(scyeDepth_M); + Measurement(shoulderAndArmLength_M); + Measurement(underarmLength_M); + Measurement(cervicaleToWristLength_M); + Measurement(shoulderToElbowLength_M); + Measurement(armLength_M); + //hand + Measurement(handWidth_M); + Measurement(handLength_M); + Measurement(handGirth_M); + //leg + Measurement(thighGirth_M); + Measurement(midThighGirth_M); + Measurement(kneeGirth_M); + Measurement(calfGirth_M); + Measurement(ankleGirth_M); + Measurement(kneeHeight_M); + Measurement(ankleHeight_M); + //foot + Measurement(footWidth_M); + Measurement(footLength_M); + //heights + Measurement(cervicaleHeight_M); + Measurement(cervicaleToKneeHeight_M); + Measurement(waistHeight_M); + Measurement(highHipHeight_M); + Measurement(hipHeight_M); + Measurement(waistToHipHeight_M); + Measurement(waistToKneeHeight_M); + Measurement(crotchHeight_M); + //extended + Measurement(heightFrontNeckBasePoint_M); + Measurement(heightBaseNeckSidePoint_M); + Measurement(heightShoulderPoint_M); + Measurement(heightNipplePoint_M); + Measurement(heightBackAngleAxilla_M); + Measurement(heightScapularPoint_M); + Measurement(heightUnderButtockFolds_M); + Measurement(hipsExcludingProtrudingAbdomen_M); + Measurement(girthFootInstep_M); + Measurement(sideWaistToFloor_M); + Measurement(frontWaistToFloor_M); + Measurement(arcThroughGroinArea_M); + Measurement(waistToPlaneSeat_M); + Measurement(neckToRadialPoint_M); + Measurement(neckToThirdFinger_M); + Measurement(neckToFirstLineChestCircumference_M); + Measurement(frontWaistLength_M); + Measurement(arcThroughShoulderJoint_M); + Measurement(neckToBackLineChestCircumference_M); + Measurement(waistToNeckSide_M); + Measurement(arcLengthUpperBody_M); + Measurement(chestWidth_M); + Measurement(anteroposteriorDiameterHands_M); + Measurement(heightClavicularPoint_M); + Measurement(heightArmholeSlash_M); + Measurement(slashShoulderHeight_M); + Measurement(halfGirthNeck_M); + Measurement(halfGirthNeckForShirts_M); + Measurement(halfGirthChestFirst_M); + Measurement(halfGirthChestSecond_M); + Measurement(halfGirthChestThird_M); + Measurement(halfGirthWaist_M); + Measurement(halfGirthHipsConsideringProtrudingAbdomen_M); + Measurement(halfGirthHipsExcludingProtrudingAbdomen_M); + Measurement(girthKneeFlexedFeet_M); + Measurement(neckTransverseDiameter_M); + Measurement(frontSlashShoulderHeight_M); + Measurement(neckToFrontWaistLine_M); + Measurement(handVerticalDiameter_M); + Measurement(neckToKneePoint_M); + Measurement(waistToKnee_M); + Measurement(shoulderHeight_M); + Measurement(headHeight_M); + Measurement(bodyPosition_M); + Measurement(arcBehindShoulderGirdle_M); + Measurement(neckToNeckBase_M); + Measurement(depthWaistFirst_M); + Measurement(depthWaistSecond_M); +} + +//--------------------------------------------------------------------------------------------------------------------- +Unit VAbstractMeasurements::MUnit() const +{ + const QString unit = UniqueTagText(TagUnit, UnitCM); + return VDomDocument::StrToUnits(unit); +} + +//--------------------------------------------------------------------------------------------------------------------- +void VAbstractMeasurements::Measurement(const QString &tag) +{ + const QDomNodeList nodeList = this->elementsByTagName(tag); + if (nodeList.isEmpty()) + { + qDebug()<<"Measurement" << tag <<"doesn't exist"< + ** @date 18 6, 2014 + ** + ** @brief + ** @copyright + ** This source code is part of the Valentine project, a pattern making + ** program, whose allow create and modeling patterns of clothing. + ** Copyright (C) 2014 Valentina project + ** All Rights Reserved. + ** + ** Valentina is free software: you can redistribute it and/or modify + ** it under the terms of the GNU General Public License as published by + ** the Free Software Foundation, either version 3 of the License, or + ** (at your option) any later version. + ** + ** Valentina is distributed in the hope that it will be useful, + ** but WITHOUT ANY WARRANTY; without even the implied warranty of + ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + ** GNU General Public License for more details. + ** + ** You should have received a copy of the GNU General Public License + ** along with Valentina. If not, see . + ** + *************************************************************************/ + +#ifndef VABSTRACTMEASUREMENTS_H +#define VABSTRACTMEASUREMENTS_H + +#include "vdomdocument.h" + +class VAbstractMeasurements : public VDomDocument +{ +public: + VAbstractMeasurements(VContainer *data); + virtual ~VAbstractMeasurements(); + virtual void Measurements(); + Unit MUnit() const; + static const QString TagUnit; + static const QString AttrValue; +protected: + void Measurement(const QString &tag); + virtual void ReadMeasurement(const QDomElement &domElement, const QString &tag) = 0; +private: + Q_DISABLE_COPY(VAbstractMeasurements) +}; + +#endif // VABSTRACTMEASUREMENTS_H diff --git a/src/app/xml/vindividualmeasurements.cpp b/src/app/xml/vindividualmeasurements.cpp index 0acefe104..bafbc4f88 100644 --- a/src/app/xml/vindividualmeasurements.cpp +++ b/src/app/xml/vindividualmeasurements.cpp @@ -30,31 +30,25 @@ #include "../widgets/vapplication.h" #include -const QString VIndividualMeasurements::AttrValue = QStringLiteral("value"); const QString VIndividualMeasurements::TagFamily_name = QStringLiteral("family-name"); const QString VIndividualMeasurements::TagGiven_name = QStringLiteral("given-name"); const QString VIndividualMeasurements::TagBirth_date = QStringLiteral("birth-date"); const QString VIndividualMeasurements::TagSex = QStringLiteral("sex"); -const QString VIndividualMeasurements::TagUnit = QStringLiteral("unit"); const QString VIndividualMeasurements::TagEmail = QStringLiteral("email"); const QString VIndividualMeasurements::SexMale = QStringLiteral("male"); const QString VIndividualMeasurements::SexFemale = QStringLiteral("female"); //--------------------------------------------------------------------------------------------------------------------- -VIndividualMeasurements::VIndividualMeasurements(VContainer *data):VDomDocument(data) -{} +VIndividualMeasurements::VIndividualMeasurements(VContainer *data) + :VAbstractMeasurements(data) +{ + SCASSERT(data != nullptr) +} //--------------------------------------------------------------------------------------------------------------------- VIndividualMeasurements::~VIndividualMeasurements() {} -//--------------------------------------------------------------------------------------------------------------------- -Unit VIndividualMeasurements::MUnit() const -{ - const QString unit = UniqueTagText(TagUnit, UnitCM); - return VDomDocument::StrToUnits(unit); -} - //--------------------------------------------------------------------------------------------------------------------- void VIndividualMeasurements::setUnit(const Unit &unit) { @@ -64,172 +58,23 @@ void VIndividualMeasurements::setUnit(const Unit &unit) //--------------------------------------------------------------------------------------------------------------------- void VIndividualMeasurements::Measurements() { - //head and neck - Measurement(headGirth_M); - Measurement(midNeckGirth_M); - Measurement(neckBaseGirth_M); - Measurement(headAndNeckLength_M); - //torso - Measurement(centerFrontWaistLength_M); - Measurement(centerBackWaistLength_M); - Measurement(shoulderLength_M); - Measurement(sideWaistLength_M); - Measurement(trunkLength_M); - Measurement(shoulderGirth_M); - Measurement(upperChestGirth_M); - Measurement(bustGirth_M); - Measurement(underBustGirth_M); - Measurement(waistGirth_M); - Measurement(highHipGirth_M); - Measurement(hipGirth_M); - Measurement(upperFrontChestWidth_M); - Measurement(frontChestWidth_M); - Measurement(acrossFrontShoulderWidth_M); - Measurement(acrossBackShoulderWidth_M); - Measurement(upperBackWidth_M); - Measurement(backWidth_M); - Measurement(bustpointToBustpoint_M); - Measurement(halterBustpointToBustpoint_M); - Measurement(neckToBustpoint_M); - Measurement(crotchLength_M); - Measurement(riseHeight_M); - Measurement(shoulderDrop_M); - Measurement(shoulderSlopeDegrees_M); - Measurement(frontShoulderSlopeLength_M); - Measurement(backShoulderSlopeLength_M); - Measurement(frontShoulderToWaistLength_M); - Measurement(backShoulderToWaistLength_M); - Measurement(frontNeckArc_M); - Measurement(backNeckArc_M); - Measurement(frontUpperChestArc_M); - Measurement(backUpperChestArc_M); - Measurement(frontWaistArc_M); - Measurement(backWaistArc_M); - Measurement(frontUpperHipArc_M); - Measurement(backUpperHipArc_M); - Measurement(frontHipArc_M); - Measurement(backHipArc_M); - Measurement(chestSlope_M); - Measurement(backSlope_M); - Measurement(frontWaistSlope_M); - Measurement(backWaistSlope_M); - Measurement(frontNeckToUpperChestHeight_M); - Measurement(frontNeckToBustHeight_M); - //arm - Measurement(armscyeGirth_M); - Measurement(elbowGirth_M); - Measurement(upperArmGirth_M); - Measurement(wristGirth_M); - Measurement(scyeDepth_M); - Measurement(shoulderAndArmLength_M); - Measurement(underarmLength_M); - Measurement(cervicaleToWristLength_M); - Measurement(shoulderToElbowLength_M); - Measurement(armLength_M); - //hand - Measurement(handWidth_M); - Measurement(handLength_M); - Measurement(handGirth_M); - //leg - Measurement(thighGirth_M); - Measurement(midThighGirth_M); - Measurement(kneeGirth_M); - Measurement(calfGirth_M); - Measurement(ankleGirth_M); - Measurement(kneeHeight_M); - Measurement(ankleHeight_M); - //foot - Measurement(footWidth_M); - Measurement(footLength_M); + VAbstractMeasurements::Measurements(); //heights Measurement(height_M); - Measurement(cervicaleHeight_M); - Measurement(cervicaleToKneeHeight_M); - Measurement(waistHeight_M); - Measurement(highHipHeight_M); - Measurement(hipHeight_M); - Measurement(waistToHipHeight_M); - Measurement(waistToKneeHeight_M); - Measurement(crotchHeight_M); //extended Measurement(size_M); - Measurement(heightFrontNeckBasePoint_M); - Measurement(heightBaseNeckSidePoint_M); - Measurement(heightShoulderPoint_M); - Measurement(heightNipplePoint_M); - Measurement(heightBackAngleAxilla_M); - Measurement(heightScapularPoint_M); - Measurement(heightUnderButtockFolds_M); - Measurement(hipsExcludingProtrudingAbdomen_M); - Measurement(girthFootInstep_M); - Measurement(sideWaistToFloor_M); - Measurement(frontWaistToFloor_M); - Measurement(arcThroughGroinArea_M); - Measurement(waistToPlaneSeat_M); - Measurement(neckToRadialPoint_M); - Measurement(neckToThirdFinger_M); - Measurement(neckToFirstLineChestCircumference_M); - Measurement(frontWaistLength_M); - Measurement(arcThroughShoulderJoint_M); - Measurement(neckToBackLineChestCircumference_M); - Measurement(waistToNeckSide_M); - Measurement(arcLengthUpperBody_M); - Measurement(chestWidth_M); - Measurement(anteroposteriorDiameterHands_M); - Measurement(heightClavicularPoint_M); - Measurement(heightArmholeSlash_M); - Measurement(slashShoulderHeight_M); - Measurement(halfGirthNeck_M); - Measurement(halfGirthNeckForShirts_M); - Measurement(halfGirthChestFirst_M); - Measurement(halfGirthChestSecond_M); - Measurement(halfGirthChestThird_M); - Measurement(halfGirthWaist_M); - Measurement(halfGirthHipsConsideringProtrudingAbdomen_M); - Measurement(halfGirthHipsExcludingProtrudingAbdomen_M); - Measurement(girthKneeFlexedFeet_M); - Measurement(neckTransverseDiameter_M); - Measurement(frontSlashShoulderHeight_M); - Measurement(neckToFrontWaistLine_M); - Measurement(handVerticalDiameter_M); - Measurement(neckToKneePoint_M); - Measurement(waistToKnee_M); - Measurement(shoulderHeight_M); - Measurement(headHeight_M); - Measurement(bodyPosition_M); - Measurement(arcBehindShoulderGirdle_M); - Measurement(neckToNeckBase_M); - Measurement(depthWaistFirst_M); - Measurement(depthWaistSecond_M); } //--------------------------------------------------------------------------------------------------------------------- -void VIndividualMeasurements::Measurement(const QString &tag) +void VIndividualMeasurements::ReadMeasurement(const QDomElement &domElement, const QString &tag) { - const QDomNodeList nodeList = this->elementsByTagName(tag); - if (nodeList.isEmpty()) - { - qDebug()<<"Measurement" << tag <<"doesn't exist"<AddMeasurement(tag, VMeasurement(value, qApp->GuiText(tag), qApp->Description(tag), tag)); - } - } + if (MUnit() == Unit::Mm)//Convert to Cm. + { + value = value / 10.0; } + data->AddMeasurement(tag, VMeasurement(value, qApp->GuiText(tag), qApp->Description(tag), tag)); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/app/xml/vindividualmeasurements.h b/src/app/xml/vindividualmeasurements.h index ced9a7b43..e117360ef 100644 --- a/src/app/xml/vindividualmeasurements.h +++ b/src/app/xml/vindividualmeasurements.h @@ -29,7 +29,7 @@ #ifndef VINDIVIDUALMEASUREMENTS_H #define VINDIVIDUALMEASUREMENTS_H -#include "vdomdocument.h" +#include "vabstractmeasurements.h" /* VIT_VERSION is (major << 16) + (minor << 8) + patch. @@ -41,39 +41,38 @@ enum class SexType : char { Male, Female }; -class VIndividualMeasurements:public VDomDocument +class VIndividualMeasurements:public VAbstractMeasurements { public: VIndividualMeasurements(VContainer *data); virtual ~VIndividualMeasurements(); - Unit MUnit() const; - void setUnit(const Unit &unit); - void Measurements(); - QString FamilyName() const; - void setFamilyName(const QString &text); - QString GivenName() const; - void setGivenName(const QString &text); - QDate BirthDate() const; - void setBirthDate(const QDate &date); - SexType Sex() const; - void setSex(const SexType &sex); - QString Mail() const; - void setMail(const QString &text); - static const QString AttrValue; + void setUnit(const Unit &unit); + virtual void Measurements(); + QString FamilyName() const; + void setFamilyName(const QString &text); + QString GivenName() const; + void setGivenName(const QString &text); + QDate BirthDate() const; + void setBirthDate(const QDate &date); + SexType Sex() const; + void setSex(const SexType &sex); + QString Mail() const; + void setMail(const QString &text); + static const QString TagFamily_name; static const QString TagGiven_name; static const QString TagBirth_date; static const QString TagSex; - static const QString TagUnit; static const QString TagEmail; static const QString SexMale; static const QString SexFemale; static QString GenderToStr(const SexType &sex); static SexType StrToGender(const QString &sex); +protected: + virtual void ReadMeasurement(const QDomElement &domElement, const QString &tag); private: Q_DISABLE_COPY(VIndividualMeasurements) - void Measurement(const QString &tag); }; #endif // VINDIVIDUALMEASUREMENTS_H diff --git a/src/app/xml/vstandardmeasurements.cpp b/src/app/xml/vstandardmeasurements.cpp index 82f10b09e..1c99fc8a1 100644 --- a/src/app/xml/vstandardmeasurements.cpp +++ b/src/app/xml/vstandardmeasurements.cpp @@ -33,25 +33,20 @@ const QString VStandardMeasurements::TagDescription = QStringLiteral("description"); const QString VStandardMeasurements::TagSize = QStringLiteral("size"); const QString VStandardMeasurements::TagHeight = QStringLiteral("height"); -const QString VStandardMeasurements::AttrValue = QStringLiteral("value"); const QString VStandardMeasurements::AttrSize_increase = QStringLiteral("size_increase"); const QString VStandardMeasurements::AttrHeight_increase = QStringLiteral("height_increase"); //--------------------------------------------------------------------------------------------------------------------- -VStandardMeasurements::VStandardMeasurements(VContainer *data):VDomDocument(data) -{} +VStandardMeasurements::VStandardMeasurements(VContainer *data) + :VAbstractMeasurements(data) +{ + SCASSERT(data != nullptr) +} //--------------------------------------------------------------------------------------------------------------------- VStandardMeasurements::~VStandardMeasurements() {} -//--------------------------------------------------------------------------------------------------------------------- -Unit VStandardMeasurements::MUnit() -{ - const QString unit = UniqueTagText(AttrUnit, UnitCM); - return VDomDocument::StrToUnits(unit); -} - //--------------------------------------------------------------------------------------------------------------------- QString VStandardMeasurements::Description() { @@ -64,178 +59,21 @@ QString VStandardMeasurements::Description() } //--------------------------------------------------------------------------------------------------------------------- -void VStandardMeasurements::Measurements() +void VStandardMeasurements::ReadMeasurement(const QDomElement &domElement, const QString &tag) { - //head and neck - Measurement(headGirth_M); - Measurement(midNeckGirth_M); - Measurement(neckBaseGirth_M); - Measurement(headAndNeckLength_M); - //torso - Measurement(centerFrontWaistLength_M); - Measurement(centerBackWaistLength_M); - Measurement(shoulderLength_M); - Measurement(sideWaistLength_M); - Measurement(trunkLength_M); - Measurement(shoulderGirth_M); - Measurement(upperChestGirth_M); - Measurement(bustGirth_M); - Measurement(underBustGirth_M); - Measurement(waistGirth_M); - Measurement(highHipGirth_M); - Measurement(hipGirth_M); - Measurement(upperFrontChestWidth_M); - Measurement(frontChestWidth_M); - Measurement(acrossFrontShoulderWidth_M); - Measurement(acrossBackShoulderWidth_M); - Measurement(upperBackWidth_M); - Measurement(backWidth_M); - Measurement(bustpointToBustpoint_M); - Measurement(halterBustpointToBustpoint_M); - Measurement(neckToBustpoint_M); - Measurement(crotchLength_M); - Measurement(riseHeight_M); - Measurement(shoulderDrop_M); - Measurement(shoulderSlopeDegrees_M); - Measurement(frontShoulderSlopeLength_M); - Measurement(backShoulderSlopeLength_M); - Measurement(frontShoulderToWaistLength_M); - Measurement(backShoulderToWaistLength_M); - Measurement(frontNeckArc_M); - Measurement(backNeckArc_M); - Measurement(frontUpperChestArc_M); - Measurement(backUpperChestArc_M); - Measurement(frontWaistArc_M); - Measurement(backWaistArc_M); - Measurement(frontUpperHipArc_M); - Measurement(backUpperHipArc_M); - Measurement(frontHipArc_M); - Measurement(backHipArc_M); - Measurement(chestSlope_M); - Measurement(backSlope_M); - Measurement(frontWaistSlope_M); - Measurement(backWaistSlope_M); - Measurement(frontNeckToUpperChestHeight_M); - Measurement(frontNeckToBustHeight_M); - //arm - Measurement(armscyeGirth_M); - Measurement(elbowGirth_M); - Measurement(upperArmGirth_M); - Measurement(wristGirth_M); - Measurement(scyeDepth_M); - Measurement(shoulderAndArmLength_M); - Measurement(underarmLength_M); - Measurement(cervicaleToWristLength_M); - Measurement(shoulderToElbowLength_M); - Measurement(armLength_M); - //hand - Measurement(handWidth_M); - Measurement(handLength_M); - Measurement(handGirth_M); - //leg - Measurement(thighGirth_M); - Measurement(midThighGirth_M); - Measurement(kneeGirth_M); - Measurement(calfGirth_M); - Measurement(ankleGirth_M); - Measurement(kneeHeight_M); - Measurement(ankleHeight_M); - //foot - Measurement(footWidth_M); - Measurement(footLength_M); - //heights - Measurement(cervicaleHeight_M); - Measurement(cervicaleToKneeHeight_M); - Measurement(waistHeight_M); - Measurement(highHipHeight_M); - Measurement(hipHeight_M); - Measurement(waistToHipHeight_M); - Measurement(waistToKneeHeight_M); - Measurement(crotchHeight_M); - //extended - Measurement(heightFrontNeckBasePoint_M); - Measurement(heightBaseNeckSidePoint_M); - Measurement(heightShoulderPoint_M); - Measurement(heightNipplePoint_M); - Measurement(heightBackAngleAxilla_M); - Measurement(heightScapularPoint_M); - Measurement(heightUnderButtockFolds_M); - Measurement(hipsExcludingProtrudingAbdomen_M); - Measurement(girthFootInstep_M); - Measurement(sideWaistToFloor_M); - Measurement(frontWaistToFloor_M); - Measurement(arcThroughGroinArea_M); - Measurement(waistToPlaneSeat_M); - Measurement(neckToRadialPoint_M); - Measurement(neckToThirdFinger_M); - Measurement(neckToFirstLineChestCircumference_M); - Measurement(frontWaistLength_M); - Measurement(arcThroughShoulderJoint_M); - Measurement(neckToBackLineChestCircumference_M); - Measurement(waistToNeckSide_M); - Measurement(arcLengthUpperBody_M); - Measurement(chestWidth_M); - Measurement(anteroposteriorDiameterHands_M); - Measurement(heightClavicularPoint_M); - Measurement(heightArmholeSlash_M); - Measurement(slashShoulderHeight_M); - Measurement(halfGirthNeck_M); - Measurement(halfGirthNeckForShirts_M); - Measurement(halfGirthChestFirst_M); - Measurement(halfGirthChestSecond_M); - Measurement(halfGirthChestThird_M); - Measurement(halfGirthWaist_M); - Measurement(halfGirthHipsConsideringProtrudingAbdomen_M); - Measurement(halfGirthHipsExcludingProtrudingAbdomen_M); - Measurement(girthKneeFlexedFeet_M); - Measurement(neckTransverseDiameter_M); - Measurement(frontSlashShoulderHeight_M); - Measurement(neckToFrontWaistLine_M); - Measurement(handVerticalDiameter_M); - Measurement(neckToKneePoint_M); - Measurement(waistToKnee_M); - Measurement(shoulderHeight_M); - Measurement(headHeight_M); - Measurement(bodyPosition_M); - Measurement(arcBehindShoulderGirdle_M); - Measurement(neckToNeckBase_M); - Measurement(depthWaistFirst_M); - Measurement(depthWaistSecond_M); -} + const qreal value = GetParametrDouble(domElement, AttrValue, "0.0"); + const qreal size_increase = GetParametrDouble(domElement, AttrSize_increase, "0.0"); + const qreal height_increase = GetParametrDouble(domElement, AttrHeight_increase, "0.0"); -//--------------------------------------------------------------------------------------------------------------------- -void VStandardMeasurements::Measurement(const QString &tag) -{ - const QDomNodeList nodeList = this->elementsByTagName(tag); - if (nodeList.isEmpty()) + if (MUnit() == Unit::Mm)// Convert to Cm. { - qDebug()<<"Measurement" << tag <<"doesn't exist"<AddMeasurement(tag, VMeasurement(value/10.0, size_increase/10.0, height_increase/10.0, + qApp->GuiText(tag), qApp->Description(tag), tag)); } - else + else// Cm or inch. { - const QDomNode domNode = nodeList.at(0); - if (domNode.isNull() == false && domNode.isElement()) - { - const QDomElement domElement = domNode.toElement(); - if (domElement.isNull() == false) - { - const qreal value = GetParametrDouble(domElement, AttrValue, "0.0"); - const qreal size_increase = GetParametrDouble(domElement, AttrSize_increase, "0.0"); - const qreal height_increase = GetParametrDouble(domElement, AttrHeight_increase, "0.0"); - - if (MUnit() == Unit::Mm)// Convert to Cm. - { - data->AddMeasurement(tag, VMeasurement(value/10.0, size_increase/10.0, height_increase/10.0, - qApp->GuiText(tag), qApp->Description(tag), tag)); - } - else// Cm or inch. - { - data->AddMeasurement(tag, VMeasurement(value, size_increase, height_increase, qApp->GuiText(tag), - qApp->Description(tag), tag)); - } - } - } + data->AddMeasurement(tag, VMeasurement(value, size_increase, height_increase, qApp->GuiText(tag), + qApp->Description(tag), tag)); } } diff --git a/src/app/xml/vstandardmeasurements.h b/src/app/xml/vstandardmeasurements.h index 92b50a430..c9d0ee1de 100644 --- a/src/app/xml/vstandardmeasurements.h +++ b/src/app/xml/vstandardmeasurements.h @@ -29,7 +29,7 @@ #ifndef VSTANDARDMEASUREMENTS_H #define VSTANDARDMEASUREMENTS_H -#include "vdomdocument.h" +#include "vabstractmeasurements.h" /* VST_VERSION is (major << 16) + (minor << 8) + patch. @@ -39,26 +39,24 @@ // max support version of format #define VST_VERSION 0x000100 -class VStandardMeasurements:public VDomDocument +class VStandardMeasurements:public VAbstractMeasurements { public: VStandardMeasurements(VContainer *data); virtual ~VStandardMeasurements(); - Unit MUnit(); - QString Description(); - void Measurements(); - void SetSize(); - void SetHeight(); + QString Description(); + void SetSize(); + void SetHeight(); static const QString TagMeasurement; static const QString TagDescription; static const QString TagSize; static const QString TagHeight; - static const QString AttrValue; static const QString AttrSize_increase; static const QString AttrHeight_increase; +protected: + virtual void ReadMeasurement(const QDomElement &domElement, const QString &tag); private: Q_DISABLE_COPY(VStandardMeasurements) - void Measurement(const QString &tag); }; #endif // VSTANDARDMEASUREMENTS_H diff --git a/src/app/xml/xml.pri b/src/app/xml/xml.pri index d9b56eea9..90ca2739c 100644 --- a/src/app/xml/xml.pri +++ b/src/app/xml/xml.pri @@ -3,11 +3,13 @@ HEADERS += \ xml/vdomdocument.h \ xml/vpattern.h \ xml/vstandardmeasurements.h \ - xml/vindividualmeasurements.h + xml/vindividualmeasurements.h \ + xml/vabstractmeasurements.h SOURCES += \ xml/vtoolrecord.cpp \ xml/vdomdocument.cpp \ xml/vpattern.cpp \ xml/vstandardmeasurements.cpp \ - xml/vindividualmeasurements.cpp + xml/vindividualmeasurements.cpp \ + xml/vabstractmeasurements.cpp