Skip to content
Snippets Groups Projects
Commit a0605523 authored by Francois Ferrand's avatar Francois Ferrand Committed by Daniel Teske
Browse files

Generic Project: improve filtering.


- 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: default avatarDaniel Teske <daniel.teske@nokia.com>
parent ccc55a61
No related branches found
No related tags found
No related merge requests found
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
#include "filesselectionwizardpage.h" #include "filesselectionwizardpage.h"
#include "genericprojectwizard.h" #include "genericprojectwizard.h"
#include "genericprojectconstants.h"
#include "selectablefilesmodel.h" #include "selectablefilesmodel.h"
#include <coreplugin/mimedatabase.h> #include <coreplugin/mimedatabase.h>
...@@ -56,7 +57,9 @@ FilesSelectionWizardPage::FilesSelectionWizardPage(GenericProjectWizardDialog *g ...@@ -56,7 +57,9 @@ FilesSelectionWizardPage::FilesSelectionWizardPage(GenericProjectWizardDialog *g
hbox->addWidget(m_filterLabel); hbox->addWidget(m_filterLabel);
m_filterLineEdit = new QLineEdit; 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(); m_filterLineEdit->hide();
hbox->addWidget(m_filterLineEdit); hbox->addWidget(m_filterLineEdit);
m_applyFilterButton = new QPushButton(tr("Apply Filter"), this); m_applyFilterButton = new QPushButton(tr("Apply Filter"), this);
...@@ -140,5 +143,7 @@ QStringList FilesSelectionWizardPage::selectedFiles() const ...@@ -140,5 +143,7 @@ QStringList FilesSelectionWizardPage::selectedFiles() const
void FilesSelectionWizardPage::applyFilter() 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);
} }
...@@ -56,6 +56,9 @@ const char *const GENERICPROJECT_ID = "GenericProjectManager.GenericProject"; ...@@ -56,6 +56,9 @@ const char *const GENERICPROJECT_ID = "GenericProjectManager.GenericProject";
const char *const EDITFILESACTION = "GenericProjectManager.EditFiles"; 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 Constants
} // namespace GenericProjectManager } // namespace GenericProjectManager
......
...@@ -31,8 +31,10 @@ ...@@ -31,8 +31,10 @@
**************************************************************************/ **************************************************************************/
#include "selectablefilesmodel.h" #include "selectablefilesmodel.h"
#include "genericprojectconstants.h"
#include <coreplugin/fileiconprovider.h> #include <coreplugin/fileiconprovider.h>
#include <coreplugin/icore.h>
#include <utils/QtConcurrentTools> #include <utils/QtConcurrentTools>
#include <QHBoxLayout> #include <QHBoxLayout>
...@@ -119,6 +121,8 @@ bool SelectableFilesModel::filter(Tree *t) ...@@ -119,6 +121,8 @@ bool SelectableFilesModel::filter(Tree *t)
{ {
if (t->isDir) if (t->isDir)
return false; return false;
if (m_files.contains(t->fullPath))
return false;
foreach (const Glob &g, m_filter) { foreach (const Glob &g, m_filter) {
if (g.mode == Glob::EXACT) { if (g.mode == Glob::EXACT) {
if (g.matchString == t->name) if (g.matchString == t->name)
...@@ -521,7 +525,9 @@ SelectableFilesDialog::SelectableFilesDialog(const QString &path, const QStringL ...@@ -521,7 +525,9 @@ SelectableFilesDialog::SelectableFilesDialog(const QString &path, const QStringL
hbox->addWidget(m_filterLabel); hbox->addWidget(m_filterLabel);
m_filterLineEdit = new QLineEdit(this); 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(); m_filterLineEdit->hide();
hbox->addWidget(m_filterLineEdit); hbox->addWidget(m_filterLineEdit);
m_applyFilterButton = new QPushButton(tr("Apply Filter"), this); m_applyFilterButton = new QPushButton(tr("Apply Filter"), this);
...@@ -611,5 +617,7 @@ QStringList SelectableFilesDialog::selectedFiles() const ...@@ -611,5 +617,7 @@ QStringList SelectableFilesDialog::selectedFiles() const
void SelectableFilesDialog::applyFilter() 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);
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment