diff --git a/src/plugins/projectexplorer/allprojectsfind.cpp b/src/plugins/projectexplorer/allprojectsfind.cpp index 89ae73506ce8f84c1dbbd928e74e5ce1ef377221..8c437c626765714e1ad23d51fa553135a5244255 100644 --- a/src/plugins/projectexplorer/allprojectsfind.cpp +++ b/src/plugins/projectexplorer/allprojectsfind.cpp @@ -72,9 +72,14 @@ bool AllProjectsFind::isEnabled() const && m_plugin->session()->projects().count() > 0; } -Utils::FileIterator *AllProjectsFind::files() +QList<Project *> AllProjectsFind::projects() const { Q_ASSERT(m_plugin->session()); + return m_plugin->session()->projects(); +} + +Utils::FileIterator *AllProjectsFind::files() const +{ QList<QRegExp> filterRegs; QStringList nameFilters = fileNameFilters(); foreach (const QString &filter, nameFilters) { @@ -82,7 +87,7 @@ Utils::FileIterator *AllProjectsFind::files() } QStringList files; QStringList projectFiles; - foreach (const Project *project, m_plugin->session()->projects()) { + foreach (const Project *project, projects()) { projectFiles = project->files(Project::AllFiles); if (!filterRegs.isEmpty()) { foreach (const QString &file, projectFiles) { diff --git a/src/plugins/projectexplorer/allprojectsfind.h b/src/plugins/projectexplorer/allprojectsfind.h index d6484e5d60b6aae24e89c47fa02c7f0ffbce95c1..96c2dff6eac8c875f73311c6bd90689dc247e4fb 100644 --- a/src/plugins/projectexplorer/allprojectsfind.h +++ b/src/plugins/projectexplorer/allprojectsfind.h @@ -40,6 +40,7 @@ namespace ProjectExplorer { class ProjectExplorerPlugin; +class Project; namespace Internal { @@ -60,7 +61,8 @@ public: void readSettings(QSettings *settings); protected: - Utils::FileIterator *files(); + virtual QList<Project *> projects() const; + Utils::FileIterator *files() const; private: ProjectExplorerPlugin *m_plugin; diff --git a/src/plugins/projectexplorer/currentprojectfind.cpp b/src/plugins/projectexplorer/currentprojectfind.cpp index 2e929c5cbe5d218379e0eda9edd76b4023338b44..a3c64cb4ca3a1e1e80ae345798f1938c73e8cb3f 100644 --- a/src/plugins/projectexplorer/currentprojectfind.cpp +++ b/src/plugins/projectexplorer/currentprojectfind.cpp @@ -47,9 +47,8 @@ using namespace ProjectExplorer::Internal; using namespace TextEditor; CurrentProjectFind::CurrentProjectFind(ProjectExplorerPlugin *plugin, SearchResultWindow *resultWindow) - : BaseFileFind(resultWindow), - m_plugin(plugin), - m_configWidget(0) + : AllProjectsFind(plugin, resultWindow), + m_plugin(plugin) { connect(m_plugin, SIGNAL(currentProjectChanged(ProjectExplorer::Project*)), this, SIGNAL(changed())); @@ -70,50 +69,9 @@ bool CurrentProjectFind::isEnabled() const return m_plugin->currentProject() != 0 && BaseFileFind::isEnabled(); } -Utils::FileIterator *CurrentProjectFind::files() +QList<Project *> CurrentProjectFind::projects() const { - Project *project = m_plugin->currentProject(); - Q_ASSERT(project); - QList<QRegExp> filterRegs; - QStringList nameFilters = fileNameFilters(); - foreach (const QString &filter, nameFilters) { - filterRegs << QRegExp(filter, Qt::CaseInsensitive, QRegExp::Wildcard); - } - QStringList files; - if (!filterRegs.isEmpty()) { - foreach (const QString &file, project->files(Project::AllFiles)) { - foreach (const QRegExp ®, filterRegs) { - if (reg.exactMatch(file) || reg.exactMatch(QFileInfo(file).fileName())) { - files.append(file); - break; - } - } - } - } else { - files += project->files(Project::AllFiles); - } - files.removeDuplicates(); - return new Utils::FileIterator(files); -} - -QWidget *CurrentProjectFind::createConfigWidget() -{ - if (!m_configWidget) { - m_configWidget = new QWidget; - QGridLayout * const layout = new QGridLayout(m_configWidget); - layout->setMargin(0); - m_configWidget->setLayout(layout); - QLabel * const filePatternLabel = new QLabel(tr("File &pattern:")); - filePatternLabel->setMinimumWidth(80); - filePatternLabel->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred); - filePatternLabel->setAlignment(Qt::AlignRight | Qt::AlignVCenter); - QWidget *patternWidget = createPatternWidget(); - filePatternLabel->setBuddy(patternWidget); - layout->addWidget(filePatternLabel, 0, 0, Qt::AlignRight); - layout->addWidget(patternWidget, 0, 1); - m_configWidget->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); - } - return m_configWidget; + return QList<Project *>() << m_plugin->currentProject(); } void CurrentProjectFind::writeSettings(QSettings *settings) diff --git a/src/plugins/projectexplorer/currentprojectfind.h b/src/plugins/projectexplorer/currentprojectfind.h index 806618959540b01c5e82dc0b2f6e9ca151781bd0..dc0c5f7d5c372393915288deb856e03f6fd013d8 100644 --- a/src/plugins/projectexplorer/currentprojectfind.h +++ b/src/plugins/projectexplorer/currentprojectfind.h @@ -30,9 +30,10 @@ #ifndef CURRENTPROJECTFIND_H #define CURRENTPROJECTFIND_H +#include "allprojectsfind.h" + #include <find/ifindfilter.h> #include <find/searchresultwindow.h> -#include <texteditor/basefilefind.h> #include <QtCore/QPointer> @@ -43,10 +44,11 @@ QT_END_NAMESPACE namespace ProjectExplorer { class ProjectExplorerPlugin; +class Project; namespace Internal { -class CurrentProjectFind : public TextEditor::BaseFileFind +class CurrentProjectFind : public AllProjectsFind { Q_OBJECT @@ -58,16 +60,14 @@ public: bool isEnabled() const; - QWidget *createConfigWidget(); void writeSettings(QSettings *settings); void readSettings(QSettings *settings); protected: - Utils::FileIterator *files(); + QList<Project *> projects() const; private: ProjectExplorerPlugin *m_plugin; - QPointer<QWidget> m_configWidget; }; } // namespace Internal diff --git a/src/plugins/texteditor/basefilefind.h b/src/plugins/texteditor/basefilefind.h index b00c6a110c0e572d51f4b44a8ce1a974d4253b1b..83577aa60a9c76e39bf58564de2669c5335a744b 100644 --- a/src/plugins/texteditor/basefilefind.h +++ b/src/plugins/texteditor/basefilefind.h @@ -73,7 +73,7 @@ public: const QList<Find::SearchResultItem> &items); protected: - virtual Utils::FileIterator *files() = 0; + virtual Utils::FileIterator *files() const = 0; void writeCommonSettings(QSettings *settings); void readCommonSettings(QSettings *settings, const QString &defaultFilter); QWidget *createPatternWidget(); diff --git a/src/plugins/texteditor/findincurrentfile.cpp b/src/plugins/texteditor/findincurrentfile.cpp index 01c060133f9d8746453cd42afc1c2896848b252a..002d1ab145efdd6c6099a86957cbc29f98151a7d 100644 --- a/src/plugins/texteditor/findincurrentfile.cpp +++ b/src/plugins/texteditor/findincurrentfile.cpp @@ -62,7 +62,7 @@ QString FindInCurrentFile::displayName() const return tr("Current File"); } -Utils::FileIterator *FindInCurrentFile::files() +Utils::FileIterator *FindInCurrentFile::files() const { QStringList fileList; if (isEnabled()) diff --git a/src/plugins/texteditor/findincurrentfile.h b/src/plugins/texteditor/findincurrentfile.h index b42064d99c8c582cc5fb84fdae6e30e73af42215..c6010dc0e2b41738856ee2cfce8a966bb0e61c7c 100644 --- a/src/plugins/texteditor/findincurrentfile.h +++ b/src/plugins/texteditor/findincurrentfile.h @@ -61,7 +61,7 @@ public: void readSettings(QSettings *settings); protected: - Utils::FileIterator *files(); + Utils::FileIterator *files() const; private slots: void handleFileChange(Core::IEditor *editor); diff --git a/src/plugins/texteditor/findinfiles.cpp b/src/plugins/texteditor/findinfiles.cpp index b6b02ef31b0013efa6a7eb1dcb4cdbfb0e2316d2..43ac897abd78f07df66eee7ec85e85cc38127b83 100644 --- a/src/plugins/texteditor/findinfiles.cpp +++ b/src/plugins/texteditor/findinfiles.cpp @@ -63,7 +63,7 @@ void FindInFiles::findAll(const QString &txt, Find::FindFlags findFlags) BaseFileFind::findAll(txt, findFlags); } -Utils::FileIterator *FindInFiles::files() +Utils::FileIterator *FindInFiles::files() const { return new Utils::SubDirFileIterator(QStringList() << m_directory->currentText(), fileNameFilters()); diff --git a/src/plugins/texteditor/findinfiles.h b/src/plugins/texteditor/findinfiles.h index 569e5ce781d71568a6652c258f9611c37da025e3..125f9714cdaf562c8d1dc7dc96cf7bc7b7107978 100644 --- a/src/plugins/texteditor/findinfiles.h +++ b/src/plugins/texteditor/findinfiles.h @@ -59,7 +59,7 @@ public: void readSettings(QSettings *settings); protected: - Utils::FileIterator *files(); + Utils::FileIterator *files() const; private slots: void openFileBrowser();