From f7c7cd0ae93a584821854447393c8730963a0145 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Tue, 28 May 2024 15:05:06 +0200 Subject: [PATCH] Find: Avoid saving default values for advanced search Change-Id: I69454675c15a9eb92d0665ea6f88f0969a532eb8 Reviewed-by: David Schulz --- src/plugins/cppeditor/symbolsfindfilter.cpp | 6 ++-- .../projectexplorer/allprojectsfind.cpp | 7 +++-- .../projectexplorer/currentprojectfind.cpp | 7 +++-- .../filesinallprojectsfind.cpp | 10 +++--- src/plugins/texteditor/basefilefind.cpp | 31 ++++++++++++------- src/plugins/texteditor/basefilefind.h | 3 +- src/plugins/texteditor/findincurrentfile.cpp | 7 +++-- src/plugins/texteditor/findinfiles.cpp | 7 +++-- src/plugins/texteditor/findinopenfiles.cpp | 7 +++-- 9 files changed, 56 insertions(+), 29 deletions(-) diff --git a/src/plugins/cppeditor/symbolsfindfilter.cpp b/src/plugins/cppeditor/symbolsfindfilter.cpp index c1e50b1f10f..2888cf3604a 100644 --- a/src/plugins/cppeditor/symbolsfindfilter.cpp +++ b/src/plugins/cppeditor/symbolsfindfilter.cpp @@ -169,8 +169,10 @@ QWidget *SymbolsFindFilter::createConfigWidget() Store SymbolsFindFilter::save() const { Store s; - s.insert(SETTINGS_SYMBOLTYPES, int(m_symbolsToSearch)); - s.insert(SETTINGS_SEARCHSCOPE, int(m_scope)); + if (m_symbolsToSearch != SearchSymbols::AllTypes) + s.insert(SETTINGS_SYMBOLTYPES, int(m_symbolsToSearch)); + if (m_scope != SymbolSearcher::SearchProjectsOnly) + s.insert(SETTINGS_SEARCHSCOPE, int(m_scope)); return s; } diff --git a/src/plugins/projectexplorer/allprojectsfind.cpp b/src/plugins/projectexplorer/allprojectsfind.cpp index 509e40797ca..5d8f285b001 100644 --- a/src/plugins/projectexplorer/allprojectsfind.cpp +++ b/src/plugins/projectexplorer/allprojectsfind.cpp @@ -113,16 +113,19 @@ QWidget *AllProjectsFind::createConfigWidget() return m_configWidget; } +const char kDefaultInclusion[] = "*"; +const char kDefaultExclusion[] = ""; + Store AllProjectsFind::save() const { Store s; - writeCommonSettings(s); + writeCommonSettings(s, kDefaultInclusion, kDefaultExclusion); return s; } void AllProjectsFind::restore(const Utils::Store &s) { - readCommonSettings(s, "*", ""); + readCommonSettings(s, kDefaultInclusion, kDefaultExclusion); } QByteArray AllProjectsFind::settingsKey() const diff --git a/src/plugins/projectexplorer/currentprojectfind.cpp b/src/plugins/projectexplorer/currentprojectfind.cpp index 5cbafa46886..5ec53f3dd2c 100644 --- a/src/plugins/projectexplorer/currentprojectfind.cpp +++ b/src/plugins/projectexplorer/currentprojectfind.cpp @@ -118,16 +118,19 @@ void CurrentProjectFind::setupSearch(Core::SearchResult *search) }); } +const char kDefaultInclusion[] = "*"; +const char kDefaultExclusion[] = ""; + Store CurrentProjectFind::save() const { Store s; - writeCommonSettings(s); + writeCommonSettings(s, kDefaultInclusion, kDefaultExclusion); return s; } void CurrentProjectFind::restore(const Store &s) { - readCommonSettings(s, "*", ""); + readCommonSettings(s, kDefaultInclusion, kDefaultExclusion); } QByteArray CurrentProjectFind::settingsKey() const diff --git a/src/plugins/projectexplorer/filesinallprojectsfind.cpp b/src/plugins/projectexplorer/filesinallprojectsfind.cpp index 42f6f526929..62ac4e48392 100644 --- a/src/plugins/projectexplorer/filesinallprojectsfind.cpp +++ b/src/plugins/projectexplorer/filesinallprojectsfind.cpp @@ -29,20 +29,20 @@ QString FilesInAllProjectsFind::displayName() const } const char kSettingsKey[] = "FilesInAllProjectDirectories"; +const char kDefaultInclusion[] + = "CMakeLists.txt,*.cmake,*.pro,*.pri,*.qbs,*.cpp,*.h,*.mm,*.qml,*.md,*.txt,*.qdoc"; +const char kDefaultExclusion[] = "*/.git/*,*/.cvs/*,*/.svn/*,*.autosave,*/build/*"; Store FilesInAllProjectsFind::save() const { Store s; - writeCommonSettings(s); + writeCommonSettings(s, kDefaultInclusion, kDefaultExclusion); return s; } void FilesInAllProjectsFind::restore(const Utils::Store &s) { - readCommonSettings( - s, - "CMakeLists.txt,*.cmake,*.pro,*.pri,*.qbs,*.cpp,*.h,*.mm,*.qml,*.md,*.txt,*.qdoc", - "*/.git/*,*/.cvs/*,*/.svn/*,*.autosave,*/build/*"); + readCommonSettings(s, kDefaultInclusion, kDefaultExclusion); } QByteArray FilesInAllProjectsFind::settingsKey() const diff --git a/src/plugins/texteditor/basefilefind.cpp b/src/plugins/texteditor/basefilefind.cpp index 7076878b3e2..d18a75531b3 100644 --- a/src/plugins/texteditor/basefilefind.cpp +++ b/src/plugins/texteditor/basefilefind.cpp @@ -442,25 +442,34 @@ FilePath BaseFileFind::searchDir() const return d->m_searchDir; } -void BaseFileFind::writeCommonSettings(Store &s) const +void BaseFileFind::writeCommonSettings( + Store &s, const QString &defaultFilter, const QString &defaultExclusionFilter) const { const auto fromNativeSeparators = [](const QStringList &files) -> QStringList { return Utils::transform(files, &QDir::fromNativeSeparators); }; - s.insert("filters", fromNativeSeparators(d->m_filterStrings.stringList())); - if (d->m_filterCombo) - s.insert("currentFilter", QDir::fromNativeSeparators(d->m_filterCombo->currentText())); - s.insert("exclusionFilters", fromNativeSeparators(d->m_exclusionStrings.stringList())); - if (d->m_exclusionCombo) { - s.insert( - "currentExclusionFilter", - QDir::fromNativeSeparators(d->m_exclusionCombo->currentText())); - } + const QStringList filterStrings = fromNativeSeparators(d->m_filterStrings.stringList()); + if (filterStrings.size() != 1 || filterStrings.first() != defaultFilter) + s.insert("filters", filterStrings); + const QString currentFilter = d->m_filterCombo + ? QDir::fromNativeSeparators(d->m_filterCombo->currentText()) + : d->m_filterSetting; + if (currentFilter != defaultFilter) + s.insert("currentFilter", currentFilter); + const QStringList exclusionFilters = fromNativeSeparators(d->m_exclusionStrings.stringList()); + if (exclusionFilters.size() != 1 || exclusionFilters.first() != defaultExclusionFilter) + s.insert("exclusionFilters", exclusionFilters); + const QString currentExclusionFilter = d->m_exclusionCombo ? QDir::fromNativeSeparators( + d->m_exclusionCombo->currentText()) + : d->m_exclusionSetting; + if (currentExclusionFilter != defaultExclusionFilter) + s.insert("currentExclusionFilter", currentExclusionFilter); for (const SearchEngine *searchEngine : std::as_const(d->m_searchEngines)) searchEngine->writeSettings(s); - s.insert("currentSearchEngineIndex", d->m_currentSearchEngineIndex); + if (d->m_currentSearchEngineIndex != 0) + s.insert("currentSearchEngineIndex", d->m_currentSearchEngineIndex); } void BaseFileFind::readCommonSettings( diff --git a/src/plugins/texteditor/basefilefind.h b/src/plugins/texteditor/basefilefind.h index 2c0f6696500..de4286c31b6 100644 --- a/src/plugins/texteditor/basefilefind.h +++ b/src/plugins/texteditor/basefilefind.h @@ -108,7 +108,8 @@ protected: virtual QString toolTip() const = 0; // see Core::SearchResultWindow::startNewSearch, // add %1 placeholder where the find flags should be put - void writeCommonSettings(Utils::Store &s) const; + void writeCommonSettings( + Utils::Store &s, const QString &defaultFilter, const QString &defaultExclusionFilter) const; void readCommonSettings( const Utils::Store &s, const QString &defaultFilter, const QString &defaultExclusionFilter); QList> createPatternWidgets(); diff --git a/src/plugins/texteditor/findincurrentfile.cpp b/src/plugins/texteditor/findincurrentfile.cpp index f30fc732c81..45121f72d84 100644 --- a/src/plugins/texteditor/findincurrentfile.cpp +++ b/src/plugins/texteditor/findincurrentfile.cpp @@ -100,16 +100,19 @@ void FindInCurrentFile::handleFileChange(Core::IEditor *editor) } } +const char kDefaultInclusion[] = "*"; +const char kDefaultExclusion[] = ""; + Store FindInCurrentFile::save() const { Store s; - writeCommonSettings(s); + writeCommonSettings(s, kDefaultInclusion, kDefaultExclusion); return s; } void FindInCurrentFile::restore(const Store &s) { - readCommonSettings(s, "*", ""); + readCommonSettings(s, kDefaultInclusion, kDefaultExclusion); } QByteArray FindInCurrentFile::settingsKey() const diff --git a/src/plugins/texteditor/findinfiles.cpp b/src/plugins/texteditor/findinfiles.cpp index 1aea811b705..9dc68cd6532 100644 --- a/src/plugins/texteditor/findinfiles.cpp +++ b/src/plugins/texteditor/findinfiles.cpp @@ -188,16 +188,19 @@ QWidget *FindInFiles::createConfigWidget() return m_configWidget; } +const char kDefaultInclusion[] = "*.cpp,*.h"; +const char kDefaultExclusion[] = "*/.git/*,*/.cvs/*,*/.svn/*,*.autosave,*/build/*"; + Store FindInFiles::save() const { Store s; - writeCommonSettings(s); + writeCommonSettings(s, kDefaultInclusion, kDefaultExclusion); return s; } void FindInFiles::restore(const Utils::Store &s) { - readCommonSettings(s, "*.cpp,*.h", "*/.git/*,*/.cvs/*,*/.svn/*,*.autosave,*/build/*"); + readCommonSettings(s, kDefaultInclusion, kDefaultExclusion); } QByteArray FindInFiles::settingsKey() const diff --git a/src/plugins/texteditor/findinopenfiles.cpp b/src/plugins/texteditor/findinopenfiles.cpp index d98e189db11..deeb66e9f5f 100644 --- a/src/plugins/texteditor/findinopenfiles.cpp +++ b/src/plugins/texteditor/findinopenfiles.cpp @@ -93,16 +93,19 @@ bool FindInOpenFiles::isEnabled() const return Core::DocumentModel::entryCount() > 0; } +const char kDefaultInclusion[] = "*"; +const char kDefaultExclusion[] = ""; + Store FindInOpenFiles::save() const { Store s; - writeCommonSettings(s); + writeCommonSettings(s, kDefaultInclusion, kDefaultExclusion); return s; } void FindInOpenFiles::restore(const Store &s) { - readCommonSettings(s, "*", ""); + readCommonSettings(s, kDefaultInclusion, kDefaultExclusion); } QByteArray FindInOpenFiles::settingsKey() const