From a0605523aee9d3e2fd88f079b189f5922d99cd2b Mon Sep 17 00:00:00 2001 From: Francois Ferrand <thetypz@gmail.com> Date: Wed, 14 Mar 2012 09:20:05 +0100 Subject: [PATCH] Generic Project: improve filtering. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - When applying filter, always show items which were already in project. - Store the filter string in settings. Change-Id: I5b726ed0bde49d8ac48d4f2f4589b194fc557a95 Reviewed-by: Thorbjørn Lindeijer Reviewed-by: Daniel Teske <daniel.teske@nokia.com> --- .../filesselectionwizardpage.cpp | 9 +++++++-- .../genericprojectmanager/genericprojectconstants.h | 3 +++ .../genericprojectmanager/selectablefilesmodel.cpp | 12 ++++++++++-- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/plugins/genericprojectmanager/filesselectionwizardpage.cpp b/src/plugins/genericprojectmanager/filesselectionwizardpage.cpp index f66169ffd5e..82fed7fdb1d 100644 --- a/src/plugins/genericprojectmanager/filesselectionwizardpage.cpp +++ b/src/plugins/genericprojectmanager/filesselectionwizardpage.cpp @@ -33,6 +33,7 @@ #include "filesselectionwizardpage.h" #include "genericprojectwizard.h" +#include "genericprojectconstants.h" #include "selectablefilesmodel.h" #include <coreplugin/mimedatabase.h> @@ -56,7 +57,9 @@ FilesSelectionWizardPage::FilesSelectionWizardPage(GenericProjectWizardDialog *g hbox->addWidget(m_filterLabel); m_filterLineEdit = new QLineEdit; - m_filterLineEdit->setText("Makefile*; *.o; *.obj; *~; *.files; *.config; *.creator; *.user; *.includes"); + const QString filter = Core::ICore::settings()->value(Constants::FILEFILTER_SETTING, + Constants::FILEFILTER_DEFAULT).toString(); + m_filterLineEdit->setText(filter); m_filterLineEdit->hide(); hbox->addWidget(m_filterLineEdit); m_applyFilterButton = new QPushButton(tr("Apply Filter"), this); @@ -140,5 +143,7 @@ QStringList FilesSelectionWizardPage::selectedFiles() const void FilesSelectionWizardPage::applyFilter() { - m_model->applyFilter(m_filterLineEdit->text()); + const QString filter = m_filterLineEdit->text(); + Core::ICore::settings()->setValue(Constants::FILEFILTER_SETTING, filter); + m_model->applyFilter(filter); } diff --git a/src/plugins/genericprojectmanager/genericprojectconstants.h b/src/plugins/genericprojectmanager/genericprojectconstants.h index c4fa1ebde4e..0c5560ecf49 100644 --- a/src/plugins/genericprojectmanager/genericprojectconstants.h +++ b/src/plugins/genericprojectmanager/genericprojectconstants.h @@ -56,6 +56,9 @@ const char *const GENERICPROJECT_ID = "GenericProjectManager.GenericProject"; const char *const EDITFILESACTION = "GenericProjectManager.EditFiles"; +const char *const FILEFILTER_SETTING = "GenericProject/FileFilter"; +const char *const FILEFILTER_DEFAULT = "Makefile*; *.o; *.obj; *~; *.files; *.config; *.creator; *.user; *.includes"; + } // namespace Constants } // namespace GenericProjectManager diff --git a/src/plugins/genericprojectmanager/selectablefilesmodel.cpp b/src/plugins/genericprojectmanager/selectablefilesmodel.cpp index 26f2d7e23b9..8246ea4a468 100644 --- a/src/plugins/genericprojectmanager/selectablefilesmodel.cpp +++ b/src/plugins/genericprojectmanager/selectablefilesmodel.cpp @@ -31,8 +31,10 @@ **************************************************************************/ #include "selectablefilesmodel.h" +#include "genericprojectconstants.h" #include <coreplugin/fileiconprovider.h> +#include <coreplugin/icore.h> #include <utils/QtConcurrentTools> #include <QHBoxLayout> @@ -119,6 +121,8 @@ bool SelectableFilesModel::filter(Tree *t) { if (t->isDir) return false; + if (m_files.contains(t->fullPath)) + return false; foreach (const Glob &g, m_filter) { if (g.mode == Glob::EXACT) { if (g.matchString == t->name) @@ -521,7 +525,9 @@ SelectableFilesDialog::SelectableFilesDialog(const QString &path, const QStringL hbox->addWidget(m_filterLabel); m_filterLineEdit = new QLineEdit(this); - m_filterLineEdit->setText("Makefile*; *.o; *.obj; *~; *.files; *.config; *.creator; *.user; *.includes"); + const QString filter = Core::ICore::settings()->value(Constants::FILEFILTER_SETTING, + Constants::FILEFILTER_DEFAULT).toString(); + m_filterLineEdit->setText(filter); m_filterLineEdit->hide(); hbox->addWidget(m_filterLineEdit); m_applyFilterButton = new QPushButton(tr("Apply Filter"), this); @@ -611,5 +617,7 @@ QStringList SelectableFilesDialog::selectedFiles() const void SelectableFilesDialog::applyFilter() { - m_selectableFilesModel->applyFilter(m_filterLineEdit->text()); + const QString filter = m_filterLineEdit->text(); + Core::ICore::settings()->setValue(Constants::FILEFILTER_SETTING, filter); + m_selectableFilesModel->applyFilter(filter); } -- GitLab