Fixed broken feature 'Default height and size'.

--HG--
branch : develop
This commit is contained in:
Roman Telezhynskyi 2016-01-03 15:21:30 +02:00
parent fa410de76d
commit 65bf17fcf9
4 changed files with 114 additions and 66 deletions

View File

@ -88,12 +88,10 @@ DialogPatternProperties::DialogPatternProperties(VPattern *doc, VContainer *pat
InitComboBox(ui->comboBoxHeight, heights); InitComboBox(ui->comboBoxHeight, heights);
InitComboBox(ui->comboBoxSize, sizes); InitComboBox(ui->comboBoxSize, sizes);
const QString height = QString().setNum(static_cast<int>(UnitConvertor(doc->GetDefCustomHeight(), const QString height = QString().setNum(doc->GetDefCustomHeight());
*pattern->GetPatternUnit(), Unit::Cm)));
SetDefaultHeight(height); SetDefaultHeight(height);
const QString size = QString().setNum(static_cast<int>(UnitConvertor(doc->GetDefCustomSize(), const QString size = QString().setNum(doc->GetDefCustomSize());
*pattern->GetPatternUnit(), Unit::Cm)));
SetDefaultSize(size); SetDefaultSize(size);
connect(ui->radioButtonDefFromP, &QRadioButton::toggled, this, &DialogPatternProperties::ToggleComboBox); connect(ui->radioButtonDefFromP, &QRadioButton::toggled, this, &DialogPatternProperties::ToggleComboBox);
@ -454,18 +452,12 @@ void DialogPatternProperties::SaveDefValues()
if (ui->radioButtonDefFromM->isChecked()) if (ui->radioButtonDefFromM->isChecked())
{ {
doc->SetDefCustom(false); doc->SetDefCustom(false);
doc->SetDefCustomHeight(0);
doc->SetDefCustomSize(0);
} }
else else
{ {
doc->SetDefCustom(true); doc->SetDefCustom(true);
const int height = static_cast<int>(UnitConvertor(ui->comboBoxHeight->currentText().toInt(), doc->SetDefCustomHeight(ui->comboBoxHeight->currentText().toInt());
Unit::Cm, *pattern->GetPatternUnit())); doc->SetDefCustomSize(ui->comboBoxSize->currentText().toInt());
doc->SetDefCustomHeight(height);
const int size = static_cast<int>(UnitConvertor(ui->comboBoxSize->currentText().toInt(),
Unit::Cm, *pattern->GetPatternUnit()));
doc->SetDefCustomSize(size);
} }
defaultChanged = false; defaultChanged = false;
} }
@ -481,7 +473,7 @@ void DialogPatternProperties::SetDefaultHeight(const QString &def)
} }
else else
{ {
const int height = static_cast<int>(UnitConvertor(pattern->height(), *pattern->GetPatternUnit(), Unit::Cm)); const int height = static_cast<int>(pattern->height());
index = ui->comboBoxHeight->findText(QString().setNum(height)); index = ui->comboBoxHeight->findText(QString().setNum(height));
if (index != -1) if (index != -1)
{ {
@ -502,7 +494,7 @@ void DialogPatternProperties::SetDefaultSize(const QString &def)
} }
else else
{ {
const int size = static_cast<int>(UnitConvertor(pattern->size(), *pattern->GetPatternUnit(), Unit::Cm)); const int size = static_cast<int>(pattern->size());
index = ui->comboBoxSize->findText(QString().setNum(size)); index = ui->comboBoxSize->findText(QString().setNum(size));
if (index != -1) if (index != -1)
{ {
@ -572,7 +564,8 @@ void DialogPatternProperties::InitComboBox(QComboBox *box, const QMap<GVal, bool
i.next(); i.next();
if (i.value() && i.key() != GVal::ALL) if (i.value() && i.key() != GVal::ALL)
{ {
box->addItem(QString().setNum(static_cast<int>(i.key()))); box->addItem(QString().setNum(static_cast<int>(UnitConvertor(static_cast<int>(i.key()), Unit::Cm,
*pattern->GetPatternUnit()))));
} }
} }
} }

View File

@ -2693,8 +2693,7 @@ void MainWindow::ChangedHeight(const QString &text)
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void MainWindow::SetDefaultHeight() void MainWindow::SetDefaultHeight()
{ {
const QString defHeight = QString().setNum(static_cast<int>(UnitConvertor(doc->GetDefCustomHeight(), const QString defHeight = QString().setNum(doc->GetDefCustomHeight());
*pattern->GetPatternUnit(), Unit::Cm)));
int index = gradationHeights->findText(defHeight); int index = gradationHeights->findText(defHeight);
if (index != -1) if (index != -1)
{ {
@ -2707,18 +2706,14 @@ void MainWindow::SetDefaultHeight()
{ {
gradationHeights->setCurrentIndex(index); gradationHeights->setCurrentIndex(index);
} }
else }
{
pattern->SetHeight(gradationHeights->currentText().toInt()); pattern->SetHeight(gradationHeights->currentText().toInt());
}
}
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void MainWindow::SetDefaultSize() void MainWindow::SetDefaultSize()
{ {
const QString defSize = QString().setNum(static_cast<int>(UnitConvertor(doc->GetDefCustomSize(), const QString defSize = QString().setNum(doc->GetDefCustomSize());
*pattern->GetPatternUnit(), Unit::Cm)));
int index = gradationSizes->findText(defSize); int index = gradationSizes->findText(defSize);
if (index != -1) if (index != -1)
{ {
@ -2731,11 +2726,8 @@ void MainWindow::SetDefaultSize()
{ {
gradationSizes->setCurrentIndex(index); gradationSizes->setCurrentIndex(index);
} }
else }
{
pattern->SetSize(gradationSizes->currentText().toInt()); pattern->SetSize(gradationSizes->currentText().toInt());
}
}
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------

View File

@ -2546,8 +2546,17 @@ void VPattern::SetDefCustom(bool value)
QDomNode domNode = tags.at(0); QDomNode domNode = tags.at(0);
QDomElement domElement = domNode.toElement(); QDomElement domElement = domNode.toElement();
if (domElement.isNull() == false) if (domElement.isNull() == false)
{
if (value == false)
{
domElement.removeAttribute(AttrDefHeight);
SetDefCustomHeight(0);
SetDefCustomSize(0);
}
else
{ {
SetAttribute(domElement, AttrCustom, value); SetAttribute(domElement, AttrCustom, value);
}
modified = true; modified = true;
} }
else else

View File

@ -654,6 +654,29 @@ void VAbstractPattern::SetGradationHeights(const QMap<GHeights, bool> &options)
{ {
case 0: // TagHeights case 0: // TagHeights
SetAttribute(domElement, AttrAll, options.value(GHeights::ALL)); SetAttribute(domElement, AttrAll, options.value(GHeights::ALL));
if (options.value(GHeights::ALL))
{
domElement.removeAttribute(AttrH92);
domElement.removeAttribute(AttrH98);
domElement.removeAttribute(AttrH104);
domElement.removeAttribute(AttrH110);
domElement.removeAttribute(AttrH116);
domElement.removeAttribute(AttrH122);
domElement.removeAttribute(AttrH128);
domElement.removeAttribute(AttrH134);
domElement.removeAttribute(AttrH140);
domElement.removeAttribute(AttrH146);
domElement.removeAttribute(AttrH152);
domElement.removeAttribute(AttrH158);
domElement.removeAttribute(AttrH164);
domElement.removeAttribute(AttrH170);
domElement.removeAttribute(AttrH176);
domElement.removeAttribute(AttrH182);
domElement.removeAttribute(AttrH188);
domElement.removeAttribute(AttrH194);
}
else
{
SetAttribute(domElement, AttrH92, options.value(GHeights::H92)); SetAttribute(domElement, AttrH92, options.value(GHeights::H92));
SetAttribute(domElement, AttrH98, options.value(GHeights::H98)); SetAttribute(domElement, AttrH98, options.value(GHeights::H98));
SetAttribute(domElement, AttrH104, options.value(GHeights::H104)); SetAttribute(domElement, AttrH104, options.value(GHeights::H104));
@ -672,6 +695,7 @@ void VAbstractPattern::SetGradationHeights(const QMap<GHeights, bool> &options)
SetAttribute(domElement, AttrH182, options.value(GHeights::H182)); SetAttribute(domElement, AttrH182, options.value(GHeights::H182));
SetAttribute(domElement, AttrH188, options.value(GHeights::H188)); SetAttribute(domElement, AttrH188, options.value(GHeights::H188));
SetAttribute(domElement, AttrH194, options.value(GHeights::H194)); SetAttribute(domElement, AttrH194, options.value(GHeights::H194));
}
modified = true; modified = true;
emit patternChanged(false); emit patternChanged(false);
@ -798,6 +822,29 @@ void VAbstractPattern::SetGradationSizes(const QMap<GSizes, bool> &options)
break; break;
case 1: // TagSizes case 1: // TagSizes
SetAttribute(domElement, AttrAll, options.value(GSizes::ALL)); SetAttribute(domElement, AttrAll, options.value(GSizes::ALL));
if (options.value(GSizes::ALL))
{
domElement.removeAttribute(AttrS22);
domElement.removeAttribute(AttrS24);
domElement.removeAttribute(AttrS26);
domElement.removeAttribute(AttrS28);
domElement.removeAttribute(AttrS30);
domElement.removeAttribute(AttrS32);
domElement.removeAttribute(AttrS34);
domElement.removeAttribute(AttrS36);
domElement.removeAttribute(AttrS38);
domElement.removeAttribute(AttrS40);
domElement.removeAttribute(AttrS42);
domElement.removeAttribute(AttrS44);
domElement.removeAttribute(AttrS46);
domElement.removeAttribute(AttrS48);
domElement.removeAttribute(AttrS50);
domElement.removeAttribute(AttrS52);
domElement.removeAttribute(AttrS54);
domElement.removeAttribute(AttrS56);
}
else
{
SetAttribute(domElement, AttrS22, options.value(GSizes::S22)); SetAttribute(domElement, AttrS22, options.value(GSizes::S22));
SetAttribute(domElement, AttrS24, options.value(GSizes::S24)); SetAttribute(domElement, AttrS24, options.value(GSizes::S24));
SetAttribute(domElement, AttrS26, options.value(GSizes::S26)); SetAttribute(domElement, AttrS26, options.value(GSizes::S26));
@ -816,6 +863,7 @@ void VAbstractPattern::SetGradationSizes(const QMap<GSizes, bool> &options)
SetAttribute(domElement, AttrS52, options.value(GSizes::S52)); SetAttribute(domElement, AttrS52, options.value(GSizes::S52));
SetAttribute(domElement, AttrS54, options.value(GSizes::S54)); SetAttribute(domElement, AttrS54, options.value(GSizes::S54));
SetAttribute(domElement, AttrS56, options.value(GSizes::S56)); SetAttribute(domElement, AttrS56, options.value(GSizes::S56));
}
modified = true; modified = true;
emit patternChanged(false); emit patternChanged(false);
@ -973,8 +1021,14 @@ void VAbstractPattern::CheckTagExists(const QString &tag)
case 4: //TagGradation case 4: //TagGradation
{ {
QDomElement gradation = createElement(TagGradation); QDomElement gradation = createElement(TagGradation);
gradation.appendChild(createElement(TagHeights));
gradation.appendChild(createElement(TagSizes)); QDomElement heights = createElement(TagHeights);
heights.setAttribute(AttrAll, QLatin1Literal("true"));
gradation.appendChild(heights);
QDomElement sizes = createElement(TagSizes);
sizes.setAttribute(AttrAll, QLatin1Literal("true"));
gradation.appendChild(sizes);
for (int i = tags.indexOf(tag)-1; i >= 0; --i) for (int i = tags.indexOf(tag)-1; i >= 0; --i)
{ {