From de8827b53fc94495b3d910c358aee86b70c8bd63 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Thu, 2 May 2019 11:49:09 +0200 Subject: [PATCH] ProjectExplorer: Do not pre-select files in "Add Existing Directory" In most contexts, the user does not want any files pre-selected in this dialog, which displays a (potentially deep) directory structure from which tpyically only a few entries are to be selected. Fixes: QTCREATORBUG-16574 Change-Id: I1545d33c02ef7e2149b25dc5ec24f85e1778091c Reviewed-by: hjk --- src/plugins/projectexplorer/projectexplorer.cpp | 4 +--- src/plugins/projectexplorer/selectablefilesmodel.cpp | 7 +++++++ src/plugins/projectexplorer/selectablefilesmodel.h | 1 + 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index 24f73acade8..c1b17eb0c45 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -3427,9 +3427,7 @@ void ProjectExplorerPluginPrivate::addExistingDirectory() SelectableFilesDialogAddDirectory dialog(Utils::FileName::fromString(directoryFor(node)), Utils::FileNameList(), ICore::mainWindow()); - const QString addFileFilter = folderNode->addFileFilter(); - if (!addFileFilter.isEmpty()) - dialog.setAddFileFilter(addFileFilter); + dialog.setAddFileFilter({}); if (dialog.exec() == QDialog::Accepted) ProjectExplorerPlugin::addExistingFiles(folderNode, Utils::transform(dialog.selectedFiles(), &Utils::FileName::toString)); diff --git a/src/plugins/projectexplorer/selectablefilesmodel.cpp b/src/plugins/projectexplorer/selectablefilesmodel.cpp index b8925e4f572..80a9363dc9e 100644 --- a/src/plugins/projectexplorer/selectablefilesmodel.cpp +++ b/src/plugins/projectexplorer/selectablefilesmodel.cpp @@ -601,6 +601,10 @@ SelectableFilesWidget::SelectableFilesWidget(const Utils::FileName &path, void SelectableFilesWidget::setAddFileFilter(const QString &filter) { m_selectFilesFilterEdit->setText(filter); + if (m_applyFiltersButton->isEnabled()) + applyFilter(); + else + m_filteringScheduled = true; } void SelectableFilesWidget::setBaseDirEditable(bool edit) @@ -675,6 +679,7 @@ void SelectableFilesWidget::enableWidgets(bool enabled) void SelectableFilesWidget::applyFilter() { + m_filteringScheduled = false; if (m_model) m_model->applyFilter(m_selectFilesFilterEdit->text(), m_hideFilesFilterEdit->text()); } @@ -711,6 +716,8 @@ void SelectableFilesWidget::parsingFinished() "These files are preserved.", nullptr, preservedFiles.count())); enableWidgets(true); + if (m_filteringScheduled) + applyFilter(); } void SelectableFilesWidget::smartExpand(const QModelIndex &idx) diff --git a/src/plugins/projectexplorer/selectablefilesmodel.h b/src/plugins/projectexplorer/selectablefilesmodel.h index 698ae03d05b..677329cb92b 100644 --- a/src/plugins/projectexplorer/selectablefilesmodel.h +++ b/src/plugins/projectexplorer/selectablefilesmodel.h @@ -241,6 +241,7 @@ private: QLabel *m_preservedFilesLabel; QLabel *m_progressLabel; + bool m_filteringScheduled = false; }; class PROJECTEXPLORER_EXPORT SelectableFilesDialogEditFiles : public QDialog