From 7a28ed76b83f66e0b08290ac10bd40ebe92d1972 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Wed, 28 Jun 2023 23:55:16 +0200 Subject: BaseFileFind: Make searchDir() non-virtual Replace FindInFiles::pathChanged() with BaseFileFind::searchDirChanged(). Change-Id: I3cbe507968391fe45f513490424a7fe6fbbffee1 Reviewed-by: Qt CI Bot Reviewed-by: Reviewed-by: Orgad Shaneh --- src/plugins/texteditor/basefilefind.cpp | 14 ++++++++++++++ src/plugins/texteditor/basefilefind.h | 4 +++- src/plugins/texteditor/findinfiles.cpp | 20 +++----------------- src/plugins/texteditor/findinfiles.h | 5 ----- 4 files changed, 20 insertions(+), 23 deletions(-) (limited to 'src/plugins/texteditor') diff --git a/src/plugins/texteditor/basefilefind.cpp b/src/plugins/texteditor/basefilefind.cpp index 4372abba6b..49b506ff50 100644 --- a/src/plugins/texteditor/basefilefind.cpp +++ b/src/plugins/texteditor/basefilefind.cpp @@ -187,6 +187,7 @@ public: QVector m_searchEngines; InternalEngine m_internalSearchEngine; int m_currentSearchEngineIndex = -1; + FilePath m_searchDir; }; } // namespace Internal @@ -433,6 +434,19 @@ QList> 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 { diff --git a/src/plugins/texteditor/basefilefind.h b/src/plugins/texteditor/basefilefind.h index da740d15bc..c7d53f8033 100644 --- a/src/plugins/texteditor/basefilefind.h +++ b/src/plugins/texteditor/basefilefind.h @@ -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; diff --git a/src/plugins/texteditor/findinfiles.cpp b/src/plugins/texteditor/findinfiles.cpp index 89a4c0763b..29c769d2d3 100644 --- a/src/plugins/texteditor/findinfiles.cpp +++ b/src/plugins/texteditor/findinfiles.cpp @@ -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); } diff --git a/src/plugins/texteditor/findinfiles.h b/src/plugins/texteditor/findinfiles.h index d874e11038..5a1a2258a2 100644 --- a/src/plugins/texteditor/findinfiles.h +++ b/src/plugins/texteditor/findinfiles.h @@ -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; -- cgit v1.2.3