Add support for JavaScriptFiles and ImageFiles elements to .qmlproject

This commit is contained in:
Kai Koehne
2010-01-29 10:36:00 +01:00
parent 269506c99c
commit bafe4468aa
6 changed files with 42 additions and 9 deletions

View File

@@ -46,8 +46,11 @@ void FileFilterBaseItem::setFilter(const QString &filter)
if (filter == m_filter)
return;
m_filter = filter;
m_regex.setPattern(m_filter);
m_regex.setPatternSyntax(QRegExp::Wildcard);
m_regExpList.clear();
foreach (const QString &pattern, filter.split(QLatin1Char(';'))) {
m_regExpList << QRegExp(pattern, Qt::CaseInsensitive, QRegExp::Wildcard);
}
emit filterChanged();
updateFileList();
@@ -113,7 +116,7 @@ void FileFilterBaseItem::updateFileList()
newFiles << QDir(projectDir).absoluteFilePath(explicitPath);
}
}
if (m_regex.isValid() && m_explicitFiles.isEmpty())
if (!m_regExpList.isEmpty() && m_explicitFiles.isEmpty())
newFiles += filesInSubTree(QDir(m_defaultDir), QDir(projectDir), &dirsToBeWatched);
if (newFiles != m_files) {
@@ -149,8 +152,12 @@ QSet<QString> FileFilterBaseItem::filesInSubTree(const QDir &rootDir, const QDir
parsedDirs->insert(dir.absolutePath());
foreach (const QFileInfo &file, dir.entryInfoList(QDir::Files)) {
if (m_regex.exactMatch(file.fileName())) {
fileSet.insert(file.absoluteFilePath());
const QString fileName = file.fileName();
foreach (const QRegExp &filter, m_regExpList) {
if (filter.exactMatch(fileName)) {
fileSet.insert(file.absoluteFilePath());
break;
}
}
}

View File

@@ -58,7 +58,7 @@ private:
QString m_defaultDir;
QString m_filter;
QRegExp m_regex;
QList<QRegExp> m_regExpList;
bool m_recursive;
QSet<QString> m_explicitFiles;