diff options
author | Orgad Shaneh <orgad.shaneh@audiocodes.com> | 2016-01-28 23:37:10 +0200 |
---|---|---|
committer | Orgad Shaneh <orgads@gmail.com> | 2016-02-04 11:58:29 +0000 |
commit | 558c08e2c5a5d2d22ae5ee9bffdd138e90668214 (patch) | |
tree | 3a65470a6c2ea473d7f653f96a4b5a8eb461d25b /src/plugins/texteditor/basefilefind.cpp | |
parent | 1b9b1541d376c5e75dada0d266c2b5b7f3e5fd30 (diff) | |
download | qt-creator-558c08e2c5a5d2d22ae5ee9bffdd138e90668214.tar.gz |
Git: Hook grep into Find In File System dialog
Change-Id: I0fc77ad61c8874a21afd5b5135df4d30fa795a8e
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
Diffstat (limited to 'src/plugins/texteditor/basefilefind.cpp')
-rw-r--r-- | src/plugins/texteditor/basefilefind.cpp | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/src/plugins/texteditor/basefilefind.cpp b/src/plugins/texteditor/basefilefind.cpp index b5077262ed..bb8c9f2f1c 100644 --- a/src/plugins/texteditor/basefilefind.cpp +++ b/src/plugins/texteditor/basefilefind.cpp @@ -68,15 +68,14 @@ public: class BaseFileFindPrivate { public: - BaseFileFindPrivate() : m_resultLabel(0), m_filterCombo(0) {} - QMap<QFutureWatcher<FileSearchResultList> *, QPointer<SearchResult> > m_watchers; QPointer<IFindSupport> m_currentFindSupport; - QLabel *m_resultLabel; + QLabel *m_resultLabel = 0; QStringListModel m_filterStrings; QString m_filterSetting; QPointer<QComboBox> m_filterCombo; + QPointer<FileFindExtension> m_extension; }; } // namespace Internal @@ -130,6 +129,11 @@ QStringList BaseFileFind::fileNameFilters() const return filters; } +FileFindExtension *BaseFileFind::extension() const +{ + return d->m_extension.data(); +} + void BaseFileFind::runNewSearch(const QString &txt, FindFlags findFlags, SearchResultWindow::SearchMode searchMode) { @@ -147,6 +151,8 @@ void BaseFileFind::runNewSearch(const QString &txt, FindFlags findFlags, parameters.flags = findFlags; parameters.nameFilters = fileNameFilters(); parameters.additionalParameters = additionalParameters(); + if (d->m_extension) + parameters.extensionParameters = d->m_extension->parameters(); search->setUserData(qVariantFromValue(parameters)); connect(search, &SearchResult::activated, this, &BaseFileFind::openEditor); if (searchMode == SearchResultWindow::SearchAndReplace) @@ -192,6 +198,12 @@ void BaseFileFind::replaceAll(const QString &txt, FindFlags findFlags) runNewSearch(txt, findFlags, SearchResultWindow::SearchAndReplace); } +void BaseFileFind::setFindExtension(FileFindExtension *extension) +{ + QTC_ASSERT(!d->m_extension, return); + d->m_extension = extension; +} + void BaseFileFind::doReplace(const QString &text, const QList<SearchResultItem> &items, bool preserveCase) @@ -263,6 +275,8 @@ void BaseFileFind::writeCommonSettings(QSettings *settings) settings->setValue(QLatin1String("filters"), d->m_filterStrings.stringList()); if (d->m_filterCombo) settings->setValue(QLatin1String("currentFilter"), d->m_filterCombo->currentText()); + if (d->m_extension) + d->m_extension->writeSettings(settings); } void BaseFileFind::readCommonSettings(QSettings *settings, const QString &defaultFilter) @@ -276,6 +290,8 @@ void BaseFileFind::readCommonSettings(QSettings *settings, const QString &defaul d->m_filterStrings.setStringList(filters); if (d->m_filterCombo) syncComboWithSettings(d->m_filterCombo, d->m_filterSetting); + if (d->m_extension) + d->m_extension->readSettings(settings); } void BaseFileFind::syncComboWithSettings(QComboBox *combo, const QString &setting) @@ -425,6 +441,9 @@ QVariant BaseFileFind::getAdditionalParameters(SearchResult *search) QFuture<FileSearchResultList> BaseFileFind::executeSearch(const FileFindParameters ¶meters) { + if (d->m_extension && d->m_extension->isEnabled(parameters)) + return d->m_extension->executeSearch(parameters); + auto func = parameters.flags & FindRegularExpression ? Utils::findInFilesRegExp : Utils::findInFiles; |