From 7c97e8d2a67cde576b9d38ff5d8f6b75f07a17cf Mon Sep 17 00:00:00 2001 From: David Faure Date: Tue, 25 Jun 2024 11:04:33 +0200 Subject: [PATCH] Fix QFileSystemModel::fileName when the index column is > 0 Fixes: QTBUG-27205 Pick-to: 6.7 6.5 Change-Id: I520a9746c8dc2a7e96ee727167915336442b01b3 Reviewed-by: Christian Ehrlicher (cherry picked from commit 5eba8693bd4df7bd891938a116ee7405bfa778bb) Reviewed-by: Qt Cherry-pick Bot --- src/gui/itemmodels/qfilesystemmodel.h | 4 +++- .../gui/itemmodels/qfilesystemmodel/tst_qfilesystemmodel.cpp | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/gui/itemmodels/qfilesystemmodel.h b/src/gui/itemmodels/qfilesystemmodel.h index 9888249fc57..3bd884eab0b 100644 --- a/src/gui/itemmodels/qfilesystemmodel.h +++ b/src/gui/itemmodels/qfilesystemmodel.h @@ -147,7 +147,9 @@ private: }; inline QString QFileSystemModel::fileName(const QModelIndex &aindex) const -{ return aindex.data(Qt::DisplayRole).toString(); } +{ + return aindex.data(FileNameRole).toString(); +} inline QIcon QFileSystemModel::fileIcon(const QModelIndex &aindex) const { return qvariant_cast(aindex.data(Qt::DecorationRole)); } diff --git a/tests/auto/gui/itemmodels/qfilesystemmodel/tst_qfilesystemmodel.cpp b/tests/auto/gui/itemmodels/qfilesystemmodel/tst_qfilesystemmodel.cpp index 4ba3ae11de0..bd4d778d112 100644 --- a/tests/auto/gui/itemmodels/qfilesystemmodel/tst_qfilesystemmodel.cpp +++ b/tests/auto/gui/itemmodels/qfilesystemmodel/tst_qfilesystemmodel.cpp @@ -807,6 +807,8 @@ void tst_QFileSystemModel::setData() QCOMPARE(model->data(idx, QFileSystemModel::FileNameRole).toString(), newFileName); QCOMPARE(model->data(idx, QFileSystemModel::FileInfoRole).value().fileName(), newFileName); QCOMPARE(model->fileInfo(idx).filePath(), tmp + '/' + newFileName); + QCOMPARE(model->fileName(idx), newFileName); + QCOMPARE(model->fileName(idx.siblingAtColumn(1)), newFileName); QCOMPARE(model->index(arguments.at(0).toString()), model->index(tmp)); QCOMPARE(arguments.at(1).toString(), oldFileName); QCOMPARE(arguments.at(2).toString(), newFileName);