diff options
author | Kai Koehne <kai.koehne@qt.io> | 2020-01-23 12:02:06 +0100 |
---|---|---|
committer | Kai Koehne <kai.koehne@qt.io> | 2020-02-10 15:14:48 +0000 |
commit | dce61f04503d6730b954b153395cc3f9ce5d7c24 (patch) | |
tree | 14f2e9667d060aa308ff546232a834dc6c69671d /src/corelib/kernel/qtranslator.cpp | |
parent | b1089787d1dd9dd2b6b09a74923ea5f573d04bb2 (diff) |
QTranslator: Expose origin file of the translation
Task-number: QTBUG-36608
Change-Id: I8ef0968404370b8fc25dc8b4c1e2c9e4484ae55c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/corelib/kernel/qtranslator.cpp')
-rw-r--r-- | src/corelib/kernel/qtranslator.cpp | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/src/corelib/kernel/qtranslator.cpp b/src/corelib/kernel/qtranslator.cpp index 93d75feafa..822f96c499 100644 --- a/src/corelib/kernel/qtranslator.cpp +++ b/src/corelib/kernel/qtranslator.cpp @@ -316,6 +316,8 @@ public: uint contextLength; uint numerusRulesLength; + QString filePath; + bool do_load(const QString &filename, const QString &directory); bool do_load(const uchar *data, qsizetype len, const QString &directory); QString do_translate(const char *context, const char *sourceText, const char *comment, @@ -597,8 +599,10 @@ bool QTranslatorPrivate::do_load(const QString &realname, const QString &directo } } - if (ok && d->do_load(reinterpret_cast<const uchar *>(d->unmapPointer), d->unmapLength, directory)) + if (ok && d->do_load(reinterpret_cast<const uchar *>(d->unmapPointer), d->unmapLength, directory)) { + d->filePath = realname; return true; + } #if defined(QT_USE_MMAP) if (used_mmap) { @@ -1091,6 +1095,8 @@ void QTranslatorPrivate::clear() qDeleteAll(subTranslators); subTranslators.clear(); + filePath.clear(); + if (QCoreApplicationPrivate::isTranslatorInstalled(q)) QCoreApplication::postEvent(QCoreApplication::instance(), new QEvent(QEvent::LanguageChange)); @@ -1132,6 +1138,21 @@ bool QTranslator::isEmpty() const && d->subTranslators.isEmpty(); } +/*! + \since 5.15 + + Returns the path of the loaded translation file. + + The file path is empty if no translation was loaded yet, + the loading failed, or if the translation was not loaded + from a file. + */ +QString QTranslator::filePath() const +{ + Q_D(const QTranslator); + return d->filePath; +} + QT_END_NAMESPACE #include "moc_qtranslator.cpp" |