/************************************************************************ ** ** @file dialognewmeasurements.cpp ** @author Roman Telezhynskyi ** @date 12 7, 2015 ** ** @brief ** @copyright ** This source code is part of the Valentina project, a pattern making ** program, whose allow create and modeling patterns of clothing. ** Copyright (C) 2015 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 "dialognewmeasurements.h" #include "ui_dialognewmeasurements.h" #include //--------------------------------------------------------------------------------------------------------------------- DialogNewMeasurements::DialogNewMeasurements(QWidget *parent) :QDialog(parent), ui(new Ui::DialogNewMeasurements), m_isInitialized(false) { ui->setupUi(this); InitMTypes(); InitUnits(); } //--------------------------------------------------------------------------------------------------------------------- DialogNewMeasurements::~DialogNewMeasurements() { delete ui; } //--------------------------------------------------------------------------------------------------------------------- auto DialogNewMeasurements::Type() const -> MeasurementsType { return static_cast(ui->comboBoxMType->currentData().toInt()); } //--------------------------------------------------------------------------------------------------------------------- auto DialogNewMeasurements::MUnit() const -> Unit { return static_cast(ui->comboBoxUnit->currentData().toInt()); } //--------------------------------------------------------------------------------------------------------------------- void DialogNewMeasurements::changeEvent(QEvent *event) { if (event->type() == QEvent::LanguageChange) { // retranslate designer form (single inheritance approach) ui->retranslateUi(this); InitMTypes(); InitUnits(); } // remember to call base class implementation QDialog::changeEvent(event); } //--------------------------------------------------------------------------------------------------------------------- void DialogNewMeasurements::showEvent(QShowEvent *event) { QDialog::showEvent( event ); if ( event->spontaneous() ) { return; } if (m_isInitialized) { return; } // do your init stuff here setMaximumSize(size()); setMinimumSize(size()); m_isInitialized = true;//first show windows are held } //--------------------------------------------------------------------------------------------------------------------- void DialogNewMeasurements::InitMTypes() { int val = static_cast(MeasurementsType::Unknown); if (ui->comboBoxMType->currentIndex() != -1) { val = ui->comboBoxMType->currentData().toInt(); } ui->comboBoxMType->blockSignals(true); ui->comboBoxMType->clear(); ui->comboBoxMType->addItem(tr("Individual"), static_cast(MeasurementsType::Individual)); ui->comboBoxMType->addItem(tr("Multisize"), static_cast(MeasurementsType::Multisize)); ui->comboBoxMType->blockSignals(false); int const index = ui->comboBoxMType->findData(val); if (index != -1) { ui->comboBoxMType->setCurrentIndex(index); } } //--------------------------------------------------------------------------------------------------------------------- void DialogNewMeasurements::InitUnits() { int val = static_cast(Unit::Cm); if (ui->comboBoxUnit->currentIndex() != -1) { val = ui->comboBoxUnit->currentData().toInt(); } ui->comboBoxUnit->blockSignals(true); ui->comboBoxUnit->clear(); ui->comboBoxUnit->addItem(tr("Centimeters"), static_cast(Unit::Cm)); ui->comboBoxUnit->addItem(tr("Millimiters"), static_cast(Unit::Mm)); ui->comboBoxUnit->addItem(tr("Inches"), static_cast(Unit::Inch)); ui->comboBoxUnit->setCurrentIndex(-1); ui->comboBoxUnit->blockSignals(false); int index = ui->comboBoxUnit->findData(val); if (index != -1) { ui->comboBoxUnit->setCurrentIndex(index); } else { index = ui->comboBoxUnit->findData(static_cast(Unit::Cm)); ui->comboBoxUnit->setCurrentIndex(index); } }