Pass string to ICU-wrapper as a QByteArray, not a QString
The definition of QtTimeZoneLocale::ucalTimeZoneDisplayName() said it takes a QByteArray but the header-file's declaration said it takes a QString. That was never going to end well. Fixes: QTBUG-129896 Change-Id: I5c15f88370f2d15efe2055ff73388c22fdc4ef46 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit 01219276fdd3c1b6c867e97f6b8337f46ac82e28) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
ac6f080d16
commit
a6b350acbc
@ -32,7 +32,7 @@ namespace QtTimeZoneLocale {
|
||||
#if QT_CONFIG(icu)
|
||||
QString ucalTimeZoneDisplayName(UCalendar *ucal, QTimeZone::TimeType timeType,
|
||||
QTimeZone::NameType nameType,
|
||||
const QString &localeCode);
|
||||
const QByteArray &localeCode);
|
||||
#else
|
||||
// Define data types for QTZL_data_p.h
|
||||
|
||||
|
@ -149,7 +149,7 @@ static QTimeZonePrivate::Data ucalTimeZoneTransition(UCalendar *m_ucal,
|
||||
QTimeZone::TimeType timeType = dst == 0 ? QTimeZone::StandardTime : QTimeZone::DaylightTime;
|
||||
using namespace QtTimeZoneLocale;
|
||||
tran.abbreviation = ucalTimeZoneDisplayName(m_ucal, timeType,
|
||||
QTimeZone::ShortName, QLocale().name());
|
||||
QTimeZone::ShortName, QLocale().name().toUtf8());
|
||||
return tran;
|
||||
}
|
||||
#endif // U_ICU_VERSION_SHORT
|
||||
@ -258,7 +258,7 @@ QString QIcuTimeZonePrivate::displayName(QTimeZone::TimeType timeType,
|
||||
// Technically this may be suspect, if locale isn't QLocale(), since that's
|
||||
// what we used when constructing m_ucal; does ICU cope with inconsistency ?
|
||||
using namespace QtTimeZoneLocale;
|
||||
return ucalTimeZoneDisplayName(m_ucal, timeType, nameType, locale.name());
|
||||
return ucalTimeZoneDisplayName(m_ucal, timeType, nameType, locale.name().toUtf8());
|
||||
}
|
||||
|
||||
int QIcuTimeZonePrivate::offsetFromUtc(qint64 atMSecsSinceEpoch) const
|
||||
|
Loading…
x
Reference in New Issue
Block a user