Pārlūkot izejas kodu

Changed locale handling and added tests

Signed-off-by: John Jones-Steele <[email protected]>
John Jones-Steele 4 gadi atpakaļ
vecāks
revīzija
12505da6fc

+ 0 - 3
Code/Editor/CryEdit.cpp

@@ -1626,9 +1626,6 @@ BOOL CCryEditApp::InitInstance()
     ReflectedVarInit::setupReflection(serializeContext);
     RegisterReflectedVarHandlers();
 
-
-    QLocale::setDefault(QLocale(QLocale::English, QLocale::UnitedStates));
-
     CreateSplashScreen();
 
     // Register the application's document templates. Document templates

+ 0 - 2
Code/Framework/AzQtComponents/AzQtComponents/Application/AzQtApplication.cpp

@@ -22,8 +22,6 @@ namespace AzQtComponents
          QApplication::setApplicationName("O3DE Tools Application");
 
          AzQtComponents::PrepareQtPaths();
-
-         QLocale::setDefault(QLocale(QLocale::English, QLocale::UnitedStates));
     }
 
     void AzQtApplication::InitializeDpiScaling()

+ 0 - 2
Code/Framework/AzQtComponents/AzQtComponents/Gallery/main.cpp

@@ -134,8 +134,6 @@ int main(int argc, char **argv)
     QApplication::setOrganizationDomain("o3de.org");
     QApplication::setApplicationName("O3DEWidgetGallery");
 
-    QLocale::setDefault(QLocale(QLocale::English, QLocale::UnitedStates));
-
     QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
     QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
     QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough);

+ 40 - 0
Code/Framework/AzQtComponents/AzQtComponents/Tests/FloatToStringConversionTests.cpp

@@ -64,3 +64,43 @@ TEST(AzQtComponents, FloatToString_TruncateShowThousandsSeparatorOnlyOneDecimal)
     int numDecimalPlaces = 2;
     EXPECT_EQ(AzQtComponents::toString(1000.000, numDecimalPlaces, testLocal, showThousandsSeparator), "1,000.0");
 }
+
+TEST(AzQtComponents, FloatToString_Truncate2DecimalsWithLocale)
+{
+    QLocale testLocal{ QLocale() };
+
+    const bool showThousandsSeparator = false;
+    const int numDecimalPlaces = 2;
+    QString testString = "0" + QString(testLocal.decimalPoint()) + "12";
+    EXPECT_EQ(AzQtComponents::toString(0.1234, numDecimalPlaces, testLocal, showThousandsSeparator), testString);
+}
+
+TEST(AzQtComponents, FloatToString_AllZerosButOneWithLocale)
+{
+    QLocale testLocal{ QLocale() };
+
+    const bool showThousandsSeparator = false;
+    const int numDecimalPlaces = 2;
+    QString testString = "1" + QString(testLocal.decimalPoint()) + "0";
+    EXPECT_EQ(AzQtComponents::toString(1.0000, numDecimalPlaces, testLocal, showThousandsSeparator), testString);
+}
+
+TEST(AzQtComponents, FloatToString_TruncateShowThousandsSeparatorTruncateNoRoundWithLocale)
+{
+    QLocale testLocal{ QLocale() };
+
+    const bool showThousandsSeparator = true;
+    const int numDecimalPlaces = 3;
+    QString testString = "1" + QString(testLocal.groupSeparator()) + "000" + QString(testLocal.decimalPoint()) + "123";
+    EXPECT_EQ(AzQtComponents::toString(1000.1236, numDecimalPlaces, testLocal, showThousandsSeparator), testString);
+}
+
+TEST(AzQtComponents, FloatToString_TruncateShowThousandsSeparatorOnlyOneDecimalWithLocale)
+{
+    QLocale testLocal{ QLocale() };
+
+    const bool showThousandsSeparator = true;
+    int numDecimalPlaces = 2;
+    QString testString = "1" + QString(testLocal.groupSeparator()) + "000" + QString(testLocal.decimalPoint()) + "0";
+    EXPECT_EQ(AzQtComponents::toString(1000.000, numDecimalPlaces, testLocal, showThousandsSeparator), testString);
+}

+ 0 - 2
Code/Tools/ProjectManager/Source/Application.cpp

@@ -56,8 +56,6 @@ namespace O3DE::ProjectManager
         QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
         QCoreApplication::setAttribute(Qt::AA_DontCreateNativeWidgetSiblings);
 
-        QLocale::setDefault(QLocale(QLocale::English, QLocale::UnitedStates));
-
         QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough);
         AzQtComponents::Utilities::HandleDpiAwareness(AzQtComponents::Utilities::SystemDpiAware);