summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/genericprojectmanager/filesselectionwizardpage.cpp3
-rw-r--r--src/plugins/projectexplorer/projectexplorer.cpp4
-rw-r--r--src/plugins/projectexplorer/projectexplorerconstants.h2
-rw-r--r--src/plugins/projectexplorer/selectablefilesmodel.cpp17
-rw-r--r--src/plugins/projectexplorer/selectablefilesmodel.h13
-rw-r--r--src/plugins/qmakeprojectmanager/wizards/simpleprojectwizard.cpp2
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);