BaseFileFind: Make searchDir() non-virtual

Replace FindInFiles::pathChanged() with
BaseFileFind::searchDirChanged().

Change-Id: I3cbe507968391fe45f513490424a7fe6fbbffee1
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
Jarek Kobus
2023-06-28 23:55:16 +02:00
parent bf09d17992
commit 7a28ed76b8
5 changed files with 21 additions and 24 deletions

View File

@@ -212,7 +212,7 @@ GitGrep::GitGrep(GitClient *client)
});
FindInFiles *findInFiles = FindInFiles::instance();
QTC_ASSERT(findInFiles, return);
connect(findInFiles, &FindInFiles::pathChanged, m_widget, [this](const FilePath &path) {
connect(findInFiles, &FindInFiles::searchDirChanged, m_widget, [this](const FilePath &path) {
setEnabled(isGitDirectory(path));
});
connect(this, &SearchEngine::enabledChanged, m_widget, &QWidget::setEnabled);

View File

@@ -187,6 +187,7 @@ public:
QVector<SearchEngine *> m_searchEngines;
InternalEngine m_internalSearchEngine;
int m_currentSearchEngineIndex = -1;
FilePath m_searchDir;
};
} // namespace Internal
@@ -433,6 +434,19 @@ QList<QPair<QWidget *, QWidget *>> BaseFileFind::createPatternWidgets()
return {{filterLabel, d->m_filterCombo}, {exclusionLabel, d->m_exclusionCombo}};
}
void BaseFileFind::setSearchDir(const FilePath &dir)
{
if (dir == d->m_searchDir)
return;
d->m_searchDir = dir;
emit searchDirChanged(d->m_searchDir);
}
FilePath BaseFileFind::searchDir() const
{
return d->m_searchDir;
}
void BaseFileFind::writeCommonSettings(QSettings *settings)
{
const auto fromNativeSeparators = [](const QStringList &files) -> QStringList {

View File

@@ -102,7 +102,8 @@ public:
bool preserveCase = false);
protected:
virtual Utils::FilePath searchDir() const { return {}; }
void setSearchDir(const Utils::FilePath &dir);
Utils::FilePath searchDir() const;
virtual QString label() const = 0; // see Core::SearchResultWindow::startNewSearch
virtual QString toolTip() const = 0; // see Core::SearchResultWindow::startNewSearch,
// add %1 placeholder where the find flags should be put
@@ -120,6 +121,7 @@ protected:
signals:
void currentSearchEngineChanged();
void searchDirChanged(const Utils::FilePath &dir);
private:
virtual FileContainerProvider fileContainerProvider() const = 0;

View File

@@ -147,7 +147,8 @@ QWidget *FindInFiles::createConfigWidget()
m_directory->setExpectedKind(PathChooser::ExistingDirectory);
m_directory->setPromptDialogTitle(Tr::tr("Directory to Search"));
connect(m_directory.data(), &PathChooser::textChanged, this,
[this] { pathChanged(m_directory->filePath()); });
[this] { setSearchDir(m_directory->filePath()); });
connect(this, &BaseFileFind::searchDirChanged, m_directory, &PathChooser::setFilePath);
m_directory->setHistoryCompleter(QLatin1String(HistoryKey),
/*restoreLastItemFromHistory=*/ true);
if (!HistoryCompleter::historyExistsFor(QLatin1String(HistoryKey))) {
@@ -181,11 +182,6 @@ QWidget *FindInFiles::createConfigWidget()
return m_configWidget;
}
FilePath FindInFiles::searchDir() const
{
return m_directory->filePath();
}
void FindInFiles::writeSettings(QSettings *settings)
{
settings->beginGroup(QLatin1String("FindInFiles"));
@@ -200,27 +196,17 @@ void FindInFiles::readSettings(QSettings *settings)
settings->endGroup();
}
void FindInFiles::setDirectory(const FilePath &directory)
{
m_directory->setFilePath(directory);
}
void FindInFiles::setBaseDirectory(const FilePath &directory)
{
m_directory->setBaseDirectory(directory);
}
FilePath FindInFiles::directory() const
{
return m_directory->filePath();
}
void FindInFiles::findOnFileSystem(const QString &path)
{
QTC_ASSERT(m_instance, return);
const QFileInfo fi(path);
const QString folder = fi.isDir() ? fi.absoluteFilePath() : fi.absolutePath();
m_instance->setDirectory(FilePath::fromString(folder));
m_instance->setSearchDir(FilePath::fromString(folder));
Find::openFindDialog(m_instance);
}

View File

@@ -36,15 +36,10 @@ public:
void setDirectory(const Utils::FilePath &directory);
void setBaseDirectory(const Utils::FilePath &directory);
Utils::FilePath directory() const;
static void findOnFileSystem(const QString &path);
static FindInFiles *instance();
signals:
void pathChanged(const Utils::FilePath &directory);
protected:
Utils::FilePath searchDir() const override;
QString label() const override;
QString toolTip() const override;
void syncSearchEngineCombo(int selectedSearchEngineIndex) override;