diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2018-11-02 11:27:46 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2018-12-12 07:27:15 +0000 |
commit | b86d0b62156993936bf93169a895a92ad60adf7d (patch) | |
tree | 216c2538ad1d0afaf6dae79f205ad66655e75600 /src/tools/uic/driver.cpp | |
parent | 384b9d8fedd3c32b4a8d05740cc1c4bd73e171d8 (diff) |
uic: Small refactorings
- Do not use QString::number() to stream numbers.
- Do not use QLatin1String/Char to stream strings or characters.
- Add a convenience methods to determine the container page add method
for simple containers.
- Similarly, extract a method to determine the layout method and
simplify the code accordingly.
- Fix Clang warnings about else if after return/continue.
- Use QString::isEmpty() instead of size() to check emptiness.
- Fix QHash-contains()/value() Antipattern
Task-number: PYSIDE-797
Change-Id: I9c61d20f46c8d142b947126a27faaf54b41f9e0c
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Diffstat (limited to 'src/tools/uic/driver.cpp')
-rw-r--r-- | src/tools/uic/driver.cpp | 37 |
1 files changed, 14 insertions, 23 deletions
diff --git a/src/tools/uic/driver.cpp b/src/tools/uic/driver.cpp index 748be9cece..cf7e67305b 100644 --- a/src/tools/uic/driver.cpp +++ b/src/tools/uic/driver.cpp @@ -33,6 +33,8 @@ #include <qfileinfo.h> #include <qdebug.h> +#include <algorithm> + QT_BEGIN_NAMESPACE Driver::Driver() @@ -136,11 +138,9 @@ QString Driver::findOrInsertName(const QString &name) QString Driver::normalizedName(const QString &name) { QString result = name; - QChar *data = result.data(); - for (int i = name.size(); --i >= 0; ++data) { - if (!data->isLetterOrNumber()) - *data = QLatin1Char('_'); - } + std::replace_if(result.begin(), result.end(), + [] (QChar c) { return !c.isLetterOrNumber(); }, + QLatin1Char('_')); return result; } @@ -149,23 +149,21 @@ QString Driver::unique(const QString &instanceName, const QString &className) QString name; bool alreadyUsed = false; - if (instanceName.size()) { - int id = 1; - name = instanceName; - name = normalizedName(name); + if (!instanceName.isEmpty()) { + name = normalizedName(instanceName); QString base = name; - while (m_nameRepository.contains(name)) { + for (int id = 1; m_nameRepository.contains(name); ++id) { alreadyUsed = true; - name = base + QString::number(id++); + name = base + QString::number(id); } - } else if (className.size()) { + } else if (!className.isEmpty()) { name = unique(qtify(className)); } else { name = unique(QLatin1String("var")); } - if (alreadyUsed && className.size()) { + if (alreadyUsed && !className.isEmpty()) { fprintf(stderr, "%s: Warning: The name '%s' (%s) is already in use, defaulting to '%s'.\n", qPrintable(m_option.messagePrefix()), qPrintable(instanceName), qPrintable(className), @@ -181,17 +179,10 @@ QString Driver::qtify(const QString &name) QString qname = name; if (qname.at(0) == QLatin1Char('Q') || qname.at(0) == QLatin1Char('K')) - qname = qname.mid(1); + qname.remove(0, 1); - int i=0; - while (i < qname.length()) { - if (qname.at(i).toLower() != qname.at(i)) - qname[i] = qname.at(i).toLower(); - else - break; - - ++i; - } + for (int i = 0, size = qname.size(); i < size && qname.at(i).isUpper(); ++i) + qname[i] = qname.at(i).toLower(); return qname; } |