From aa14e396f03232ce97a723aaf18ab89f7dfad698 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Mon, 18 Feb 2019 15:05:13 +0100 Subject: [PATCH] BaseFileFind: Coding style Use braced initializer lists, range-based for, more const, more auto, more unique_ptr, avoid sender(). Change-Id: Id43c81c498247a6d3722fab1937c83d80e701ec2 Reviewed-by: Xing Xiong Reviewed-by: Marco Bubke --- src/plugins/texteditor/basefilefind.cpp | 74 +++++++++++++------------ src/plugins/texteditor/basefilefind.h | 7 ++- 2 files changed, 42 insertions(+), 39 deletions(-) diff --git a/src/plugins/texteditor/basefilefind.cpp b/src/plugins/texteditor/basefilefind.cpp index 39e85f50311..a910de019c0 100644 --- a/src/plugins/texteditor/basefilefind.cpp +++ b/src/plugins/texteditor/basefilefind.cpp @@ -65,18 +65,17 @@ public: InternalEngine() : m_widget(new QWidget) {} ~InternalEngine() override { delete m_widget;} QString title() const override { return TextEditor::SearchEngine::tr("Internal"); } - QString toolTip() const override { return QString(); } + QString toolTip() const override { return {}; } QWidget *widget() const override { return m_widget; } - QVariant parameters() const override { return QVariant(); } + QVariant parameters() const override { return {}; } void readSettings(QSettings * /*settings*/) override {} void writeSettings(QSettings * /*settings*/) const override {} QFuture executeSearch( const TextEditor::FileFindParameters ¶meters, BaseFileFind *baseFileFind) override { - auto func = parameters.flags & FindRegularExpression - ? Utils::findInFilesRegExp - : Utils::findInFiles; + const auto func = parameters.flags & FindRegularExpression ? Utils::findInFilesRegExp + : Utils::findInFiles; return func(parameters.text, baseFileFind->files(parameters.nameFilters, parameters.exclusionFilters, @@ -112,7 +111,8 @@ public: class BaseFileFindPrivate { public: - ~BaseFileFindPrivate() { delete m_internalSearchEngine; } + BaseFileFindPrivate() : m_internalSearchEngine(std::make_unique()) {} + QPointer m_currentFindSupport; QLabel *m_resultLabel = nullptr; @@ -125,7 +125,7 @@ public: QPointer m_filterCombo; QPointer m_exclusionCombo; QVector m_searchEngines; - SearchEngine *m_internalSearchEngine; + std::unique_ptr m_internalSearchEngine; int m_currentSearchEngineIndex = -1; }; @@ -182,8 +182,7 @@ void SearchEngine::setEnabled(bool enabled) BaseFileFind::BaseFileFind() : d(new BaseFileFindPrivate) { - d->m_internalSearchEngine = new InternalEngine; - addSearchEngine(d->m_internalSearchEngine); + addSearchEngine(d->m_internalSearchEngine.get()); } BaseFileFind::~BaseFileFind() @@ -200,14 +199,14 @@ QStringList BaseFileFind::fileNameFilters() const { if (d->m_filterCombo) return splitFilterUiText(d->m_filterCombo->currentText()); - return QStringList(); + return {}; } QStringList BaseFileFind::fileExclusionFilters() const { if (d->m_exclusionCombo) return splitFilterUiText(d->m_exclusionCombo->currentText()); - return QStringList(); + return {}; } SearchEngine *BaseFileFind::currentSearchEngine() const @@ -233,11 +232,11 @@ void BaseFileFind::setCurrentSearchEngine(int index) static void displayResult(QFutureWatcher *watcher, SearchResult *search, int index) { - FileSearchResultList results = watcher->resultAt(index); + const FileSearchResultList results = watcher->resultAt(index); QList items; - foreach (const FileSearchResult &result, results) { + for (const FileSearchResult &result : results) { SearchResultItem item; - item.path = QStringList() << QDir::toNativeSeparators(result.fileName); + item.path = QStringList(QDir::toNativeSeparators(result.fileName)); item.mainRange.begin.line = result.lineNumber; item.mainRange.begin.column = result.matchStart; item.mainRange.end = item.mainRange.begin; @@ -258,7 +257,7 @@ void BaseFileFind::runNewSearch(const QString &txt, FindFlags findFlags, updateComboEntries(d->m_filterCombo, true); if (d->m_exclusionCombo) updateComboEntries(d->m_exclusionCombo, true); - QString tooltip = toolTip(); + const QString tooltip = toolTip(); SearchResult *search = SearchResultWindow::instance()->startNewSearch( label(), @@ -276,20 +275,26 @@ void BaseFileFind::runNewSearch(const QString &txt, FindFlags findFlags, parameters.searchEngineParameters = currentSearchEngine()->parameters(); parameters.searchEngineIndex = d->m_currentSearchEngineIndex; search->setUserData(qVariantFromValue(parameters)); - connect(search, &SearchResult::activated, this, &BaseFileFind::openEditor); + connect(search, &SearchResult::activated, this, [this, search](const SearchResultItem &item) { + openEditor(search, item); + }); if (searchMode == SearchResultWindow::SearchAndReplace) connect(search, &SearchResult::replaceButtonClicked, this, &BaseFileFind::doReplace); connect(search, &SearchResult::visibilityChanged, this, &BaseFileFind::hideHighlightAll); - connect(search, &SearchResult::searchAgainRequested, this, &BaseFileFind::searchAgain); + connect(search, &SearchResult::searchAgainRequested, this, [this, search] { + searchAgain(search); + }); connect(this, &BaseFileFind::enabledChanged, search, &SearchResult::requestEnabledCheck); - connect(search, &SearchResult::requestEnabledCheck, this, &BaseFileFind::recheckEnabled); + connect(search, &SearchResult::requestEnabledCheck, this, [this, search] { + recheckEnabled(search); + }); runSearch(search); } void BaseFileFind::runSearch(SearchResult *search) { - FileFindParameters parameters = search->userData().value(); + const FileFindParameters parameters = search->userData().value(); auto label = new CountingLabel; connect(search, &SearchResult::countChanged, label, &CountingLabel::updateCount); auto statusLabel = new CountingLabel; @@ -341,7 +346,7 @@ void BaseFileFind::doReplace(const QString &text, const QList &items, bool preserveCase) { - QStringList files = replaceAll(text, items, preserveCase); + const QStringList files = replaceAll(text, items, preserveCase); if (!files.isEmpty()) { Utils::FadingIndicator::showText(ICore::mainWindow(), tr("%n occurrences replaced.", nullptr, items.size()), @@ -391,7 +396,7 @@ QList> BaseFileFind::createPatternWidgets() void BaseFileFind::writeCommonSettings(QSettings *settings) { - std::function fromNativeSeparators = [](const QStringList &files) { + const auto fromNativeSeparators = [](const QStringList &files) -> QStringList { return Utils::transform(files, &QDir::fromNativeSeparators); }; @@ -404,7 +409,7 @@ void BaseFileFind::writeCommonSettings(QSettings *settings) settings->setValue("currentExclusionFilter", QDir::fromNativeSeparators(d->m_exclusionCombo->currentText())); - foreach (SearchEngine *searchEngine, d->m_searchEngines) + for (const SearchEngine *searchEngine : qAsConst(d->m_searchEngines)) searchEngine->writeSettings(settings); settings->setValue("currentSearchEngineIndex", d->m_currentSearchEngineIndex); } @@ -412,13 +417,13 @@ void BaseFileFind::writeCommonSettings(QSettings *settings) void BaseFileFind::readCommonSettings(QSettings *settings, const QString &defaultFilter, const QString &defaultExclusionFilter) { - std::function toNativeSeparators = [](const QStringList &files) { + const auto toNativeSeparators = [](const QStringList &files) -> QStringList { return Utils::transform(files, &QDir::toNativeSeparators); }; - QStringList filters = settings->value("filters").toStringList(); - if (filters.isEmpty()) - filters << defaultFilter; + const QStringList filterSetting = settings->value("filters").toStringList(); + const QStringList filters = filterSetting.isEmpty() ? QStringList(defaultFilter) + : filterSetting; const QVariant currentFilter = settings->value("currentFilter"); d->m_filterSetting = currentFilter.isValid() ? currentFilter.toString() : filters.first(); @@ -436,16 +441,15 @@ void BaseFileFind::readCommonSettings(QSettings *settings, const QString &defaul if (d->m_exclusionCombo) syncComboWithSettings(d->m_exclusionCombo, d->m_exclusionSetting); - foreach (SearchEngine* searchEngine, d->m_searchEngines) + for (SearchEngine* searchEngine : qAsConst(d->m_searchEngines)) searchEngine->readSettings(settings); const int currentSearchEngineIndex = settings->value("currentSearchEngineIndex", 0).toInt(); syncSearchEngineCombo(currentSearchEngineIndex); } -void BaseFileFind::openEditor(const SearchResultItem &item) +void BaseFileFind::openEditor(SearchResult *result, const SearchResultItem &item) { - auto result = qobject_cast(sender()); - FileFindParameters parameters = result->userData().value(); + const FileFindParameters parameters = result->userData().value(); IEditor *openedEditor = d->m_searchEngines[parameters.searchEngineIndex]->openEditor(item, parameters); if (!openedEditor) @@ -468,16 +472,14 @@ void BaseFileFind::hideHighlightAll(bool visible) d->m_currentFindSupport->clearHighlights(); } -void BaseFileFind::searchAgain() +void BaseFileFind::searchAgain(SearchResult *search) { - auto search = qobject_cast(sender()); search->restart(); runSearch(search); } -void BaseFileFind::recheckEnabled() +void BaseFileFind::recheckEnabled(SearchResult *search) { - auto search = qobject_cast(sender()); if (!search) return; search->setSearchAgainEnabled(isEnabled()); @@ -493,7 +495,7 @@ QStringList BaseFileFind::replaceAll(const QString &text, RefactoringChanges refactoring; QHash > changes; - foreach (const SearchResultItem &item, items) + for (const SearchResultItem &item : items) changes[QDir::fromNativeSeparators(item.path.first())].append(item); // Checking for files without write permissions @@ -523,7 +525,7 @@ QStringList BaseFileFind::replaceAll(const QString &text, ChangeSet changeSet; RefactoringFilePtr file = refactoring.file(fileName); QSet > processed; - foreach (const SearchResultItem &item, changeItems) { + for (const SearchResultItem &item : changeItems) { const QPair &p = qMakePair(item.mainRange.begin.line, item.mainRange.begin.column); if (processed.contains(p)) diff --git a/src/plugins/texteditor/basefilefind.h b/src/plugins/texteditor/basefilefind.h index 32595b0398b..1297e1a2ace 100644 --- a/src/plugins/texteditor/basefilefind.h +++ b/src/plugins/texteditor/basefilefind.h @@ -67,6 +67,7 @@ class TEXTEDITOR_EXPORT SearchEngine : public QObject public: SearchEngine(QObject *parent = nullptr); ~SearchEngine() override; + virtual QString title() const = 0; virtual QString toolTip() const = 0; // add %1 placeholder where the find flags should be put virtual QWidget *widget() const = 0; @@ -132,13 +133,13 @@ signals: void currentSearchEngineChanged(); private: - void openEditor(const Core::SearchResultItem &item); + void openEditor(Core::SearchResult *result, const Core::SearchResultItem &item); void doReplace(const QString &txt, const QList &items, bool preserveCase); void hideHighlightAll(bool visible); - void searchAgain(); - void recheckEnabled(); + void searchAgain(Core::SearchResult *search); + void recheckEnabled(Core::SearchResult *search); void runNewSearch(const QString &txt, Core::FindFlags findFlags, Core::SearchResultWindow::SearchMode searchMode);