aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/texteditor/basefilefind.cpp
diff options
context:
space:
mode:
authorOrgad Shaneh <orgad.shaneh@audiocodes.com>2016-01-28 23:37:10 +0200
committerOrgad Shaneh <orgads@gmail.com>2016-02-04 11:58:29 +0000
commit558c08e2c5a5d2d22ae5ee9bffdd138e90668214 (patch)
tree3a65470a6c2ea473d7f653f96a4b5a8eb461d25b /src/plugins/texteditor/basefilefind.cpp
parent1b9b1541d376c5e75dada0d266c2b5b7f3e5fd30 (diff)
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.cpp25
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 &parameters)
{
+ if (d->m_extension && d->m_extension->isEnabled(parameters))
+ return d->m_extension->executeSearch(parameters);
+
auto func = parameters.flags & FindRegularExpression
? Utils::findInFilesRegExp
: Utils::findInFiles;