From acfa6784a71d66dac7b3121f60435eee6a2af0da Mon Sep 17 00:00:00 2001 From: leo Date: Mon, 13 Jun 2016 23:57:31 +0000 Subject: [PATCH] Fixed more instances of unlocalized decimal separators. --- common/lc_mainwindow.cpp | 8 ++-- qt/lc_qarraydialog.cpp | 73 ++++++++++++++++++------------------ qt/lc_qpreferencesdialog.cpp | 5 ++- qt/lc_qpropertiesdialog.cpp | 5 ++- qt/lc_qpropertiestree.cpp | 16 ++++---- qt/lc_qutils.cpp | 20 +++++++++- qt/lc_qutils.h | 1 + 7 files changed, 75 insertions(+), 53 deletions(-) diff --git a/common/lc_mainwindow.cpp b/common/lc_mainwindow.cpp index 2dc3ff64..537ce890 100644 --- a/common/lc_mainwindow.cpp +++ b/common/lc_mainwindow.cpp @@ -1373,9 +1373,9 @@ lcVector3 lcMainWindow::GetTransformAmount() { lcVector3 Transform; - Transform.x = mTransformXEdit->text().toFloat(); - Transform.y = mTransformYEdit->text().toFloat(); - Transform.z = mTransformZEdit->text().toFloat(); + Transform.x = lcParseValueLocalized(mTransformXEdit->text()); + Transform.y = lcParseValueLocalized(mTransformYEdit->text()); + Transform.z = lcParseValueLocalized(mTransformZEdit->text()); return Transform; } @@ -1615,7 +1615,7 @@ void lcMainWindow::UpdateSelectedObjects(bool SelectionChanged) lcGetActiveModel()->GetFocusPosition(Position); QString Label("X: %1 Y: %2 Z: %3"); - Label = Label.arg(QString::number(Position[0], 'f', 2), QString::number(Position[1], 'f', 2), QString::number(Position[2], 'f', 2)); + Label = Label.arg(QLocale::system().toString(Position[0], 'f', 2), QLocale::system().toString(Position[1], 'f', 2), QLocale::system().toString(Position[2], 'f', 2)); mStatusPositionLabel->setText(Label); } diff --git a/qt/lc_qarraydialog.cpp b/qt/lc_qarraydialog.cpp index 5ad4f457..2e1a0684 100644 --- a/qt/lc_qarraydialog.cpp +++ b/qt/lc_qarraydialog.cpp @@ -2,6 +2,7 @@ #include "lc_qarraydialog.h" #include "ui_lc_qarraydialog.h" #include "lc_basewindow.h" +#include "lc_qutils.h" lcQArrayDialog::lcQArrayDialog(QWidget *parent, void *data) : QDialog(parent), @@ -33,24 +34,24 @@ lcQArrayDialog::lcQArrayDialog(QWidget *parent, void *data) : ui->count1->setValue(options->Counts[0]); ui->count2->setValue(options->Counts[1]); ui->count3->setValue(options->Counts[2]); - ui->offset1x->setText(QString::number(options->Offsets[0].x)); - ui->offset1y->setText(QString::number(options->Offsets[0].y)); - ui->offset1z->setText(QString::number(options->Offsets[0].z)); - ui->offset2x->setText(QString::number(options->Offsets[1].x)); - ui->offset2y->setText(QString::number(options->Offsets[1].y)); - ui->offset2z->setText(QString::number(options->Offsets[1].z)); - ui->offset3x->setText(QString::number(options->Offsets[2].x)); - ui->offset3y->setText(QString::number(options->Offsets[2].y)); - ui->offset3z->setText(QString::number(options->Offsets[2].z)); - ui->rotation1x->setText(QString::number(options->Rotations[0].x)); - ui->rotation1y->setText(QString::number(options->Rotations[0].y)); - ui->rotation1z->setText(QString::number(options->Rotations[0].z)); - ui->rotation2x->setText(QString::number(options->Rotations[1].x)); - ui->rotation2y->setText(QString::number(options->Rotations[1].y)); - ui->rotation2z->setText(QString::number(options->Rotations[1].z)); - ui->rotation3x->setText(QString::number(options->Rotations[2].x)); - ui->rotation3y->setText(QString::number(options->Rotations[2].y)); - ui->rotation3z->setText(QString::number(options->Rotations[2].z)); + ui->offset1x->setText(lcFormatValueLocalized(options->Offsets[0].x)); + ui->offset1y->setText(lcFormatValueLocalized(options->Offsets[0].y)); + ui->offset1z->setText(lcFormatValueLocalized(options->Offsets[0].z)); + ui->offset2x->setText(lcFormatValueLocalized(options->Offsets[1].x)); + ui->offset2y->setText(lcFormatValueLocalized(options->Offsets[1].y)); + ui->offset2z->setText(lcFormatValueLocalized(options->Offsets[1].z)); + ui->offset3x->setText(lcFormatValueLocalized(options->Offsets[2].x)); + ui->offset3y->setText(lcFormatValueLocalized(options->Offsets[2].y)); + ui->offset3z->setText(lcFormatValueLocalized(options->Offsets[2].z)); + ui->rotation1x->setText(lcFormatValueLocalized(options->Rotations[0].x)); + ui->rotation1y->setText(lcFormatValueLocalized(options->Rotations[0].y)); + ui->rotation1z->setText(lcFormatValueLocalized(options->Rotations[0].z)); + ui->rotation2x->setText(lcFormatValueLocalized(options->Rotations[1].x)); + ui->rotation2y->setText(lcFormatValueLocalized(options->Rotations[1].y)); + ui->rotation2z->setText(lcFormatValueLocalized(options->Rotations[1].z)); + ui->rotation3x->setText(lcFormatValueLocalized(options->Rotations[2].x)); + ui->rotation3y->setText(lcFormatValueLocalized(options->Rotations[2].y)); + ui->rotation3z->setText(lcFormatValueLocalized(options->Rotations[2].z)); } lcQArrayDialog::~lcQArrayDialog() @@ -75,24 +76,24 @@ void lcQArrayDialog::accept() options->Counts[0] = Counts[0]; options->Counts[1] = Counts[1]; options->Counts[2] = Counts[2]; - options->Offsets[0].x = ui->offset1x->text().toFloat(); - options->Offsets[0].y = ui->offset1y->text().toFloat(); - options->Offsets[0].z = ui->offset1z->text().toFloat(); - options->Offsets[1].x = ui->offset2x->text().toFloat(); - options->Offsets[1].y = ui->offset2y->text().toFloat(); - options->Offsets[1].z = ui->offset2z->text().toFloat(); - options->Offsets[2].x = ui->offset3x->text().toFloat(); - options->Offsets[2].y = ui->offset3y->text().toFloat(); - options->Offsets[2].z = ui->offset3z->text().toFloat(); - options->Rotations[0].x = ui->rotation1x->text().toFloat(); - options->Rotations[0].y = ui->rotation1y->text().toFloat(); - options->Rotations[0].z = ui->rotation1z->text().toFloat(); - options->Rotations[1].x = ui->rotation2x->text().toFloat(); - options->Rotations[1].y = ui->rotation2y->text().toFloat(); - options->Rotations[1].z = ui->rotation2z->text().toFloat(); - options->Rotations[2].x = ui->rotation3x->text().toFloat(); - options->Rotations[2].y = ui->rotation3y->text().toFloat(); - options->Rotations[2].z = ui->rotation3z->text().toFloat(); + options->Offsets[0].x = lcParseValueLocalized(ui->offset1x->text()); + options->Offsets[0].y = lcParseValueLocalized(ui->offset1y->text()); + options->Offsets[0].z = lcParseValueLocalized(ui->offset1z->text()); + options->Offsets[1].x = lcParseValueLocalized(ui->offset2x->text()); + options->Offsets[1].y = lcParseValueLocalized(ui->offset2y->text()); + options->Offsets[1].z = lcParseValueLocalized(ui->offset2z->text()); + options->Offsets[2].x = lcParseValueLocalized(ui->offset3x->text()); + options->Offsets[2].y = lcParseValueLocalized(ui->offset3y->text()); + options->Offsets[2].z = lcParseValueLocalized(ui->offset3z->text()); + options->Rotations[0].x = lcParseValueLocalized(ui->rotation1x->text()); + options->Rotations[0].y = lcParseValueLocalized(ui->rotation1y->text()); + options->Rotations[0].z = lcParseValueLocalized(ui->rotation1z->text()); + options->Rotations[1].x = lcParseValueLocalized(ui->rotation2x->text()); + options->Rotations[1].y = lcParseValueLocalized(ui->rotation2y->text()); + options->Rotations[1].z = lcParseValueLocalized(ui->rotation2z->text()); + options->Rotations[2].x = lcParseValueLocalized(ui->rotation3x->text()); + options->Rotations[2].y = lcParseValueLocalized(ui->rotation3y->text()); + options->Rotations[2].z = lcParseValueLocalized(ui->rotation3z->text()); QDialog::accept(); } diff --git a/qt/lc_qpreferencesdialog.cpp b/qt/lc_qpreferencesdialog.cpp index a1cf68b5..09e278af 100644 --- a/qt/lc_qpreferencesdialog.cpp +++ b/qt/lc_qpreferencesdialog.cpp @@ -6,6 +6,7 @@ #include "lc_basewindow.h" #include "lc_library.h" #include "lc_application.h" +#include "lc_qutils.h" #include "pieceinf.h" lcQPreferencesDialog::lcQPreferencesDialog(QWidget *parent, void *data) : @@ -41,7 +42,7 @@ lcQPreferencesDialog::lcQPreferencesDialog(QWidget *parent, void *data) : else ui->antiAliasingSamples->setCurrentIndex(0); ui->edgeLines->setChecked(options->Preferences.mDrawEdgeLines); - ui->lineWidth->setText(QString::number(options->Preferences.mLineWidth)); + ui->lineWidth->setText(lcFormatValueLocalized(options->Preferences.mLineWidth)); ui->gridStuds->setChecked(options->Preferences.mDrawGridStuds); ui->gridLines->setChecked(options->Preferences.mDrawGridLines); ui->gridLineSpacing->setText(QString::number(options->Preferences.mGridLineSpacing)); @@ -106,7 +107,7 @@ void lcQPreferencesDialog::accept() options->AASamples = 2; options->Preferences.mDrawEdgeLines = ui->edgeLines->isChecked(); - options->Preferences.mLineWidth = ui->lineWidth->text().toFloat(); + options->Preferences.mLineWidth = lcParseValueLocalized(ui->lineWidth->text()); options->Preferences.mDrawGridStuds = ui->gridStuds->isChecked(); options->Preferences.mDrawGridLines = ui->gridLines->isChecked(); diff --git a/qt/lc_qpropertiesdialog.cpp b/qt/lc_qpropertiesdialog.cpp index f1f1150e..deccbeb6 100644 --- a/qt/lc_qpropertiesdialog.cpp +++ b/qt/lc_qpropertiesdialog.cpp @@ -1,6 +1,7 @@ #include "lc_global.h" #include "lc_qpropertiesdialog.h" #include "ui_lc_qpropertiesdialog.h" +#include "lc_qutils.h" #include "lc_basewindow.h" #include "lc_colors.h" #include "lc_library.h" @@ -39,7 +40,7 @@ lcQPropertiesDialog::lcQPropertiesDialog(QWidget *parent, void *data) : ui->imageNameEdit->setText(options->Properties.mBackgroundImage); ui->imageTileCheckBox->setChecked(options->Properties.mBackgroundImageTile); ui->fogCheckBox->setChecked(options->Properties.mFogEnabled); - ui->fogDensityEdit->setText(QString::number(options->Properties.mFogDensity)); + ui->fogDensityEdit->setText(lcFormatValueLocalized(options->Properties.mFogDensity)); QPixmap pix(12, 12); @@ -175,7 +176,7 @@ void lcQPropertiesDialog::accept() options->Properties.mBackgroundImage = ui->imageNameEdit->text(); options->Properties.mBackgroundImageTile = ui->imageTileCheckBox->isChecked(); options->Properties.mFogEnabled = ui->fogCheckBox->isChecked(); - options->Properties.mFogDensity = ui->fogDensityEdit->text().toFloat(); + options->Properties.mFogDensity = lcParseValueLocalized(ui->fogDensityEdit->text()); options->SetDefault = ui->setDefaultCheckBox->isChecked(); QDialog::accept(); diff --git a/qt/lc_qpropertiestree.cpp b/qt/lc_qpropertiestree.cpp index fff66b4c..087e4409 100644 --- a/qt/lc_qpropertiestree.cpp +++ b/qt/lc_qpropertiestree.cpp @@ -548,7 +548,7 @@ void lcQPropertiesTree::slotReturnPressed() lcMatrix33 RelativeRotation; Model->GetMoveRotateTransform(Center, RelativeRotation); lcVector3 Position = Center; - float Value = Editor->text().toFloat(); + float Value = lcParseValueLocalized(Editor->text()); if (Item == partPositionX) Position[0] = Value; @@ -570,7 +570,7 @@ void lcQPropertiesTree::slotReturnPressed() InitialRotation = lcVector3(0.0f, 0.0f, 0.0f); lcVector3 Rotation = InitialRotation; - float Value = Editor->text().toFloat(); + float Value = lcParseValueLocalized(Editor->text()); if (Item == partRotationX) Rotation[0] = Value; @@ -604,7 +604,7 @@ void lcQPropertiesTree::slotReturnPressed() { lcVector3 Center = Camera->mPosition; lcVector3 Position = Center; - float Value = Editor->text().toFloat(); + float Value = lcParseValueLocalized(Editor->text()); if (Item == cameraPositionX) Position[0] = Value; @@ -621,7 +621,7 @@ void lcQPropertiesTree::slotReturnPressed() { lcVector3 Center = Camera->mTargetPosition; lcVector3 Position = Center; - float Value = Editor->text().toFloat(); + float Value = lcParseValueLocalized(Editor->text()); if (Item == cameraTargetX) Position[0] = Value; @@ -638,7 +638,7 @@ void lcQPropertiesTree::slotReturnPressed() { lcVector3 Center = Camera->mUpVector; lcVector3 Position = Center; - float Value = Editor->text().toFloat(); + float Value = lcParseValueLocalized(Editor->text()); if (Item == cameraUpX) Position[0] = Value; @@ -653,19 +653,19 @@ void lcQPropertiesTree::slotReturnPressed() } else if (Item == cameraFOV) { - float Value = Editor->text().toFloat(); + float Value = lcParseValueLocalized(Editor->text()); Model->SetCameraFOV(Camera, Value); } else if (Item == cameraNear) { - float Value = Editor->text().toFloat(); + float Value = lcParseValueLocalized(Editor->text()); Model->SetCameraZNear(Camera, Value); } else if (Item == cameraFar) { - float Value = Editor->text().toFloat(); + float Value = lcParseValueLocalized(Editor->text()); Model->SetCameraZFar(Camera, Value); } diff --git a/qt/lc_qutils.cpp b/qt/lc_qutils.cpp index 35e9eea7..14a42d5e 100644 --- a/qt/lc_qutils.cpp +++ b/qt/lc_qutils.cpp @@ -23,7 +23,25 @@ QString lcFormatValue(float Value) QString lcFormatValueLocalized(float Value) { - return QLocale::system().toString(Value, 'g', 100); + QLocale Locale = QLocale::system(); + QChar DecimalPoint = Locale.decimalPoint(); + QString String = Locale.toString(Value, 'f', 6); + + if (String.indexOf(DecimalPoint) != -1) + { + while (String.endsWith('0')) + String.chop(1); + + if (String.endsWith(DecimalPoint)) + String.chop(1); + } + + return String; +} + +float lcParseValueLocalized(const QString& Value) +{ + return QLocale::system().toFloat(Value); } // Resize all columns to content except for one stretching column. (taken from QT creator) diff --git a/qt/lc_qutils.h b/qt/lc_qutils.h index e01d5982..f98c9f8d 100644 --- a/qt/lc_qutils.h +++ b/qt/lc_qutils.h @@ -5,6 +5,7 @@ QString lcFormatValue(float Value); QString lcFormatValueLocalized(float Value); +float lcParseValueLocalized(const QString& Value); class lcQTreeWidgetColumnStretcher : public QObject {