QCoreApplication - add return type bool on install/remove translator

This add a bool as return value on QCoreApplication::installTranslator
and QCoreApplication::removeTranslator. It returns true on success.

Before it was very clumsy to detected this. It was needed to react
on the signal and mark a success - just to provide an error message
on failure.

This is 99.99% source compatible - only if someone grabs a function
pointer to this - it will break the code - but it seems to be very
theoretic.

Change-Id: I947fcee1352f530e559bb177a90c10d84eed1aec
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
This commit is contained in:
Thorbjørn Lund Martsum 2012-03-20 08:47:57 +01:00 committed by Qt by Nokia
parent 37b0a8e7e6
commit a4a61bb3ef
2 changed files with 16 additions and 9 deletions

View File

@ -1513,26 +1513,29 @@ void QCoreApplication::quit()
generated by \l{Qt Designer} provide a \c retranslateUi() function that can be generated by \l{Qt Designer} provide a \c retranslateUi() function that can be
called. called.
The function returns true on success and false on failure.
\sa removeTranslator() translate() QTranslator::load() {Dynamic Translation} \sa removeTranslator() translate() QTranslator::load() {Dynamic Translation}
*/ */
void QCoreApplication::installTranslator(QTranslator *translationFile) bool QCoreApplication::installTranslator(QTranslator *translationFile)
{ {
if (!translationFile) if (!translationFile)
return; return false;
if (!QCoreApplicationPrivate::checkInstance("installTranslator")) if (!QCoreApplicationPrivate::checkInstance("installTranslator"))
return; return false;
QCoreApplicationPrivate *d = self->d_func(); QCoreApplicationPrivate *d = self->d_func();
d->translators.prepend(translationFile); d->translators.prepend(translationFile);
#ifndef QT_NO_TRANSLATION_BUILDER #ifndef QT_NO_TRANSLATION_BUILDER
if (translationFile->isEmpty()) if (translationFile->isEmpty())
return; return false;
#endif #endif
QEvent ev(QEvent::LanguageChange); QEvent ev(QEvent::LanguageChange);
QCoreApplication::sendEvent(self, &ev); QCoreApplication::sendEvent(self, &ev);
return true;
} }
/*! /*!
@ -1540,20 +1543,24 @@ void QCoreApplication::installTranslator(QTranslator *translationFile)
translation files used by this application. (It does not delete the translation files used by this application. (It does not delete the
translation file from the file system.) translation file from the file system.)
The function returns true on success and false on failure.
\sa installTranslator() translate(), QObject::tr() \sa installTranslator() translate(), QObject::tr()
*/ */
void QCoreApplication::removeTranslator(QTranslator *translationFile) bool QCoreApplication::removeTranslator(QTranslator *translationFile)
{ {
if (!translationFile) if (!translationFile)
return; return false;
if (!QCoreApplicationPrivate::checkInstance("removeTranslator")) if (!QCoreApplicationPrivate::checkInstance("removeTranslator"))
return; return false;
QCoreApplicationPrivate *d = self->d_func(); QCoreApplicationPrivate *d = self->d_func();
if (d->translators.removeAll(translationFile) && !self->closingDown()) { if (d->translators.removeAll(translationFile) && !self->closingDown()) {
QEvent ev(QEvent::LanguageChange); QEvent ev(QEvent::LanguageChange);
QCoreApplication::sendEvent(self, &ev); QCoreApplication::sendEvent(self, &ev);
return true;
} }
return false;
} }
static void replacePercentN(QString *result, int n) static void replacePercentN(QString *result, int n)

View File

@ -134,8 +134,8 @@ public:
#endif // QT_NO_LIBRARY #endif // QT_NO_LIBRARY
#ifndef QT_NO_TRANSLATION #ifndef QT_NO_TRANSLATION
static void installTranslator(QTranslator * messageFile); static bool installTranslator(QTranslator * messageFile);
static void removeTranslator(QTranslator * messageFile); static bool removeTranslator(QTranslator * messageFile);
#endif #endif
enum Encoding { UnicodeUTF8, Latin1, DefaultCodec = Latin1 enum Encoding { UnicodeUTF8, Latin1, DefaultCodec = Latin1
#if QT_DEPRECATED_SINCE(5, 0) #if QT_DEPRECATED_SINCE(5, 0)