summaryrefslogtreecommitdiffstats
path: root/src/gui/dialogs/qfiledialog.cpp
diff options
context:
space:
mode:
authorAlexis Menard <alexis.menard@nokia.com>2009-05-28 12:46:39 (GMT)
committerAlexis Menard <alexis.menard@nokia.com>2009-05-28 15:26:48 (GMT)
commit8e4300e2866fd28881853509df6ff054e13f841b (patch)
treea27cf1b141948e0e34f6b60efdd47063e87265fa /src/gui/dialogs/qfiledialog.cpp
parent89029a54cb3adfb54736a6aafaea9ec535407592 (diff)
downloadQt-8e4300e2866fd28881853509df6ff054e13f841b.zip
Qt-8e4300e2866fd28881853509df6ff054e13f841b.tar.gz
Qt-8e4300e2866fd28881853509df6ff054e13f841b.tar.bz2
Fix wrong sorting when using the QFileSystemModel with QTreeView
An optimization was made to the sorting of QFileDialog to sort only the current root (meaning what the user see). This avoided slowness when the model was big with lots of leafs. The problem here is for the treeview, the root is always the same, we expands only nodes. In that case, a recursive sorting is needed to ensure that all expanded nodes are correctly sorted (and filtered). This will be slower that's why i use an hidden flag in the d pointer to deactivate the recursive sort for the QFileDialog. Task-number:254701 Reviewed-by:olivier BT:yes
Diffstat (limited to 'src/gui/dialogs/qfiledialog.cpp')
-rw-r--r--src/gui/dialogs/qfiledialog.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/gui/dialogs/qfiledialog.cpp b/src/gui/dialogs/qfiledialog.cpp
index d42775a..d4d0136 100644
--- a/src/gui/dialogs/qfiledialog.cpp
+++ b/src/gui/dialogs/qfiledialog.cpp
@@ -2108,6 +2108,7 @@ void QFileDialogPrivate::createWidgets()
#else
model->setNameFilterDisables(false);
#endif
+ model->d_func()->disableRecursiveSort = true;
QFileDialog::connect(model, SIGNAL(fileRenamed(const QString &, const QString &, const QString &)), q, SLOT(_q_fileRenamed(const QString &, const QString &, const QString &)));
QFileDialog::connect(model, SIGNAL(rootPathChanged(const QString &)),
q, SLOT(_q_pathChanged(const QString &)));