diff --git a/share/qtcreator/dumper/qttypes.py b/share/qtcreator/dumper/qttypes.py index 696feabea97b7fc8c2e5feb22f0407e4ebb8aa45..5ec490742e6a9b71b43915ea55a3035b77623bdf 100644 --- a/share/qtcreator/dumper/qttypes.py +++ b/share/qtcreator/dumper/qttypes.py @@ -636,16 +636,22 @@ def qdump__QLinkedList(d, value): qqLocalesCount = None def qdump__QLocale(d, value): - # Check for uninitialized 'index' variable. Retrieve size of QLocale data array - # from variable in qlocale.cpp (default: 368/Qt 4.8), 368 being 'System'. + # Check for uninitialized 'index' variable. Retrieve size of + # QLocale data array from variable in qlocale.cpp. + # Default is 368 in Qt 4.8, 438 in Qt 5.0.1, the last one + # being 'System'. global qqLocalesCount if qqLocalesCount is None: try: - qqLocalesCount = int(value(qtNamespace() + 'locale_data_size')) + qqLocalesCount = int(value(d.ns + 'locale_data_size')) except: - qqLocalesCount = 368 - index = int(value["p"]["index"]) - check(index >= 0 and index <= qqLocalesCount) + qqLocalesCount = 438 + try: + index = int(value["p"]["index"]) + except: + index = int(value["d"]["d"]["m_index"]) + check(index >= 0) + check(index <= qqLocalesCount) d.putStringValue(call(value, "name")) d.putNumChild(0) return diff --git a/tests/auto/debugger/tst_dumpers.cpp b/tests/auto/debugger/tst_dumpers.cpp index f9a20de686ea99533b91055a0edd154d2bba9ab1..7292cde4a2edc5aab0693ea37b2c7f7db179e962 100644 --- a/tests/auto/debugger/tst_dumpers.cpp +++ b/tests/auto/debugger/tst_dumpers.cpp @@ -1244,12 +1244,19 @@ void tst_Dumpers::dumper_data() QTest::newRow("QLocale") << Data("#include <QLocale>\n", + "QLocale loc0;\n" "QLocale loc = QLocale::system();\n" "QLocale::MeasurementSystem m = loc.measurementSystem();\n" - "unused(&m);\n") + "QLocale loc1(\"en_US\");\n" + "QLocale::MeasurementSystem m1 = loc1.measurementSystem();\n" + "unused(&loc0, &loc, &m, &loc1, &m1);\n") % CoreProfile() - % Check("loc", "", "@QLocale") - % Check("m", "", "@QLocale::MeasurementSystem"); + % Check("loc0", "\"en_US\"", "@QLocale") + % CheckType("loc", "@QLocale") + % CheckType("m", "@QLocale::MeasurementSystem") + % Check("loc1", "\"en_US\"", "@QLocale") + % Check("m1", Value5("@QLocale::ImperialUSSystem (1)"), "@QLocale::MeasurementSystem") + % Check("m1", Value4("@QLocale::ImperialSystem (1)"), "@QLocale::MeasurementSystem"); QTest::newRow("QMapUIntStringList")