QCoreApplication - add return type bool on install/remove translator
authorThorbjørn Lund Martsum <tmartsum@gmail.com>
Tue, 20 Mar 2012 07:47:57 +0000 (08:47 +0100)
committerQt by Nokia <qt-info@nokia.com>
Wed, 21 Mar 2012 10:02:46 +0000 (11:02 +0100)
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>
src/corelib/kernel/qcoreapplication.cpp
src/corelib/kernel/qcoreapplication.h

index 967ed44..c901bc1 100644 (file)
@@ -1513,26 +1513,29 @@ void QCoreApplication::quit()
     generated by \l{Qt Designer} provide a \c retranslateUi() function that can be
     called.
 
+    The function returns true on success and false on failure.
+
     \sa removeTranslator() translate() QTranslator::load() {Dynamic Translation}
 */
 
-void QCoreApplication::installTranslator(QTranslator *translationFile)
+bool QCoreApplication::installTranslator(QTranslator *translationFile)
 {
     if (!translationFile)
-        return;
+        return false;
 
     if (!QCoreApplicationPrivate::checkInstance("installTranslator"))
-        return;
+        return false;
     QCoreApplicationPrivate *d = self->d_func();
     d->translators.prepend(translationFile);
 
 #ifndef QT_NO_TRANSLATION_BUILDER
     if (translationFile->isEmpty())
-        return;
+        return false;
 #endif
 
     QEvent ev(QEvent::LanguageChange);
     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 file from the file system.)
 
+    The function returns true on success and false on failure.
+
     \sa installTranslator() translate(), QObject::tr()
 */
 
-void QCoreApplication::removeTranslator(QTranslator *translationFile)
+bool QCoreApplication::removeTranslator(QTranslator *translationFile)
 {
     if (!translationFile)
-        return;
+        return false;
     if (!QCoreApplicationPrivate::checkInstance("removeTranslator"))
-        return;
+        return false;
     QCoreApplicationPrivate *d = self->d_func();
     if (d->translators.removeAll(translationFile) && !self->closingDown()) {
         QEvent ev(QEvent::LanguageChange);
         QCoreApplication::sendEvent(self, &ev);
+        return true;
     }
+    return false;
 }
 
 static void replacePercentN(QString *result, int n)
index cf76511..2c942f9 100644 (file)
@@ -134,8 +134,8 @@ public:
 #endif // QT_NO_LIBRARY
 
 #ifndef QT_NO_TRANSLATION
-    static void installTranslator(QTranslator * messageFile);
-    static void removeTranslator(QTranslator * messageFile);
+    static bool installTranslator(QTranslator * messageFile);
+    static bool removeTranslator(QTranslator * messageFile);
 #endif
     enum Encoding { UnicodeUTF8, Latin1, DefaultCodec = Latin1
 #if QT_DEPRECATED_SINCE(5, 0)