diff --git a/src/libs/utils/elfreader.cpp b/src/libs/utils/elfreader.cpp index 2b2f5b03020c2bf8de383d698cbdc8a621b94151..a086721ee7d52f6e6192c34ed2f8d9af5550b94f 100644 --- a/src/libs/utils/elfreader.cpp +++ b/src/libs/utils/elfreader.cpp @@ -43,6 +43,7 @@ #include "qtcassert.h" #include <QFile> +#include <QDir> #include <QLibrary> #include <QDebug> @@ -153,6 +154,12 @@ ElfData ElfReader::readHeaders() return m_elfData; } +static inline QString msgInvalidElfObject(const QString &binary, const QString &why) +{ + return ElfReader::tr("'%1' is an invalid ELF object (%2)") + .arg(QDir::toNativeSeparators(binary), why); +} + ElfReader::Result ElfReader::readIt() { if (!m_elfData.sectionHeaders.isEmpty()) @@ -167,14 +174,12 @@ ElfReader::Result ElfReader::readIt() const quint64 fdlen = mapper.fdlen; if (fdlen < 64) { - m_errorString = QLibrary::tr("'%1' is not an ELF object (%2)") - .arg(m_binary).arg(QLatin1String("file too small")); + m_errorString = tr("'%1' is not an ELF object (file too small)").arg(QDir::toNativeSeparators(m_binary)); return NotElf; } if (strncmp(mapper.start, "\177ELF", 4) != 0) { - m_errorString = QLibrary::tr("'%1' is not an ELF object") - .arg(m_binary); + m_errorString = tr("'%1' is not an ELF object").arg(QDir::toNativeSeparators(m_binary)); return NotElf; } @@ -182,8 +187,7 @@ ElfReader::Result ElfReader::readIt() m_elfData.elfclass = ElfClass(mapper.start[4]); const bool is64Bit = m_elfData.elfclass == Elf_ELFCLASS64; if (m_elfData.elfclass != Elf_ELFCLASS32 && m_elfData.elfclass != Elf_ELFCLASS64) { - m_errorString = QLibrary::tr("'%1' is an invalid ELF object (%2)") - .arg(m_binary).arg(QLatin1String("odd cpu architecture")); + m_errorString = msgInvalidElfObject(m_binary, tr("odd cpu architecture")); return Corrupt; } @@ -202,8 +206,7 @@ ElfReader::Result ElfReader::readIt() // Read Endianess. m_elfData.endian = ElfEndian(mapper.ustart[5]); if (m_elfData.endian != Elf_ELFDATA2LSB && m_elfData.endian != Elf_ELFDATA2MSB) { - m_errorString = QLibrary::tr("'%1' is an invalid ELF object (%2)") - .arg(m_binary).arg(QLatin1String("odd endianess")); + m_errorString = msgInvalidElfObject(m_binary, tr("odd endianess")); return Corrupt; } @@ -220,8 +223,7 @@ ElfReader::Result ElfReader::readIt() quint32 e_shsize = getHalfWord(data, m_elfData); if (e_shsize > fdlen) { - m_errorString = QLibrary::tr("'%1' is an invalid ELF object (%2)") - .arg(m_binary).arg(QLatin1String("unexpected e_shsize")); + m_errorString = msgInvalidElfObject(m_binary, tr("unexpected e_shsize")); return Corrupt; } @@ -232,8 +234,7 @@ ElfReader::Result ElfReader::readIt() quint32 e_shentsize = getHalfWord(data, m_elfData); if (e_shentsize % 4) { - m_errorString = QLibrary::tr("'%1' is an invalid ELF object (%2)") - .arg(m_binary).arg(QLatin1String("unexpected e_shentsize")); + m_errorString = msgInvalidElfObject(m_binary, tr("unexpected e_shentsize")); return Corrupt; } @@ -242,10 +243,9 @@ ElfReader::Result ElfReader::readIt() QTC_CHECK(data == mapper.ustart + (is64Bit ? 64 : 52)); if (quint64(e_shnum) * e_shentsize > fdlen) { - m_errorString = QLibrary::tr("'%1' is an invalid ELF object (%2)") - .arg(m_binary) - .arg(QLatin1String("announced %2 sections, each %3 bytes, exceed file size")) - .arg(e_shnum).arg(e_shentsize); + const QString reason = tr("announced %1 sections, each %2 bytes, exceed file size") + .arg(e_shnum).arg(e_shentsize); + m_errorString = msgInvalidElfObject(m_binary, reason); return Corrupt; } @@ -266,10 +266,8 @@ ElfReader::Result ElfReader::readIt() if (quint32(stringTableFileOffset + e_shentsize) >= fdlen || stringTableFileOffset == 0) { - m_errorString = QLibrary::tr("'%1' is an invalid ELF object (%2)") - .arg(m_binary) - .arg(QLatin1String("string table seems to be at %1")) - .arg(QString::number(soff, 16)); + const QString reason = tr("string table seems to be at 0x%1").arg(soff, 0, 16); + m_errorString = msgInvalidElfObject(m_binary, reason); return Corrupt; } @@ -279,10 +277,9 @@ ElfReader::Result ElfReader::readIt() parseSectionHeader(s, &sh, m_elfData); if (stringTableFileOffset + sh.index > fdlen) { - m_errorString = QLibrary::tr("'%1' is an invalid ELF object (%2)") - .arg(m_binary) - .arg(QLatin1String("section name %2 of %3 behind end of file")) - .arg(i).arg(e_shnum); + const QString reason = tr("section name %1 of %2 behind end of file") + .arg(i).arg(e_shnum); + m_errorString = msgInvalidElfObject(m_binary, reason); return Corrupt; } diff --git a/src/libs/utils/elfreader.h b/src/libs/utils/elfreader.h index 115d8d993490ffb3be1ea8b835bee1edc3e063d1..c9da1c158a35a9bb33083d82e721e4d125c0a8f4 100644 --- a/src/libs/utils/elfreader.h +++ b/src/libs/utils/elfreader.h @@ -47,6 +47,7 @@ #include <qendian.h> #include <qstring.h> #include <qvector.h> +#include <qcoreapplication.h> namespace Utils { @@ -167,6 +168,7 @@ public: class QTCREATOR_UTILS_EXPORT ElfReader { + Q_DECLARE_TR_FUNCTIONS(Utils::ElfReader) public: explicit ElfReader(const QString &binary); enum Result { Ok, NotElf, Corrupt }; diff --git a/src/libs/zeroconf/servicebrowser.cpp b/src/libs/zeroconf/servicebrowser.cpp index dcdd884e31159d6af5aed82f7734e6371580518a..4e3c04bd7781cc7bd3b19f39c2c065dcbb123465 100644 --- a/src/libs/zeroconf/servicebrowser.cpp +++ b/src/libs/zeroconf/servicebrowser.cpp @@ -1518,7 +1518,7 @@ void ServiceBrowserPrivate::startBrowsing(quint32 interfaceIndex) if (failed || browsing) return; if (mainConnection.isNull()) { - startupPhase(1, q->tr("Starting Zeroconf Browsing")); + startupPhase(1, ServiceBrowser::tr("Starting Zeroconf Browsing")); mainConnection = MainConnectionPtr(new MainConnection(this)); } else { mainConnection->addBrowser(this); diff --git a/src/plugins/android/androidcreatekeystorecertificate.ui b/src/plugins/android/androidcreatekeystorecertificate.ui index 9a0cb0a02d91b223c76293ef06a3bc015e59f3f9..ab92627dc797d9dece9a20a923e607df903ce92d 100644 --- a/src/plugins/android/androidcreatekeystorecertificate.ui +++ b/src/plugins/android/androidcreatekeystorecertificate.ui @@ -11,7 +11,7 @@ </rect> </property> <property name="windowTitle"> - <string>Create a keystore and a cetificate</string> + <string>Create a keystore and a certificate</string> </property> <layout class="QGridLayout" name="gridLayout_4"> <item row="0" column="0"> diff --git a/src/plugins/debugger/debuggerdialogs.cpp b/src/plugins/debugger/debuggerdialogs.cpp index 87cc134847852e5e4b09cd08adabc4302cf7754f..aa00bc1be768a4f629453d0ccdbd341f8469ce24 100644 --- a/src/plugins/debugger/debuggerdialogs.cpp +++ b/src/plugins/debugger/debuggerdialogs.cpp @@ -204,7 +204,7 @@ AttachExternalDialog::AttachExternalDialog(QWidget *parent) d(new AttachExternalDialogPrivate) { setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); - setWindowTitle(tr("Start Debugger", 0, QApplication::UnicodeUTF8)); + setWindowTitle(tr("Start Debugger")); setMinimumHeight(500); d->selfPid = QString::number(QCoreApplication::applicationPid());