forked from qt-creator/qt-creator
QmlProjectManager: A bit of polish
Use QVector over QList, add some qAsConst, use ranged based for, use algorithmns, do not repeatedly search an unsorted QStringList. Change-Id: I1a97338f0cb0d26d2cc1c4b2802bbb1540b932bb Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
@@ -26,6 +26,8 @@
|
||||
#include "qmlprojectitem.h"
|
||||
#include "filefilteritems.h"
|
||||
|
||||
#include <utils/algorithm.h>
|
||||
|
||||
#include <QDir>
|
||||
|
||||
namespace QmlProjectManager {
|
||||
@@ -68,17 +70,17 @@ void QmlProjectItem::setFileSelectors(const QStringList &selectors)
|
||||
/* Returns list of absolute paths */
|
||||
QStringList QmlProjectItem::files() const
|
||||
{
|
||||
QStringList files;
|
||||
QSet<QString> files;
|
||||
|
||||
for (QmlProjectContentItem *contentElement : m_content) {
|
||||
if (auto fileFilter = qobject_cast<FileFilterBaseItem *>(contentElement)) {
|
||||
foreach (const QString &file, fileFilter->files()) {
|
||||
if (!files.contains(file))
|
||||
files << file;
|
||||
for (const auto contentElement : qAsConst(m_content)) {
|
||||
if (auto fileFilter = qobject_cast<const FileFilterBaseItem *>(contentElement)) {
|
||||
const QStringList fileList = fileFilter->files();
|
||||
for (const QString &file : fileList) {
|
||||
files.insert(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
return files;
|
||||
return files.toList();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -89,13 +91,10 @@ QStringList QmlProjectItem::files() const
|
||||
*/
|
||||
bool QmlProjectItem::matchesFile(const QString &filePath) const
|
||||
{
|
||||
for (QmlProjectContentItem *contentElement : m_content) {
|
||||
if (auto fileFilter = qobject_cast<FileFilterBaseItem *>(contentElement)) {
|
||||
if (fileFilter->matchesFile(filePath))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
return Utils::contains(m_content, [&filePath](const QmlProjectContentItem *item) {
|
||||
auto fileFilter = qobject_cast<const FileFilterBaseItem *>(item);
|
||||
return fileFilter && fileFilter->matchesFile(filePath);
|
||||
});
|
||||
}
|
||||
|
||||
Utils::EnvironmentItems QmlProjectItem::environment() const
|
||||
|
@@ -78,7 +78,7 @@ protected:
|
||||
QStringList m_fileSelectors;
|
||||
QString m_mainFile;
|
||||
Utils::EnvironmentItems m_environment;
|
||||
QList<QmlProjectContentItem *> m_content; // content property
|
||||
QVector<QmlProjectContentItem *> m_content; // content property
|
||||
};
|
||||
|
||||
} // namespace QmlProjectManager
|
||||
|
Reference in New Issue
Block a user