Fixes #3294 TechDraw: Prevent scale changing

Now scale number changing controls are disabled by default and enabled only in
Custom Scale mode.

Previously user was all time allowed to edit scale numerical values.
But this had effect on the size of generated views in drawing page only
when scale type was set to Custom.
This commit is contained in:
TeroK
2018-01-03 19:23:58 +02:00
committed by Yorik van Havre
parent c94bb4d2f8
commit c5e5958a6e

View File

@@ -72,6 +72,16 @@ TaskProjGroup::TaskProjGroup(TechDraw::DrawProjGroup* featView, bool mode) :
setFractionalScale(multiView->getScale());
ui->cmbScaleType->setCurrentIndex(multiView->ScaleType.getValue());
//Allow or prevent scale changing initially
if (multiView->ScaleType.isValue("Custom")) {
ui->sbScaleNum->setEnabled(true);
ui->sbScaleDen->setEnabled(true);
}
else {
ui->sbScaleNum->setEnabled(false);
ui->sbScaleDen->setEnabled(false);
}
// Initially toggle view checkboxes if needed
setupViewCheckboxes(true);
@@ -229,6 +239,10 @@ void TaskProjGroup::scaleTypeChanged(int index)
if(blockUpdate)
return;
//defaults to prevent scale changing
ui->sbScaleNum->setEnabled(false);
ui->sbScaleDen->setEnabled(false);
if(index == 0) {
// Document Scale Type
Gui::Command::doCommand(Gui::Command::Doc, "App.activeDocument().%s.ScaleType = '%s'", multiView->getNameInDocument()
@@ -241,6 +255,9 @@ void TaskProjGroup::scaleTypeChanged(int index)
// Custom Scale Type
Gui::Command::doCommand(Gui::Command::Doc, "App.activeDocument().%s.ScaleType = '%s'", multiView->getNameInDocument()
, "Custom");
ui->sbScaleNum->setEnabled(true);
ui->sbScaleDen->setEnabled(true);
int a = ui->sbScaleNum->value();
int b = ui->sbScaleDen->value();
double scale = (double) a / (double) b;