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 <hjk@qt.io>
This commit is contained in:
Christian Kandeler
2019-05-02 11:49:09 +02:00
parent d326779dc4
commit de8827b53f
3 changed files with 9 additions and 3 deletions

View File

@@ -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));

View File

@@ -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)

View File

@@ -241,6 +241,7 @@ private:
QLabel *m_preservedFilesLabel;
QLabel *m_progressLabel;
bool m_filteringScheduled = false;
};
class PROJECTEXPLORER_EXPORT SelectableFilesDialogEditFiles : public QDialog