Find: Avoid saving default values for advanced search

Change-Id: I69454675c15a9eb92d0665ea6f88f0969a532eb8
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Eike Ziller
2024-05-28 15:05:06 +02:00
parent f870e7ffdf
commit f7c7cd0ae9
9 changed files with 56 additions and 29 deletions

View File

@@ -169,8 +169,10 @@ QWidget *SymbolsFindFilter::createConfigWidget()
Store SymbolsFindFilter::save() const Store SymbolsFindFilter::save() const
{ {
Store s; Store s;
s.insert(SETTINGS_SYMBOLTYPES, int(m_symbolsToSearch)); if (m_symbolsToSearch != SearchSymbols::AllTypes)
s.insert(SETTINGS_SEARCHSCOPE, int(m_scope)); s.insert(SETTINGS_SYMBOLTYPES, int(m_symbolsToSearch));
if (m_scope != SymbolSearcher::SearchProjectsOnly)
s.insert(SETTINGS_SEARCHSCOPE, int(m_scope));
return s; return s;
} }

View File

@@ -113,16 +113,19 @@ QWidget *AllProjectsFind::createConfigWidget()
return m_configWidget; return m_configWidget;
} }
const char kDefaultInclusion[] = "*";
const char kDefaultExclusion[] = "";
Store AllProjectsFind::save() const Store AllProjectsFind::save() const
{ {
Store s; Store s;
writeCommonSettings(s); writeCommonSettings(s, kDefaultInclusion, kDefaultExclusion);
return s; return s;
} }
void AllProjectsFind::restore(const Utils::Store &s) void AllProjectsFind::restore(const Utils::Store &s)
{ {
readCommonSettings(s, "*", ""); readCommonSettings(s, kDefaultInclusion, kDefaultExclusion);
} }
QByteArray AllProjectsFind::settingsKey() const QByteArray AllProjectsFind::settingsKey() const

View File

@@ -118,16 +118,19 @@ void CurrentProjectFind::setupSearch(Core::SearchResult *search)
}); });
} }
const char kDefaultInclusion[] = "*";
const char kDefaultExclusion[] = "";
Store CurrentProjectFind::save() const Store CurrentProjectFind::save() const
{ {
Store s; Store s;
writeCommonSettings(s); writeCommonSettings(s, kDefaultInclusion, kDefaultExclusion);
return s; return s;
} }
void CurrentProjectFind::restore(const Store &s) void CurrentProjectFind::restore(const Store &s)
{ {
readCommonSettings(s, "*", ""); readCommonSettings(s, kDefaultInclusion, kDefaultExclusion);
} }
QByteArray CurrentProjectFind::settingsKey() const QByteArray CurrentProjectFind::settingsKey() const

View File

@@ -29,20 +29,20 @@ QString FilesInAllProjectsFind::displayName() const
} }
const char kSettingsKey[] = "FilesInAllProjectDirectories"; 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 FilesInAllProjectsFind::save() const
{ {
Store s; Store s;
writeCommonSettings(s); writeCommonSettings(s, kDefaultInclusion, kDefaultExclusion);
return s; return s;
} }
void FilesInAllProjectsFind::restore(const Utils::Store &s) void FilesInAllProjectsFind::restore(const Utils::Store &s)
{ {
readCommonSettings( readCommonSettings(s, kDefaultInclusion, kDefaultExclusion);
s,
"CMakeLists.txt,*.cmake,*.pro,*.pri,*.qbs,*.cpp,*.h,*.mm,*.qml,*.md,*.txt,*.qdoc",
"*/.git/*,*/.cvs/*,*/.svn/*,*.autosave,*/build/*");
} }
QByteArray FilesInAllProjectsFind::settingsKey() const QByteArray FilesInAllProjectsFind::settingsKey() const

View File

@@ -442,25 +442,34 @@ FilePath BaseFileFind::searchDir() const
return d->m_searchDir; 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 { const auto fromNativeSeparators = [](const QStringList &files) -> QStringList {
return Utils::transform(files, &QDir::fromNativeSeparators); return Utils::transform(files, &QDir::fromNativeSeparators);
}; };
s.insert("filters", fromNativeSeparators(d->m_filterStrings.stringList())); const QStringList filterStrings = fromNativeSeparators(d->m_filterStrings.stringList());
if (d->m_filterCombo) if (filterStrings.size() != 1 || filterStrings.first() != defaultFilter)
s.insert("currentFilter", QDir::fromNativeSeparators(d->m_filterCombo->currentText())); s.insert("filters", filterStrings);
s.insert("exclusionFilters", fromNativeSeparators(d->m_exclusionStrings.stringList())); const QString currentFilter = d->m_filterCombo
if (d->m_exclusionCombo) { ? QDir::fromNativeSeparators(d->m_filterCombo->currentText())
s.insert( : d->m_filterSetting;
"currentExclusionFilter", if (currentFilter != defaultFilter)
QDir::fromNativeSeparators(d->m_exclusionCombo->currentText())); 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)) for (const SearchEngine *searchEngine : std::as_const(d->m_searchEngines))
searchEngine->writeSettings(s); searchEngine->writeSettings(s);
s.insert("currentSearchEngineIndex", d->m_currentSearchEngineIndex); if (d->m_currentSearchEngineIndex != 0)
s.insert("currentSearchEngineIndex", d->m_currentSearchEngineIndex);
} }
void BaseFileFind::readCommonSettings( void BaseFileFind::readCommonSettings(

View File

@@ -108,7 +108,8 @@ protected:
virtual QString toolTip() 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 // 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( void readCommonSettings(
const Utils::Store &s, const QString &defaultFilter, const QString &defaultExclusionFilter); const Utils::Store &s, const QString &defaultFilter, const QString &defaultExclusionFilter);
QList<QPair<QWidget *, QWidget *>> createPatternWidgets(); QList<QPair<QWidget *, QWidget *>> createPatternWidgets();

View File

@@ -100,16 +100,19 @@ void FindInCurrentFile::handleFileChange(Core::IEditor *editor)
} }
} }
const char kDefaultInclusion[] = "*";
const char kDefaultExclusion[] = "";
Store FindInCurrentFile::save() const Store FindInCurrentFile::save() const
{ {
Store s; Store s;
writeCommonSettings(s); writeCommonSettings(s, kDefaultInclusion, kDefaultExclusion);
return s; return s;
} }
void FindInCurrentFile::restore(const Store &s) void FindInCurrentFile::restore(const Store &s)
{ {
readCommonSettings(s, "*", ""); readCommonSettings(s, kDefaultInclusion, kDefaultExclusion);
} }
QByteArray FindInCurrentFile::settingsKey() const QByteArray FindInCurrentFile::settingsKey() const

View File

@@ -188,16 +188,19 @@ QWidget *FindInFiles::createConfigWidget()
return m_configWidget; return m_configWidget;
} }
const char kDefaultInclusion[] = "*.cpp,*.h";
const char kDefaultExclusion[] = "*/.git/*,*/.cvs/*,*/.svn/*,*.autosave,*/build/*";
Store FindInFiles::save() const Store FindInFiles::save() const
{ {
Store s; Store s;
writeCommonSettings(s); writeCommonSettings(s, kDefaultInclusion, kDefaultExclusion);
return s; return s;
} }
void FindInFiles::restore(const Utils::Store &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 QByteArray FindInFiles::settingsKey() const

View File

@@ -93,16 +93,19 @@ bool FindInOpenFiles::isEnabled() const
return Core::DocumentModel::entryCount() > 0; return Core::DocumentModel::entryCount() > 0;
} }
const char kDefaultInclusion[] = "*";
const char kDefaultExclusion[] = "";
Store FindInOpenFiles::save() const Store FindInOpenFiles::save() const
{ {
Store s; Store s;
writeCommonSettings(s); writeCommonSettings(s, kDefaultInclusion, kDefaultExclusion);
return s; return s;
} }
void FindInOpenFiles::restore(const Store &s) void FindInOpenFiles::restore(const Store &s)
{ {
readCommonSettings(s, "*", ""); readCommonSettings(s, kDefaultInclusion, kDefaultExclusion);
} }
QByteArray FindInOpenFiles::settingsKey() const QByteArray FindInOpenFiles::settingsKey() const