/************************************************************************ ** ** @file vindividualmeasurements.cpp ** @author Roman Telezhynskyi ** @date 8 3, 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) 2013 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 "vindividualmeasurements.h" #include "../core/vapplication.h" #include 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::TagEmail = QStringLiteral("email"); const QString VIndividualMeasurements::SexMale = QStringLiteral("male"); const QString VIndividualMeasurements::SexFemale = QStringLiteral("female"); //--------------------------------------------------------------------------------------------------------------------- VIndividualMeasurements::VIndividualMeasurements(VContainer *data) :VAbstractMeasurements(data) { SCASSERT(data != nullptr) } //--------------------------------------------------------------------------------------------------------------------- VIndividualMeasurements::~VIndividualMeasurements() {} //--------------------------------------------------------------------------------------------------------------------- void VIndividualMeasurements::setUnit(const Unit &unit) { setTagText(TagUnit, UnitsToStr(unit)); } //--------------------------------------------------------------------------------------------------------------------- void VIndividualMeasurements::Measurements() { VAbstractMeasurements::Measurements(); //heights Measurement(height_M); //extended Measurement(size_M); } //--------------------------------------------------------------------------------------------------------------------- void VIndividualMeasurements::ReadMeasurement(const QDomElement &domElement, const QString &tag) { qreal value = GetParametrDouble(domElement, AttrValue, "0.0"); value = UnitConvertor(value, MUnit(), qApp->patternUnit()); data->AddVariable(tag, new VMeasurement(tag, value, qApp->GuiText(tag), qApp->Description(tag), tag)); } //--------------------------------------------------------------------------------------------------------------------- QString VIndividualMeasurements::FamilyName() const { return UniqueTagText(TagFamily_name, ""); } //--------------------------------------------------------------------------------------------------------------------- void VIndividualMeasurements::setFamilyName(const QString &text) { setTagText(TagFamily_name, text); } //--------------------------------------------------------------------------------------------------------------------- QString VIndividualMeasurements::GivenName() const { return UniqueTagText(TagGiven_name, ""); } //--------------------------------------------------------------------------------------------------------------------- void VIndividualMeasurements::setGivenName(const QString &text) { setTagText(TagGiven_name, text); } //--------------------------------------------------------------------------------------------------------------------- QDate VIndividualMeasurements::BirthDate() const { const QString date = UniqueTagText(TagBirth_date, "1900-01-01"); return QDate::fromString(date, "yyyy-MM-dd"); } //--------------------------------------------------------------------------------------------------------------------- void VIndividualMeasurements::setBirthDate(const QDate &date) { setTagText(TagBirth_date, date.toString("yyyy-MM-dd")); } //--------------------------------------------------------------------------------------------------------------------- SexType VIndividualMeasurements::Sex() const { return StrToGender(UniqueTagText(TagSex, "")); } //--------------------------------------------------------------------------------------------------------------------- void VIndividualMeasurements::setSex(const SexType &sex) { setTagText(TagSex, GenderToStr(sex)); } //--------------------------------------------------------------------------------------------------------------------- QString VIndividualMeasurements::Mail() const { return UniqueTagText(TagEmail, ""); } //--------------------------------------------------------------------------------------------------------------------- void VIndividualMeasurements::setMail(const QString &text) { setTagText(TagEmail, text); } //--------------------------------------------------------------------------------------------------------------------- QString VIndividualMeasurements::GenderToStr(const SexType &sex) { switch (sex) { case SexType::Male: return SexMale; case SexType::Female: return SexFemale; default: return SexMale; } } //--------------------------------------------------------------------------------------------------------------------- SexType VIndividualMeasurements::StrToGender(const QString &sex) { QStringList genders = QStringList() << SexMale << SexFemale; switch (genders.indexOf(sex)) { case 0: // SexMale return SexType::Male; case 1: // SexFemale return SexType::Female; default: return SexType::Male; } }