forked from qt-creator/qt-creator
DirectoryFilter: Remove the old matchesFor() implementation
Change-Id: Iae8a2e3adda7fdaec69873bf4b171da98eee4874 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -83,8 +83,7 @@ DirectoryFilter::DirectoryFilter(Id id)
|
|||||||
const auto groupSetup = [this] {
|
const auto groupSetup = [this] {
|
||||||
if (!m_directories.isEmpty())
|
if (!m_directories.isEmpty())
|
||||||
return TaskAction::Continue; // Async task will run
|
return TaskAction::Continue; // Async task will run
|
||||||
m_files.clear();
|
m_cache.setFilePaths({});
|
||||||
updateFileIterator();
|
|
||||||
return TaskAction::StopWithDone; // Group stops, skips async task
|
return TaskAction::StopWithDone; // Group stops, skips async task
|
||||||
};
|
};
|
||||||
const auto asyncSetup = [this](Async<FilePaths> &async) {
|
const auto asyncSetup = [this](Async<FilePaths> &async) {
|
||||||
@@ -92,8 +91,8 @@ DirectoryFilter::DirectoryFilter(Id id)
|
|||||||
displayName());
|
displayName());
|
||||||
};
|
};
|
||||||
const auto asyncDone = [this](const Async<FilePaths> &async) {
|
const auto asyncDone = [this](const Async<FilePaths> &async) {
|
||||||
m_files = async.isResultAvailable() ? async.result() : FilePaths();
|
if (async.isResultAvailable())
|
||||||
updateFileIterator();
|
m_cache.setFilePaths(async.result());
|
||||||
};
|
};
|
||||||
const Group root {
|
const Group root {
|
||||||
OnGroupSetup(groupSetup),
|
OnGroupSetup(groupSetup),
|
||||||
@@ -113,10 +112,11 @@ void DirectoryFilter::saveState(QJsonObject &object) const
|
|||||||
}
|
}
|
||||||
if (m_filters != kFiltersDefault)
|
if (m_filters != kFiltersDefault)
|
||||||
object.insert(kFiltersKey, QJsonArray::fromStringList(m_filters));
|
object.insert(kFiltersKey, QJsonArray::fromStringList(m_filters));
|
||||||
if (!m_files.isEmpty())
|
const std::optional<FilePaths> files = m_cache.filePaths();
|
||||||
object.insert(kFilesKey,
|
if (files) {
|
||||||
QJsonArray::fromStringList(
|
object.insert(kFilesKey, QJsonArray::fromStringList(
|
||||||
Utils::transform(m_files, &Utils::FilePath::toString)));
|
Utils::transform(*files, &FilePath::toString)));
|
||||||
|
}
|
||||||
if (m_exclusionFilters != kExclusionFiltersDefault)
|
if (m_exclusionFilters != kExclusionFiltersDefault)
|
||||||
object.insert(kExclusionFiltersKey, QJsonArray::fromStringList(m_exclusionFilters));
|
object.insert(kExclusionFiltersKey, QJsonArray::fromStringList(m_exclusionFilters));
|
||||||
}
|
}
|
||||||
@@ -138,7 +138,10 @@ void DirectoryFilter::restoreState(const QJsonObject &object)
|
|||||||
m_directories = toFilePaths(object.value(kDirectoriesKey).toArray());
|
m_directories = toFilePaths(object.value(kDirectoriesKey).toArray());
|
||||||
m_filters = toStringList(
|
m_filters = toStringList(
|
||||||
object.value(kFiltersKey).toArray(QJsonArray::fromStringList(kFiltersDefault)));
|
object.value(kFiltersKey).toArray(QJsonArray::fromStringList(kFiltersDefault)));
|
||||||
m_files = FileUtils::toFilePathList(toStringList(object.value(kFilesKey).toArray()));
|
if (object.contains(kFilesKey)) {
|
||||||
|
m_cache.setFilePaths(FileUtils::toFilePathList(
|
||||||
|
toStringList(object.value(kFilesKey).toArray())));
|
||||||
|
}
|
||||||
m_exclusionFilters = toStringList(
|
m_exclusionFilters = toStringList(
|
||||||
object.value(kExclusionFiltersKey)
|
object.value(kExclusionFiltersKey)
|
||||||
.toArray(QJsonArray::fromStringList(kExclusionFiltersDefault)));
|
.toArray(QJsonArray::fromStringList(kExclusionFiltersDefault)));
|
||||||
@@ -161,7 +164,7 @@ void DirectoryFilter::restoreState(const QByteArray &state)
|
|||||||
in >> shortcut;
|
in >> shortcut;
|
||||||
in >> defaultFilter;
|
in >> defaultFilter;
|
||||||
in >> files;
|
in >> files;
|
||||||
m_files = FileUtils::toFilePathList(files);
|
m_cache.setFilePaths(FileUtils::toFilePathList(files));
|
||||||
if (!in.atEnd()) // Qt Creator 4.3 and later
|
if (!in.atEnd()) // Qt Creator 4.3 and later
|
||||||
in >> m_exclusionFilters;
|
in >> m_exclusionFilters;
|
||||||
else
|
else
|
||||||
@@ -178,7 +181,6 @@ void DirectoryFilter::restoreState(const QByteArray &state)
|
|||||||
} else {
|
} else {
|
||||||
ILocatorFilter::restoreState(state);
|
ILocatorFilter::restoreState(state);
|
||||||
}
|
}
|
||||||
updateFileIterator();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class DirectoryFilterOptions : public QDialog
|
class DirectoryFilterOptions : public QDialog
|
||||||
@@ -381,12 +383,6 @@ void DirectoryFilter::updateOptionButtons()
|
|||||||
m_dialog->removeButton->setEnabled(haveSelectedItem);
|
m_dialog->removeButton->setEnabled(haveSelectedItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DirectoryFilter::updateFileIterator()
|
|
||||||
{
|
|
||||||
m_cache.setFilePaths(m_files);
|
|
||||||
setFileIterator(new BaseFileFilter::ListIterator(m_files));
|
|
||||||
}
|
|
||||||
|
|
||||||
void DirectoryFilter::setIsCustomFilter(bool value)
|
void DirectoryFilter::setIsCustomFilter(bool value)
|
||||||
{
|
{
|
||||||
m_isCustomFilter = value;
|
m_isCustomFilter = value;
|
||||||
|
@@ -3,19 +3,14 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "basefilefilter.h"
|
#include "ilocatorfilter.h"
|
||||||
|
|
||||||
#include <coreplugin/core_global.h>
|
#include <coreplugin/core_global.h>
|
||||||
|
|
||||||
#include <QByteArray>
|
|
||||||
|
|
||||||
namespace Core {
|
namespace Core {
|
||||||
|
|
||||||
// TODO: Don't derive from BaseFileFilter, flatten the hierarchy
|
class CORE_EXPORT DirectoryFilter : public ILocatorFilter
|
||||||
class CORE_EXPORT DirectoryFilter : public BaseFileFilter
|
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
DirectoryFilter(Utils::Id id);
|
DirectoryFilter(Utils::Id id);
|
||||||
void restoreState(const QByteArray &state) override;
|
void restoreState(const QByteArray &state) override;
|
||||||
@@ -38,8 +33,6 @@ private:
|
|||||||
void handleEditDirectory();
|
void handleEditDirectory();
|
||||||
void handleRemoveDirectory();
|
void handleRemoveDirectory();
|
||||||
void updateOptionButtons();
|
void updateOptionButtons();
|
||||||
// TODO: Remove me, replace with direct "m_cache.setFilePaths()" call
|
|
||||||
void updateFileIterator();
|
|
||||||
|
|
||||||
Utils::FilePaths m_directories;
|
Utils::FilePaths m_directories;
|
||||||
QStringList m_filters;
|
QStringList m_filters;
|
||||||
@@ -47,8 +40,6 @@ private:
|
|||||||
// Our config dialog, uses in addDirectory and editDirectory
|
// Our config dialog, uses in addDirectory and editDirectory
|
||||||
// to give their dialogs the right parent
|
// to give their dialogs the right parent
|
||||||
class DirectoryFilterOptions *m_dialog = nullptr;
|
class DirectoryFilterOptions *m_dialog = nullptr;
|
||||||
// TODO: Remove me, use the cache instead.
|
|
||||||
Utils::FilePaths m_files;
|
|
||||||
bool m_isCustomFilter = true;
|
bool m_isCustomFilter = true;
|
||||||
LocatorFileCache m_cache;
|
LocatorFileCache m_cache;
|
||||||
};
|
};
|
||||||
|
@@ -1361,6 +1361,11 @@ void LocatorFileCache::setGeneratorProvider(const GeneratorProvider &provider)
|
|||||||
d->setGeneratorProvider(provider);
|
d->setGeneratorProvider(provider);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::optional<FilePaths> LocatorFileCache::filePaths() const
|
||||||
|
{
|
||||||
|
return d->m_filePaths;
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Sets the file path generator.
|
Sets the file path generator.
|
||||||
|
|
||||||
@@ -1413,6 +1418,7 @@ void LocatorFileCache::setFilePathsGenerator(const FilePathsGenerator &generator
|
|||||||
void LocatorFileCache::setFilePaths(const FilePaths &filePaths)
|
void LocatorFileCache::setFilePaths(const FilePaths &filePaths)
|
||||||
{
|
{
|
||||||
setFilePathsGenerator(filePathsGenerator(filePaths));
|
setFilePathsGenerator(filePathsGenerator(filePaths));
|
||||||
|
d->m_filePaths = filePaths;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@@ -321,6 +321,8 @@ public:
|
|||||||
void setFilePaths(const Utils::FilePaths &filePaths);
|
void setFilePaths(const Utils::FilePaths &filePaths);
|
||||||
void setGeneratorProvider(const GeneratorProvider &provider);
|
void setGeneratorProvider(const GeneratorProvider &provider);
|
||||||
|
|
||||||
|
std::optional<Utils::FilePaths> filePaths() const;
|
||||||
|
|
||||||
static FilePathsGenerator filePathsGenerator(const Utils::FilePaths &filePaths);
|
static FilePathsGenerator filePathsGenerator(const Utils::FilePaths &filePaths);
|
||||||
LocatorMatcherTask matcher() const;
|
LocatorMatcherTask matcher() const;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user