From 53f74153ea5b726477500fe34d9937263b65b9c0 Mon Sep 17 00:00:00 2001 From: jriegel Date: Mon, 16 Dec 2013 15:09:43 +0100 Subject: [PATCH] Imperial Sketcher grid in Dialog --- src/Base/UnitsApi.cpp | 2 + src/Base/UnitsApi.h | 4 +- src/Mod/Sketcher/Gui/TaskSketcherGeneral.cpp | 43 +++++++++- src/Mod/Sketcher/Gui/TaskSketcherGeneral.h | 1 + src/Mod/Sketcher/Gui/TaskSketcherGeneral.ui | 89 +------------------- 5 files changed, 50 insertions(+), 89 deletions(-) diff --git a/src/Base/UnitsApi.cpp b/src/Base/UnitsApi.cpp index 3693ca350..7b95925aa 100644 --- a/src/Base/UnitsApi.cpp +++ b/src/Base/UnitsApi.cpp @@ -60,6 +60,7 @@ using namespace Base; double UnitsApi::defaultFactor = 1.0; UnitsSchema *UnitsApi::UserPrefSystem = new UnitsSchemaInternal(); +UnitSystem UnitsApi::actSystem = SI1; //double UnitsApi::UserPrefFactor [50]; //QString UnitsApi::UserPrefUnit [50]; @@ -88,6 +89,7 @@ void UnitsApi::setSchema(UnitSystem s) case SI2 : UserPrefSystem = new UnitsSchemaMKS(); break; case Imperial1: UserPrefSystem = new UnitsSchemaImperial1(); break; } + actSystem = s; UserPrefSystem->setSchemaUnits(); // if necesarry a unit schema can change the constants in Quantity (e.g. mi=1.8km rather then 1.6km). } diff --git a/src/Base/UnitsApi.h b/src/Base/UnitsApi.h index 02db7ddb2..584319830 100644 --- a/src/Base/UnitsApi.h +++ b/src/Base/UnitsApi.h @@ -61,6 +61,8 @@ public: * for representative strings. */ static void setSchema(UnitSystem s); + /// return the active schema + static UnitSystem getSchema(void){return actSystem;} static QString schemaTranslate(Base::Quantity quant,double &factor,QString &unitString); static QString schemaTranslate(Base::Quantity quant){ // to satisfy GCC @@ -92,7 +94,7 @@ public: protected: // not used at the moment static UnitsSchema * UserPrefSystem; - + static UnitSystem actSystem; /// number of decimals for floats static int UserPrefDecimals; diff --git a/src/Mod/Sketcher/Gui/TaskSketcherGeneral.cpp b/src/Mod/Sketcher/Gui/TaskSketcherGeneral.cpp index 879e4bbe4..e3c62fed9 100644 --- a/src/Mod/Sketcher/Gui/TaskSketcherGeneral.cpp +++ b/src/Mod/Sketcher/Gui/TaskSketcherGeneral.cpp @@ -78,14 +78,18 @@ TaskSketcherGeneral::TaskSketcherGeneral(ViewProviderSketch *sketchView) .GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/Sketcher/General"); ui->checkBoxShowGrid->setChecked(hGrp->GetBool("ShowGrid", true)); + fillGridCombo(); QString size = ui->comboBoxGridSize->currentText(); size = QString::fromAscii(hGrp->GetASCII("GridSize", (const char*)size.toAscii()).c_str()); - ui->comboBoxGridSize->setCurrentIndex(ui->comboBoxGridSize->findText(size)); + int it = ui->comboBoxGridSize->findText(size); + if(it != -1) + ui->comboBoxGridSize->setCurrentIndex(it); ui->checkBoxGridSnap->setChecked(hGrp->GetBool("GridSnap", ui->checkBoxGridSnap->isChecked())); ui->checkBoxAutoconstraints->setChecked(hGrp->GetBool("AutoConstraints", ui->checkBoxAutoconstraints->isChecked())); } + TaskSketcherGeneral::~TaskSketcherGeneral() { Base::Reference hGrp = App::GetApplication().GetUserParameter() @@ -102,6 +106,43 @@ TaskSketcherGeneral::~TaskSketcherGeneral() Gui::Selection().Detach(this); } +void TaskSketcherGeneral::fillGridCombo(void) +{ + if(Base::UnitsApi::getSchema() == Base::UnitSystem::Imperial1 ){ + ui->comboBoxGridSize->addItem(QString::fromUtf8("1/128 \"")); + ui->comboBoxGridSize->addItem(QString::fromUtf8("1/64 \"")); + ui->comboBoxGridSize->addItem(QString::fromUtf8("1/32 \"")); + ui->comboBoxGridSize->addItem(QString::fromUtf8("1/16 \"")); + ui->comboBoxGridSize->addItem(QString::fromUtf8("1/8 \"")); + ui->comboBoxGridSize->addItem(QString::fromUtf8("1/4 \"")); + ui->comboBoxGridSize->addItem(QString::fromUtf8("1/2 \"")); + ui->comboBoxGridSize->addItem(QString::fromUtf8("1 \"")); + ui->comboBoxGridSize->addItem(QString::fromUtf8("2 \"")); + ui->comboBoxGridSize->addItem(QString::fromUtf8("4 \"")); + ui->comboBoxGridSize->addItem(QString::fromUtf8("8 \"")); + ui->comboBoxGridSize->addItem(QString::fromUtf8("16 \"")); + + ui->comboBoxGridSize->setCurrentIndex(ui->comboBoxGridSize->findText(QString::fromUtf8("1/4 \""))); + }else{ + ui->comboBoxGridSize->addItem(QString::fromUtf8("0.1 mm")); + ui->comboBoxGridSize->addItem(QString::fromUtf8("0.2 mm")); + ui->comboBoxGridSize->addItem(QString::fromUtf8("0.5 mm")); + ui->comboBoxGridSize->addItem(QString::fromUtf8("1 mm")); + ui->comboBoxGridSize->addItem(QString::fromUtf8("2 mm")); + ui->comboBoxGridSize->addItem(QString::fromUtf8("5 mm")); + ui->comboBoxGridSize->addItem(QString::fromUtf8("10 mm")); + ui->comboBoxGridSize->addItem(QString::fromUtf8("20 mm")); + ui->comboBoxGridSize->addItem(QString::fromUtf8("50 mm")); + ui->comboBoxGridSize->addItem(QString::fromUtf8("100 mm")); + ui->comboBoxGridSize->addItem(QString::fromUtf8("200 mm")); + ui->comboBoxGridSize->addItem(QString::fromUtf8("500 mm")); + ui->comboBoxGridSize->addItem(QString::fromUtf8("1 m")); + ui->comboBoxGridSize->addItem(QString::fromUtf8("2 m")); + + ui->comboBoxGridSize->setCurrentIndex(ui->comboBoxGridSize->findText(QString::fromUtf8("10 mm"))); + } +} + void TaskSketcherGeneral::toggleGridView(bool on) { ui->label->setEnabled(on); diff --git a/src/Mod/Sketcher/Gui/TaskSketcherGeneral.h b/src/Mod/Sketcher/Gui/TaskSketcherGeneral.h index b9528c9ba..6644e3883 100644 --- a/src/Mod/Sketcher/Gui/TaskSketcherGeneral.h +++ b/src/Mod/Sketcher/Gui/TaskSketcherGeneral.h @@ -61,6 +61,7 @@ protected: void changeEvent(QEvent *e); ViewProviderSketch *sketchView; + void fillGridCombo(void); private: QWidget* proxy; diff --git a/src/Mod/Sketcher/Gui/TaskSketcherGeneral.ui b/src/Mod/Sketcher/Gui/TaskSketcherGeneral.ui index 2d375613b..2511526d3 100644 --- a/src/Mod/Sketcher/Gui/TaskSketcherGeneral.ui +++ b/src/Mod/Sketcher/Gui/TaskSketcherGeneral.ui @@ -7,7 +7,7 @@ 0 0 153 - 112 + 115 @@ -39,93 +39,8 @@ true - 6 + -1 - - - 0.1 mm - - - - - 0.2 mm - - - - - 0.5 mm - - - - - 1 mm - - - - - 2 mm - - - - - 5 mm - - - - - 10 mm - - - - - 20 mm - - - - - 50 mm - - - - - 100 mm - - - - - 200 mm - - - - - 500 mm - - - - - 1 m - - - - - 2 m - - - - - 5 m - - - - - 10 m - - - - - 20 m - -