Remove codecForTr().
Similarly to change id I2f429fa7ef93bd75bb93a7f64c56db15b7283388, the capability to arbitrarily alter the encoding of literals is very destructive, especially in a world with libraries and plugins. Change-Id: If0d4cd8dcf89792e39c1984cbde6b036cebfc02f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
This commit is contained in:
parent
84ddc06380
commit
95fa88abe7
4
dist/changes-5.0.0
vendored
4
dist/changes-5.0.0
vendored
@ -310,6 +310,10 @@ QtCore
|
||||
libraries, creating uncertainty/bugs in using QString easily, and (to a lesser
|
||||
extent) performance issues.
|
||||
|
||||
* QTextCodec::codecForTr() and QTextCodec::setCodecForTr() have been removed,
|
||||
QCoreApplication::Encoding value CodecForTr is now obsolete, use
|
||||
DefaultCodec instead. For reasoning, see the codecForCStrings() removal above.
|
||||
|
||||
* QIntValidator and QDoubleValidator no longer fall back to using the C locale if
|
||||
the requested locale fails to validate the input.
|
||||
|
||||
|
@ -145,8 +145,6 @@ static bool destroying_is_ok = false;
|
||||
#endif
|
||||
|
||||
static QTextCodec *localeMapper = 0;
|
||||
QTextCodec *QTextCodec::cftr = 0;
|
||||
|
||||
|
||||
class QTextCodecCleanup
|
||||
{
|
||||
@ -1463,41 +1461,6 @@ QString QTextDecoder::toUnicode(const QByteArray &ba)
|
||||
return c->toUnicode(ba.constData(), ba.length(), &state);
|
||||
}
|
||||
|
||||
|
||||
/*!
|
||||
\fn QTextCodec* QTextCodec::codecForTr()
|
||||
|
||||
Returns the codec used by QObject::tr() on its argument. If this
|
||||
function returns 0 (the default), tr() assumes Latin-1.
|
||||
|
||||
\sa setCodecForTr()
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn void QTextCodec::setCodecForTr(QTextCodec *c)
|
||||
\nonreentrant
|
||||
|
||||
Sets the codec used by QObject::tr() on its argument to \a c. If
|
||||
\a c is 0 (the default), tr() assumes Latin-1.
|
||||
|
||||
If the literal quoted text in the program is not in the Latin-1
|
||||
encoding, this function can be used to set the appropriate
|
||||
encoding. For example, software developed by Korean programmers
|
||||
might use eucKR for all the text in the program, in which case the
|
||||
main() function might look like this:
|
||||
|
||||
\snippet doc/src/snippets/code/src_corelib_codecs_qtextcodec.cpp 3
|
||||
|
||||
Note that this is not the way to select the encoding that the \e
|
||||
user has chosen. For example, to convert an application containing
|
||||
literal English strings to Korean, all that is needed is for the
|
||||
English strings to be passed through tr() and for translation
|
||||
files to be loaded. For details of internationalization, see
|
||||
\l{Internationalization with Qt}.
|
||||
|
||||
\sa codecForTr()
|
||||
*/
|
||||
|
||||
/*!
|
||||
\since 4.4
|
||||
|
||||
|
@ -72,9 +72,6 @@ public:
|
||||
static QTextCodec* codecForLocale();
|
||||
static void setCodecForLocale(QTextCodec *c);
|
||||
|
||||
static QTextCodec* codecForTr();
|
||||
static void setCodecForTr(QTextCodec *c);
|
||||
|
||||
static QTextCodec *codecForHtml(const QByteArray &ba);
|
||||
static QTextCodec *codecForHtml(const QByteArray &ba, QTextCodec *defaultCodec);
|
||||
|
||||
@ -129,14 +126,10 @@ protected:
|
||||
|
||||
private:
|
||||
friend class QTextCodecCleanup;
|
||||
static QTextCodec *cftr;
|
||||
static bool validCodecs();
|
||||
};
|
||||
Q_DECLARE_OPERATORS_FOR_FLAGS(QTextCodec::ConversionFlags)
|
||||
|
||||
inline QTextCodec* QTextCodec::codecForTr() { return validCodecs() ? cftr : 0; }
|
||||
inline void QTextCodec::setCodecForTr(QTextCodec *c) { cftr = c; }
|
||||
|
||||
class Q_CORE_EXPORT QTextEncoder {
|
||||
Q_DISABLE_COPY(QTextEncoder)
|
||||
public:
|
||||
|
@ -2233,9 +2233,7 @@ int qrand()
|
||||
|
||||
The macro QT_TR_NOOP_UTF8() is identical except that it tells lupdate
|
||||
that the source string is encoded in UTF-8. Corresponding variants
|
||||
exist in the QT_TRANSLATE_NOOP() family of macros, too. Note that
|
||||
using these macros is not required if \c CODECFORTR is already set to
|
||||
UTF-8 in the qmake project file.
|
||||
exist in the QT_TRANSLATE_NOOP() family of macros, too.
|
||||
|
||||
\sa QT_TRANSLATE_NOOP(), {Internationalization with Qt}
|
||||
*/
|
||||
|
@ -1438,11 +1438,9 @@ bool QCoreApplication::event(QEvent *e)
|
||||
This enum type defines the 8-bit encoding of character string
|
||||
arguments to translate():
|
||||
|
||||
\value CodecForTr The encoding specified by
|
||||
QTextCodec::codecForTr() (Latin-1 if none has
|
||||
been set).
|
||||
\value UnicodeUTF8 UTF-8.
|
||||
\value DefaultCodec (Obsolete) Use CodecForTr instead.
|
||||
\value UnicodeUTF8 UTF-8.
|
||||
\value Latin1 Latin-1.
|
||||
\value DefaultCodec Latin-1.
|
||||
|
||||
\sa QObject::tr(), QObject::trUtf8(), QString::fromUtf8()
|
||||
*/
|
||||
@ -1617,7 +1615,7 @@ static void replacePercentN(QString *result, int n)
|
||||
If none of the translation files contain a translation for \a
|
||||
sourceText in \a context, this function returns a QString
|
||||
equivalent of \a sourceText. The encoding of \a sourceText is
|
||||
specified by \e encoding; it defaults to CodecForTr.
|
||||
specified by \e encoding; it defaults to DefaultCodec.
|
||||
|
||||
This function is not virtual. You can use alternative translation
|
||||
techniques by subclassing \l QTranslator.
|
||||
@ -1628,7 +1626,7 @@ static void replacePercentN(QString *result, int n)
|
||||
so will most likely result in crashes or other undesirable
|
||||
behavior.
|
||||
|
||||
\sa QObject::tr() installTranslator() QTextCodec::codecForTr()
|
||||
\sa QObject::tr() installTranslator()
|
||||
*/
|
||||
|
||||
|
||||
@ -1657,8 +1655,6 @@ QString QCoreApplication::translate(const char *context, const char *sourceText,
|
||||
#else
|
||||
if (encoding == UnicodeUTF8)
|
||||
result = QString::fromUtf8(sourceText);
|
||||
else if (QTextCodec::codecForTr() != 0)
|
||||
result = QTextCodec::codecForTr()->toUnicode(sourceText);
|
||||
else
|
||||
#endif
|
||||
result = QString::fromLatin1(sourceText);
|
||||
|
@ -137,11 +137,11 @@ public:
|
||||
static void installTranslator(QTranslator * messageFile);
|
||||
static void removeTranslator(QTranslator * messageFile);
|
||||
#endif
|
||||
enum Encoding { CodecForTr, UnicodeUTF8, DefaultCodec = CodecForTr };
|
||||
enum Encoding { UnicodeUTF8, Latin1, DefaultCodec = Latin1 };
|
||||
static QString translate(const char * context,
|
||||
const char * key,
|
||||
const char * disambiguation = 0,
|
||||
Encoding encoding = CodecForTr,
|
||||
Encoding encoding = DefaultCodec,
|
||||
int n = -1);
|
||||
|
||||
static void flush();
|
||||
@ -240,7 +240,7 @@ inline QString QCoreApplication::translate(const char *, const char *sourceText,
|
||||
public: \
|
||||
static inline QString tr(const char *sourceText, const char *disambiguation = 0, int n = -1) \
|
||||
{ return QCoreApplication::translate(#context, sourceText, disambiguation, \
|
||||
QCoreApplication::CodecForTr, n); } \
|
||||
QCoreApplication::DefaultCodec, n); } \
|
||||
static inline QString trUtf8(const char *sourceText, const char *disambiguation = 0, int n = -1) \
|
||||
{ return QCoreApplication::translate(#context, sourceText, disambiguation, \
|
||||
QCoreApplication::UnicodeUTF8, n); } \
|
||||
|
@ -307,7 +307,7 @@ const QObject *QMetaObject::cast(const QObject *obj) const
|
||||
*/
|
||||
QString QMetaObject::tr(const char *s, const char *c, int n) const
|
||||
{
|
||||
return QCoreApplication::translate(d.stringdata, s, c, QCoreApplication::CodecForTr, n);
|
||||
return QCoreApplication::translate(d.stringdata, s, c, QCoreApplication::DefaultCodec, n);
|
||||
}
|
||||
|
||||
/*!
|
||||
|
@ -1859,7 +1859,7 @@ void QObject::deleteLater()
|
||||
translators while performing translations is not supported. Doing
|
||||
so will probably result in crashes or other undesirable behavior.
|
||||
|
||||
\sa trUtf8(), QApplication::translate(), QTextCodec::setCodecForTr(), {Internationalization with Qt}
|
||||
\sa trUtf8(), QApplication::translate(), {Internationalization with Qt}
|
||||
*/
|
||||
|
||||
/*!
|
||||
@ -1871,11 +1871,6 @@ void QObject::deleteLater()
|
||||
version. It is otherwise identical to tr(\a sourceText, \a
|
||||
disambiguation, \a n).
|
||||
|
||||
Note that using the Utf8 variants of the translation functions
|
||||
is not required if \c CODECFORTR is already set to UTF-8 in the
|
||||
qmake project file and QTextCodec::setCodecForTr("UTF-8") is
|
||||
used.
|
||||
|
||||
\warning This method is reentrant only if all translators are
|
||||
installed \e before calling this method. Installing or removing
|
||||
translators while performing translations is not supported. Doing
|
||||
|
Loading…
x
Reference in New Issue
Block a user