diff --git a/src/gui/itemmodels/qfilesystemmodel.cpp b/src/gui/itemmodels/qfilesystemmodel.cpp index e0274e5fefe..4786e18ef3b 100644 --- a/src/gui/itemmodels/qfilesystemmodel.cpp +++ b/src/gui/itemmodels/qfilesystemmodel.cpp @@ -720,6 +720,9 @@ QVariant QFileSystemModel::data(const QModelIndex &index, int role) const switch (role) { case Qt::EditRole: + if (index.column() == 0) + return d->name(index); + Q_FALLTHROUGH(); case Qt::DisplayRole: switch (index.column()) { case 0: return d->displayName(index); diff --git a/tests/auto/widgets/util/qcompleter/tst_qcompleter.cpp b/tests/auto/widgets/util/qcompleter/tst_qcompleter.cpp index 7de37875b2f..51a75573a45 100644 --- a/tests/auto/widgets/util/qcompleter/tst_qcompleter.cpp +++ b/tests/auto/widgets/util/qcompleter/tst_qcompleter.cpp @@ -110,6 +110,8 @@ private slots: void fileSystemModel_data(); void fileSystemModel(); + void fileDialog_data(); + void fileDialog(); void changingModel_data(); void changingModel(); @@ -626,7 +628,23 @@ void tst_QCompleter::fileSystemModel_data() void tst_QCompleter::fileSystemModel() { - //QFileSystemModel is assync. + //QFileSystemModel is async. + filter(true); +} + +/*! + In the file dialog, the completer uses the EditRole. + See QTBUG-94799 +*/ +void tst_QCompleter::fileDialog_data() +{ + fileSystemModel_data(); + completer->setCompletionRole(Qt::EditRole); +} + +void tst_QCompleter::fileDialog() +{ + //QFileSystemModel is async. filter(true); }