Skip to content

Commit

Permalink
+ fixes #854: Ability to change number of digits to the right of deci…
Browse files Browse the repository at this point in the history
…mal place in spinboxes
  • Loading branch information
wwmayer committed Feb 16, 2014
1 parent 2d51152 commit fb994e2
Show file tree
Hide file tree
Showing 22 changed files with 97 additions and 13 deletions.
11 changes: 11 additions & 0 deletions src/Gui/InputVector.cpp
Expand Up @@ -28,6 +28,7 @@

#include "InputVector.h"
#include "ui_InputVector.h"
#include <Base/UnitsApi.h>

using namespace Gui;

Expand Down Expand Up @@ -63,6 +64,10 @@ LocationWidget::LocationWidget (QWidget * parent)
box->addWidget(dLabel, 3, 0, 1, 1);
box->addWidget(dValue, 3, 1, 1, 1);

xValue->setDecimals(Base::UnitsApi::getDecimals());
yValue->setDecimals(Base::UnitsApi::getDecimals());
zValue->setDecimals(Base::UnitsApi::getDecimals());

QGridLayout* gridLayout = new QGridLayout(this);
gridLayout->addLayout(box, 0, 0, 1, 2);

Expand Down Expand Up @@ -177,6 +182,9 @@ Base::Vector3d LocationWidget::getUserDirection(bool* ok) const
Gui::Dialog::Ui_InputVector iv;
QDialog dlg(const_cast<LocationWidget*>(this));
iv.setupUi(&dlg);
iv.vectorX->setDecimals(Base::UnitsApi::getDecimals());
iv.vectorY->setDecimals(Base::UnitsApi::getDecimals());
iv.vectorZ->setDecimals(Base::UnitsApi::getDecimals());
Base::Vector3d dir;
if (dlg.exec()) {
dir.x = iv.vectorX->value();
Expand Down Expand Up @@ -225,6 +233,9 @@ Base::Vector3d LocationDialog::getUserDirection(bool* ok) const
Gui::Dialog::Ui_InputVector iv;
QDialog dlg(const_cast<LocationDialog*>(this));
iv.setupUi(&dlg);
iv.vectorX->setDecimals(Base::UnitsApi::getDecimals());
iv.vectorY->setDecimals(Base::UnitsApi::getDecimals());
iv.vectorZ->setDecimals(Base::UnitsApi::getDecimals());
Base::Vector3d dir;
if (dlg.exec()) {
dir.x = iv.vectorX->value();
Expand Down
12 changes: 12 additions & 0 deletions src/Gui/Placement.cpp
Expand Up @@ -35,6 +35,7 @@
#include <App/Document.h>
#include <App/PropertyGeo.h>
#include <Base/Console.h>
#include <Base/UnitsApi.h>

using namespace Gui::Dialog;

Expand Down Expand Up @@ -80,6 +81,17 @@ Placement::Placement(QWidget* parent, Qt::WFlags fl)
ui = new Ui_PlacementComp(this);
ui->applyPlacementChange->hide();

ui->xPos->setDecimals(Base::UnitsApi::getDecimals());
ui->yPos->setDecimals(Base::UnitsApi::getDecimals());
ui->zPos->setDecimals(Base::UnitsApi::getDecimals());
ui->xCnt->setDecimals(Base::UnitsApi::getDecimals());
ui->yCnt->setDecimals(Base::UnitsApi::getDecimals());
ui->zCnt->setDecimals(Base::UnitsApi::getDecimals());
ui->yawAngle->setDecimals(Base::UnitsApi::getDecimals());
ui->pitchAngle->setDecimals(Base::UnitsApi::getDecimals());
ui->rollAngle->setDecimals(Base::UnitsApi::getDecimals());
ui->angle->setDecimals(Base::UnitsApi::getDecimals());

ui->angle->setSuffix(QString::fromUtf8(" \xc2\xb0"));
ui->yawAngle->setSuffix(QString::fromUtf8(" \xc2\xb0"));
ui->pitchAngle->setSuffix(QString::fromUtf8(" \xc2\xb0"));
Expand Down
3 changes: 3 additions & 0 deletions src/Mod/Inspection/Gui/VisualInspection.cpp
Expand Up @@ -25,6 +25,7 @@
#include "VisualInspection.h"
#include "ui_VisualInspection.h"

#include <Base/UnitsApi.h>
#include <App/Document.h>
#include <App/DocumentObject.h>
#include <App/Application.h>
Expand Down Expand Up @@ -87,6 +88,8 @@ VisualInspection::VisualInspection(QWidget* parent, Qt::WFlags fl)
//FIXME: Not used yet
ui->textLabel2->hide();
ui->prefFloatSpinBox2->hide();
ui->prefFloatSpinBox1->setDecimals(Base::UnitsApi::getDecimals());
ui->prefFloatSpinBox2->setDecimals(Base::UnitsApi::getDecimals());

connect(ui->buttonHelp, SIGNAL(clicked()), Gui::getMainWindow(), SLOT(whatsThis()));

Expand Down
4 changes: 4 additions & 0 deletions src/Mod/Mesh/Gui/DlgRegularSolidImp.cpp
Expand Up @@ -32,6 +32,7 @@

#include <Base/PyObjectBase.h>
#include <Base/Interpreter.h>
#include <Base/UnitsApi.h>
#include <Gui/Application.h>
#include <Gui/Command.h>
#include <Gui/Document.h>
Expand All @@ -54,6 +55,9 @@ MeshGui::DlgRegularSolidImp::DlgRegularSolidImp(QWidget* parent, Qt::WFlags fl)
: QDialog( parent, fl )
{
this->setupUi(this);
QList<QDoubleSpinBox*> list = this->findChildren<QDoubleSpinBox*>();
for (QList<QDoubleSpinBox*>::iterator it = list.begin(); it != list.end(); ++it)
(*it)->setDecimals(Base::UnitsApi::getDecimals());
Gui::Command::doCommand(Gui::Command::Doc, "import Mesh,BuildRegularGeoms");

// set limits
Expand Down
3 changes: 3 additions & 0 deletions src/Mod/Part/Gui/CrossSections.cpp
Expand Up @@ -55,6 +55,7 @@
#include <Gui/View3DInventor.h>
#include <Gui/View3DInventorViewer.h>
#include <Base/Sequencer.h>
#include <Base/UnitsApi.h>

using namespace PartGui;
#undef CS_FUTURE // multi-threading causes some problems
Expand Down Expand Up @@ -124,6 +125,8 @@ CrossSections::CrossSections(const Base::BoundBox3d& bb, QWidget* parent, Qt::WF
ui = new Ui_CrossSections();
ui->setupUi(this);
ui->position->setRange(-DBL_MAX, DBL_MAX);
ui->position->setDecimals(Base::UnitsApi::getDecimals());
ui->distance->setDecimals(Base::UnitsApi::getDecimals());
vp = new ViewProviderCrossSections();

Base::Vector3d c = bbox.CalcCenter();
Expand Down
6 changes: 6 additions & 0 deletions src/Mod/Part/Gui/DlgExtrusion.cpp
Expand Up @@ -37,6 +37,7 @@
#include "DlgExtrusion.h"
#include "../App/PartFeature.h"
#include <Base/Console.h>
#include <Base/UnitsApi.h>
#include <App/Application.h>
#include <App/Document.h>
#include <App/DocumentObject.h>
Expand All @@ -57,6 +58,11 @@ DlgExtrusion::DlgExtrusion(QWidget* parent, Qt::WFlags fl)
ui->statusLabel->clear();
ui->labelNormal->hide();
ui->viewButton->hide();
ui->dirX->setDecimals(Base::UnitsApi::getDecimals());
ui->dirY->setDecimals(Base::UnitsApi::getDecimals());
ui->dirZ->setDecimals(Base::UnitsApi::getDecimals());
ui->dirLen->setDecimals(Base::UnitsApi::getDecimals());
ui->taperAngle->setDecimals(Base::UnitsApi::getDecimals());
ui->dirLen->setMinimumWidth(55); // needed to show all digits
findShapes();

Expand Down
20 changes: 12 additions & 8 deletions src/Mod/Part/Gui/DlgFilletEdges.cpp
Expand Up @@ -58,6 +58,7 @@
#include "../App/PartFeature.h"
#include "../App/FeatureFillet.h"
#include "../App/FeatureChamfer.h"
#include <Base/UnitsApi.h>
#include <App/Application.h>
#include <App/Document.h>
#include <App/DocumentObject.h>
Expand All @@ -84,6 +85,7 @@ QWidget *FilletRadiusDelegate::createEditor(QWidget *parent, const QStyleOptionV
return 0;

QDoubleSpinBox *editor = new QDoubleSpinBox(parent);
editor->setDecimals(Base::UnitsApi::getDecimals());
editor->setMinimum(0.0);
editor->setMaximum(INT_MAX);
editor->setSingleStep(0.1);
Expand All @@ -106,7 +108,7 @@ void FilletRadiusDelegate::setModelData(QWidget *editor, QAbstractItemModel *mod
spinBox->interpretText();
//double value = spinBox->value();
//QString value = QString::fromAscii("%1").arg(spinBox->value(),0,'f',2);
QString value = QLocale::system().toString(spinBox->value(),'f',2);
QString value = QLocale::system().toString(spinBox->value(),'f',Base::UnitsApi::getDecimals());

model->setData(index, value, Qt::EditRole);
}
Expand Down Expand Up @@ -197,6 +199,8 @@ DlgFilletEdges::DlgFilletEdges(FilletType type, Part::FilletBase* fillet, QWidge
ui->setupUi(this);
ui->filletStartRadius->setMaximum(INT_MAX);
ui->filletEndRadius->setMaximum(INT_MAX);
ui->filletStartRadius->setDecimals(Base::UnitsApi::getDecimals());
ui->filletEndRadius->setDecimals(Base::UnitsApi::getDecimals());

d->object = 0;
d->selection = new EdgeFaceSelection(d->object);
Expand Down Expand Up @@ -534,8 +538,8 @@ void DlgFilletEdges::setupFillet(const std::vector<App::DocumentObject*>& objs)
if (it != d->edge_ids.end()) {
int index = it - d->edge_ids.begin();
model->setData(model->index(index, 0), Qt::Checked, Qt::CheckStateRole);
model->setData(model->index(index, 1), QVariant(QLocale::system().toString(et->radius1,'f',2)));
model->setData(model->index(index, 2), QVariant(QLocale::system().toString(et->radius2,'f',2)));
model->setData(model->index(index, 1), QVariant(QLocale::system().toString(et->radius1,'f',Base::UnitsApi::getDecimals())));
model->setData(model->index(index, 2), QVariant(QLocale::system().toString(et->radius2,'f',Base::UnitsApi::getDecimals())));
}
}
}
Expand Down Expand Up @@ -630,8 +634,8 @@ void DlgFilletEdges::on_shapeObject_activated(int index)
for (std::vector<int>::iterator it = d->edge_ids.begin(); it != d->edge_ids.end(); ++it) {
model->setData(model->index(index, 0), QVariant(tr("Edge%1").arg(*it)));
model->setData(model->index(index, 0), QVariant(*it), Qt::UserRole);
model->setData(model->index(index, 1), QVariant(QLocale::system().toString(1.0,'f',2)));
model->setData(model->index(index, 2), QVariant(QLocale::system().toString(1.0,'f',2)));
model->setData(model->index(index, 1), QVariant(QLocale::system().toString(1.0,'f',Base::UnitsApi::getDecimals())));
model->setData(model->index(index, 2), QVariant(QLocale::system().toString(1.0,'f',Base::UnitsApi::getDecimals())));
std::stringstream element;
element << "Edge" << *it;
if (Gui::Selection().isSelected(part, element.str().c_str()))
Expand Down Expand Up @@ -701,7 +705,7 @@ void DlgFilletEdges::on_filletType_activated(int index)
void DlgFilletEdges::on_filletStartRadius_valueChanged(double radius)
{
QAbstractItemModel* model = ui->treeView->model();
QString text = QLocale::system().toString(radius,'f',2);
QString text = QLocale::system().toString(radius,'f',Base::UnitsApi::getDecimals());
for (int i=0; i<model->rowCount(); ++i) {
QVariant value = model->index(i,0).data(Qt::CheckStateRole);
Qt::CheckState checkState = static_cast<Qt::CheckState>(value.toInt());
Expand All @@ -716,7 +720,7 @@ void DlgFilletEdges::on_filletStartRadius_valueChanged(double radius)
void DlgFilletEdges::on_filletEndRadius_valueChanged(double radius)
{
QAbstractItemModel* model = ui->treeView->model();
QString text = QLocale::system().toString(radius,'f',2);
QString text = QLocale::system().toString(radius,'f',Base::UnitsApi::getDecimals());
for (int i=0; i<model->rowCount(); ++i) {
QVariant value = model->index(i,0).data(Qt::CheckStateRole);
Qt::CheckState checkState = static_cast<Qt::CheckState>(value.toInt());
Expand Down Expand Up @@ -780,7 +784,7 @@ bool DlgFilletEdges::accept()
r2 = model->index(i,2).data().toDouble();
code += QString::fromAscii(
"__fillets__.append((%1,%2,%3))\n")
.arg(id).arg(r1,0,'f',2).arg(r2,0,'f',2);
.arg(id).arg(r1,0,'f',Base::UnitsApi::getDecimals()).arg(r2,0,'f',Base::UnitsApi::getDecimals());
todo = true;
}
}
Expand Down
3 changes: 3 additions & 0 deletions src/Mod/Part/Gui/DlgPartCylinderImp.cpp
Expand Up @@ -39,6 +39,9 @@ using namespace PartGui;
DlgPartCylinderImp::DlgPartCylinderImp(QWidget* parent, Qt::WFlags fl)
: Gui::LocationInterface<Ui_DlgPartCylinder>(parent, fl)
{
QList<QDoubleSpinBox*> list = this->findChildren<QDoubleSpinBox*>();
for (QList<QDoubleSpinBox*>::iterator it = list.begin(); it != list.end(); ++it)
(*it)->setDecimals(Base::UnitsApi::getDecimals());
}

/*
Expand Down
7 changes: 7 additions & 0 deletions src/Mod/Part/Gui/DlgPrimitives.cpp
Expand Up @@ -260,6 +260,10 @@ DlgPrimitives::DlgPrimitives(QWidget* parent)
ui.edgeZ2->setMaximum(INT_MAX);
ui.edgeZ2->setMinimum(INT_MIN);
// RegularPolygon

QList<QDoubleSpinBox*> list = this->findChildren<QDoubleSpinBox*>();
for (QList<QDoubleSpinBox*>::iterator it = list.begin(); it != list.end(); ++it)
(*it)->setDecimals(Base::UnitsApi::getDecimals());
}

/*
Expand Down Expand Up @@ -660,6 +664,9 @@ void DlgPrimitives::createPrimitive(const QString& placement)
Location::Location(QWidget* parent)
{
ui.setupUi(this);
QList<QDoubleSpinBox*> list = this->findChildren<QDoubleSpinBox*>();
for (QList<QDoubleSpinBox*>::iterator it = list.begin(); it != list.end(); ++it)
(*it)->setDecimals(Base::UnitsApi::getDecimals());
}

Location::~Location()
Expand Down
4 changes: 4 additions & 0 deletions src/Mod/Part/Gui/DlgRevolution.cpp
Expand Up @@ -100,6 +100,10 @@ DlgRevolution::DlgRevolution(QWidget* parent, Qt::WFlags fl)
ui->xPos->setRange(-DBL_MAX,DBL_MAX);
ui->yPos->setRange(-DBL_MAX,DBL_MAX);
ui->zPos->setRange(-DBL_MAX,DBL_MAX);
ui->xPos->setDecimals(Base::UnitsApi::getDecimals());
ui->yPos->setDecimals(Base::UnitsApi::getDecimals());
ui->zPos->setDecimals(Base::UnitsApi::getDecimals());
ui->angle->setDecimals(Base::UnitsApi::getDecimals());
findShapes();

Gui::ItemViewSelection sel(ui->treeWidget);
Expand Down
4 changes: 4 additions & 0 deletions src/Mod/Part/Gui/Mirroring.cpp
Expand Up @@ -36,6 +36,7 @@
#include "ui_Mirroring.h"
#include "../App/PartFeature.h"
#include <Base/Exception.h>
#include <Base/UnitsApi.h>
#include <App/Application.h>
#include <App/Document.h>
#include <App/DocumentObject.h>
Expand All @@ -59,6 +60,9 @@ Mirroring::Mirroring(QWidget* parent)
ui->baseX->setRange(-DBL_MAX, DBL_MAX);
ui->baseY->setRange(-DBL_MAX, DBL_MAX);
ui->baseZ->setRange(-DBL_MAX, DBL_MAX);
ui->baseX->setDecimals(Base::UnitsApi::getDecimals());
ui->baseY->setDecimals(Base::UnitsApi::getDecimals());
ui->baseZ->setDecimals(Base::UnitsApi::getDecimals());
findShapes();

Gui::ItemViewSelection sel(ui->shapes);
Expand Down
2 changes: 2 additions & 0 deletions src/Mod/Part/Gui/TaskOffset.cpp
Expand Up @@ -41,6 +41,7 @@

#include <Base/Console.h>
#include <Base/Interpreter.h>
#include <Base/UnitsApi.h>
#include <App/Application.h>
#include <App/Document.h>
#include <App/DocumentObject.h>
Expand Down Expand Up @@ -72,6 +73,7 @@ OffsetWidget::OffsetWidget(Part::Offset* offset, QWidget* parent)

d->offset = offset;
d->ui.setupUi(this);
d->ui.spinOffset->setDecimals(Base::UnitsApi::getDecimals());
d->ui.spinOffset->setRange(-INT_MAX, INT_MAX);
d->ui.spinOffset->setSingleStep(0.1);
d->ui.spinOffset->setValue(d->offset->Value.getValue());
Expand Down
2 changes: 2 additions & 0 deletions src/Mod/PartDesign/Gui/TaskChamferParameters.cpp
Expand Up @@ -36,6 +36,7 @@
#include <Gui/ViewProvider.h>
#include <Gui/WaitCursor.h>
#include <Base/Console.h>
#include <Base/UnitsApi.h>
#include <Gui/Selection.h>
#include <Gui/Command.h>
#include <Mod/PartDesign/App/FeatureChamfer.h>
Expand Down Expand Up @@ -64,6 +65,7 @@ TaskChamferParameters::TaskChamferParameters(ViewProviderChamfer *ChamferView,QW
PartDesign::Chamfer* pcChamfer = static_cast<PartDesign::Chamfer*>(ChamferView->getObject());
double r = pcChamfer->Size.getValue();

ui->doubleSpinBox->setDecimals(Base::UnitsApi::getDecimals());
ui->doubleSpinBox->setMaximum(INT_MAX);
ui->doubleSpinBox->setValue(r);
ui->doubleSpinBox->selectAll();
Expand Down
2 changes: 2 additions & 0 deletions src/Mod/PartDesign/Gui/TaskDraftParameters.cpp
Expand Up @@ -28,6 +28,7 @@

#include "ui_TaskDraftParameters.h"
#include "TaskDraftParameters.h"
#include <Base/UnitsApi.h>
#include <App/Application.h>
#include <App/Document.h>
#include <Gui/Application.h>
Expand Down Expand Up @@ -77,6 +78,7 @@ TaskDraftParameters::TaskDraftParameters(ViewProviderDraft *DraftView,QWidget *p
PartDesign::Draft* pcDraft = static_cast<PartDesign::Draft*>(DraftView->getObject());
double a = pcDraft->Angle.getValue();

ui->doubleSpinBox->setDecimals(Base::UnitsApi::getDecimals());
ui->doubleSpinBox->setMinimum(0.0);
ui->doubleSpinBox->setMaximum(89.99);
ui->doubleSpinBox->setValue(a);
Expand Down
2 changes: 2 additions & 0 deletions src/Mod/PartDesign/Gui/TaskFilletParameters.cpp
Expand Up @@ -28,6 +28,7 @@

#include "ui_TaskFilletParameters.h"
#include "TaskFilletParameters.h"
#include <Base/UnitsApi.h>
#include <App/Application.h>
#include <App/Document.h>
#include <Gui/Application.h>
Expand Down Expand Up @@ -64,6 +65,7 @@ TaskFilletParameters::TaskFilletParameters(ViewProviderFillet *FilletView,QWidge
PartDesign::Fillet* pcFillet = static_cast<PartDesign::Fillet*>(FilletView->getObject());
double r = pcFillet->Radius.getValue();

ui->doubleSpinBox->setDecimals(Base::UnitsApi::getDecimals());
ui->doubleSpinBox->setMaximum(INT_MAX);
ui->doubleSpinBox->setValue(r);
ui->doubleSpinBox->selectAll();
Expand Down
2 changes: 2 additions & 0 deletions src/Mod/PartDesign/Gui/TaskGrooveParameters.cpp
Expand Up @@ -28,6 +28,7 @@

#include "ui_TaskGrooveParameters.h"
#include "TaskGrooveParameters.h"
#include <Base/UnitsApi.h>
#include <App/Application.h>
#include <App/Document.h>
#include <Gui/Application.h>
Expand Down Expand Up @@ -80,6 +81,7 @@ TaskGrooveParameters::TaskGrooveParameters(ViewProviderGroove *GrooveView,QWidge
bool mirrored = pcGroove->Midplane.getValue();
bool reversed = pcGroove->Reversed.getValue();

ui->doubleSpinBox->setDecimals(Base::UnitsApi::getDecimals());
ui->doubleSpinBox->setValue(l);

int count=pcGroove->getSketchAxisCount();
Expand Down
2 changes: 2 additions & 0 deletions src/Mod/PartDesign/Gui/TaskHoleParameters.cpp
Expand Up @@ -34,6 +34,7 @@
#include <Gui/ViewProvider.h>
#include <Gui/WaitCursor.h>
#include <Base/Console.h>
#include <Base/UnitsApi.h>
#include <Gui/Selection.h>
#include <Gui/Command.h>

Expand All @@ -50,6 +51,7 @@ TaskHoleParameters::TaskHoleParameters(QWidget *parent)
proxy = new QWidget(this);
ui = new Ui_TaskHoleParameters();
ui->setupUi(proxy);
ui->doubleSpinBox->setDecimals(Base::UnitsApi::getDecimals());
QMetaObject::connectSlotsByName(this);

this->groupLayout()->addWidget(proxy);
Expand Down
2 changes: 2 additions & 0 deletions src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp
Expand Up @@ -31,6 +31,7 @@
#include "ui_TaskLinearPatternParameters.h"
#include "TaskLinearPatternParameters.h"
#include "TaskMultiTransformParameters.h"
#include <Base/UnitsApi.h>
#include <App/Application.h>
#include <App/Document.h>
#include <Gui/Application.h>
Expand Down Expand Up @@ -130,6 +131,7 @@ void TaskLinearPatternParameters::setupUI()
ui->checkReverse->setEnabled(true);
ui->spinLength->setEnabled(true);
ui->spinOccurrences->setEnabled(true);
ui->spinLength->setDecimals(Base::UnitsApi::getDecimals());
updateUI();
}

Expand Down

0 comments on commit fb994e2

Please sign in to comment.