Changeset 622


Ignore:
Timestamp:
Mar 3, 2010, 8:54:13 PM (15 years ago)
Author:
Dmitry A. Kuminov
Message:

corelib: Implemented deriving the defaut locale from the process country code if LANG is not set and integration with the system locale object (System Setup -> Country Palette). Closes #123.

Location:
trunk/src/corelib/tools
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/corelib/tools/qlocale.cpp

    r561 r622  
    6363#   include "qt_windows.h"
    6464#   include <time.h>
     65
     66
     67
     68
    6569#endif
    6670#if !defined(QWS) && defined(Q_OS_MAC)
     
    933937
    934938    return result;
     939
     940
     941
     942
     943
     944
     945
     946
     947
     948
     949
     950
     951
     952
     953
     954
     955
     956
     957
     958
     959
     960
     961
     962
     963
     964
     965
     966
     967
     968
     969
     970
     971
     972
     973
     974
     975
     976
     977
     978
     979
     980
     981
     982
     983
     984
     985
     986
     987
     988
     989
     990
     991
     992
     993
     994
     995
     996
     997
     998
     999
     1000
     1001
     1002
     1003
     1004
     1005
     1006
     1007
     1008
     1009
     1010
     1011
     1012
     1013
     1014
     1015
     1016
     1017
     1018
     1019
     1020
     1021
     1022
     1023
     1024
     1025
     1026
     1027
     1028
     1029
     1030
     1031
     1032
     1033
     1034
     1035
     1036
     1037
     1038
     1039
     1040
     1041
     1042
     1043
     1044
     1045
     1046
     1047
     1048
     1049
     1050
     1051
     1052
     1053
     1054
     1055
     1056
     1057
     1058
     1059
     1060
     1061
     1062
     1063
     1064
     1065
     1066
     1067
     1068
     1069
     1070
     1071
     1072
     1073
     1074
     1075
     1076
     1077
     1078
     1079
     1080
     1081
     1082
     1083
     1084
     1085
     1086
     1087
     1088
     1089
     1090
     1091
     1092
     1093
     1094
     1095
     1096
     1097
     1098
     1099
     1100
     1101
     1102
     1103
     1104
     1105
     1106
     1107
     1108
     1109
     1110
     1111
     1112
     1113
     1114
     1115
     1116
     1117
     1118
     1119
     1120
     1121
     1122
     1123
     1124
     1125
     1126
     1127
     1128
     1129
     1130
     1131
     1132
     1133
     1134
     1135
     1136
     1137
     1138
     1139
     1140
     1141
     1142
     1143
     1144
     1145
     1146
     1147
     1148
     1149
     1150
     1151
     1152
     1153
     1154
     1155
     1156
     1157
     1158
     1159
     1160
     1161
     1162
     1163
     1164
     1165
     1166
     1167
     1168
     1169
     1170
     1171
    9351172}
    9361173
  • trunk/src/corelib/tools/qstring.cpp

    r567 r622  
    46324632        return 0;
    46334633    }
    4634 #elif defined(Q_OS_OS2) && !defined(QT_NO_TEXTCODEC)
     4634#elif defined(Q_OS_OS2)
     4635    extern Q_CORE_EXPORT QString qt_system_locale_name(); // qlocale.cpp
     4636    // UniCreateLocaleObject("") creates an "en_US" locale when LANG is not set
     4637    // but we want to get the system locale so always use the exact name as
     4638    // returned by qt_system_locale_name() (it also takes LANG into account)
    46354639#if !defined(QT_NO_THREAD)
    46364640    static QAtomicPointer<void> localeObj;
    46374641    if (!localeObj) {
    46384642        LocaleObject lo = 0;
    4639         UniCreateLocaleObject(UNI_UCS_STRING_POINTER, (UniChar *)L"", &lo);
     4643        UniCreateLocaleObject(UNI_UCS_STRING_POINTER,
     4644                              qt_system_locale_name().utf16(), &lo);
    46404645        if (!localeObj.testAndSetRelaxed(0, lo))
    46414646            UniFreeLocaleObject(lo); // we are too late
     
    46444649    static LocaleObject localeObj = 0;
    46454650    if (!localeObj)
    4646         UniCreateLocaleObject(UNI_UCS_STRING_POINTER, (UniChar *)L"", &localeObj);
     4651        UniCreateLocaleObject(UNI_UCS_STRING_POINTER,
     4652                              qt_system_locale_name().utf16(), &localeObj);
    46474653#endif
    46484654    if (localeObj) {
Note: See TracChangeset for help on using the changeset viewer.