diff options
6 files changed, 31 insertions, 10 deletions
diff --git a/src/plugins/genericprojectmanager/filesselectionwizardpage.cpp b/src/plugins/genericprojectmanager/filesselectionwizardpage.cpp index 9e2c92f7d5..0f82ba8d6e 100644 --- a/src/plugins/genericprojectmanager/filesselectionwizardpage.cpp +++ b/src/plugins/genericprojectmanager/filesselectionwizardpage.cpp @@ -29,6 +29,7 @@ #include "genericprojectconstants.h" #include <coreplugin/icore.h> +#include <projectexplorer/projectexplorerconstants.h> #include <projectexplorer/selectablefilesmodel.h> #include <utils/wizard.h> @@ -47,6 +48,8 @@ FilesSelectionWizardPage::FilesSelectionWizardPage(GenericProjectWizardDialog *g auto layout = new QVBoxLayout(this); layout->addWidget(m_filesWidget); + m_filesWidget->enableFilterHistoryCompletion + (ProjectExplorer::Constants::ADD_FILES_DIALOG_FILTER_HISTORY_KEY); m_filesWidget->setBaseDirEditable(false); connect(m_filesWidget, &ProjectExplorer::SelectableFilesWidget::selectedFilesChanged, this, &FilesSelectionWizardPage::completeChanged); diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index 36b5e0ee83..5cda7fc0b7 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -3317,7 +3317,9 @@ void ProjectExplorerPluginPrivate::addExistingDirectory() SelectableFilesDialogAddDirectory dialog(Utils::FileName::fromString(directoryFor(node)), Utils::FileNameList(), ICore::mainWindow()); - dialog.setAddFileFilter(folderNode->addFileFilter()); + const QString addFileFilter = folderNode->addFileFilter(); + if (!addFileFilter.isEmpty()) + dialog.setAddFileFilter(addFileFilter); if (dialog.exec() == QDialog::Accepted) ProjectExplorerPlugin::addExistingFiles(folderNode, Utils::transform(dialog.selectedFiles(), &Utils::FileName::toString)); diff --git a/src/plugins/projectexplorer/projectexplorerconstants.h b/src/plugins/projectexplorer/projectexplorerconstants.h index a8964405d8..34e218b149 100644 --- a/src/plugins/projectexplorer/projectexplorerconstants.h +++ b/src/plugins/projectexplorer/projectexplorerconstants.h @@ -211,5 +211,7 @@ const char FILEOVERLAY_H[]=":/projectexplorer/images/fileoverlay_h.png"; const char FILEOVERLAY_SCXML[]=":/projectexplorer/images/fileoverlay_scxml.png"; const char FILEOVERLAY_UNKNOWN[]=":/projectexplorer/images/fileoverlay_unknown.png"; +const char ADD_FILES_DIALOG_FILTER_HISTORY_KEY[] = "ProjectExplorer.AddFilesFilterKey"; + } // namespace Constants } // namespace ProjectExplorer diff --git a/src/plugins/projectexplorer/selectablefilesmodel.cpp b/src/plugins/projectexplorer/selectablefilesmodel.cpp index f9be73d575..67ca0cb3ad 100644 --- a/src/plugins/projectexplorer/selectablefilesmodel.cpp +++ b/src/plugins/projectexplorer/selectablefilesmodel.cpp @@ -29,8 +29,10 @@ #include <coreplugin/fileiconprovider.h> #include <coreplugin/icore.h> -#include <utils/runextensions.h> #include <utils/algorithm.h> +#include <utils/fancylineedit.h> +#include <utils/pathchooser.h> +#include <utils/runextensions.h> #include <QDialogButtonBox> #include <QGridLayout> @@ -39,7 +41,6 @@ #include <QPushButton> #include <QTreeView> #include <QDir> -#include <utils/pathchooser.h> namespace ProjectExplorer { @@ -533,9 +534,9 @@ SelectableFilesWidget::SelectableFilesWidget(QWidget *parent) : m_baseDirLabel(new QLabel), m_startParsingButton(new QPushButton), m_selectFilesFilterLabel(new QLabel), - m_selectFilesFilterEdit(new QLineEdit), + m_selectFilesFilterEdit(new Utils::FancyLineEdit), m_hideFilesFilterLabel(new QLabel), - m_hideFilesFilterEdit(new QLineEdit), + m_hideFilesFilterEdit(new Utils::FancyLineEdit), m_applyFiltersButton(new QPushButton), m_view(new QTreeView), m_preservedFilesLabel(new QLabel), @@ -652,6 +653,12 @@ void SelectableFilesWidget::cancelParsing() m_model->cancel(); } +void SelectableFilesWidget::enableFilterHistoryCompletion(const QString &keyPrefix) +{ + m_selectFilesFilterEdit->setHistoryCompleter(keyPrefix + ".select", true); + m_hideFilesFilterEdit->setHistoryCompleter(keyPrefix + ".hide", true); +} + void SelectableFilesWidget::enableWidgets(bool enabled) { m_hideFilesFilterEdit->setEnabled(enabled); @@ -733,6 +740,7 @@ SelectableFilesDialogEditFiles::SelectableFilesDialogEditFiles(const Utils::File layout->addWidget(m_filesWidget); m_filesWidget->setBaseDirEditable(false); + m_filesWidget->enableFilterHistoryCompletion(Constants::ADD_FILES_DIALOG_FILTER_HISTORY_KEY); auto buttonBox = new QDialogButtonBox(Qt::Horizontal, this); buttonBox->setStandardButtons(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); @@ -749,6 +757,7 @@ Utils::FileNameList SelectableFilesDialogEditFiles::selectedFiles() const return m_filesWidget->selectedFiles(); } + ////////// // SelectableFilesDialogAddDirectory ////////// diff --git a/src/plugins/projectexplorer/selectablefilesmodel.h b/src/plugins/projectexplorer/selectablefilesmodel.h index bf8e1d7b59..17a999654d 100644 --- a/src/plugins/projectexplorer/selectablefilesmodel.h +++ b/src/plugins/projectexplorer/selectablefilesmodel.h @@ -36,7 +36,10 @@ #include <utils/fileutils.h> -namespace Utils { class PathChooser; } +namespace Utils { +class FancyLineEdit; +class PathChooser; +} QT_BEGIN_NAMESPACE class QVBoxLayout; @@ -202,6 +205,8 @@ public: void resetModel(const Utils::FileName &path, const Utils::FileNameList &files); void cancelParsing(); + void enableFilterHistoryCompletion(const QString &keyPrefix); + signals: void selectedFilesChanged(); @@ -223,10 +228,10 @@ private: QPushButton *m_startParsingButton; QLabel *m_selectFilesFilterLabel; - QLineEdit *m_selectFilesFilterEdit; + Utils::FancyLineEdit *m_selectFilesFilterEdit; QLabel *m_hideFilesFilterLabel; - QLineEdit *m_hideFilesFilterEdit; + Utils::FancyLineEdit *m_hideFilesFilterEdit; QPushButton *m_applyFiltersButton; @@ -259,8 +264,6 @@ class SelectableFilesDialogAddDirectory : public SelectableFilesDialogEditFiles public: SelectableFilesDialogAddDirectory(const Utils::FileName &path, const Utils::FileNameList &files, QWidget *parent); - - void setAddFileFilter(const QString &filter) { m_filesWidget->setAddFileFilter(filter); } }; } // namespace ProjectExplorer diff --git a/src/plugins/qmakeprojectmanager/wizards/simpleprojectwizard.cpp b/src/plugins/qmakeprojectmanager/wizards/simpleprojectwizard.cpp index a75ab97db0..2c1621fcb0 100644 --- a/src/plugins/qmakeprojectmanager/wizards/simpleprojectwizard.cpp +++ b/src/plugins/qmakeprojectmanager/wizards/simpleprojectwizard.cpp @@ -86,6 +86,8 @@ FilesSelectionWizardPage::FilesSelectionWizardPage(SimpleProjectWizardDialog *si layout->addWidget(m_filesWidget); m_filesWidget->setBaseDirEditable(false); + m_filesWidget->enableFilterHistoryCompletion + (ProjectExplorer::Constants::ADD_FILES_DIALOG_FILTER_HISTORY_KEY); connect(m_filesWidget, &SelectableFilesWidget::selectedFilesChanged, this, &FilesSelectionWizardPage::completeChanged); |