From 1a8ef7f312d75d173290f8000a10526bb471a1a2 Mon Sep 17 00:00:00 2001 From: Petar Perisin <petar.perisin@gmail.com> Date: Sat, 21 Sep 2013 20:18:12 +0300 Subject: [PATCH] PathChooser - fix handling of predefined path predefined path was not set when path chooser was set to select files. Change-Id: I2a9b3d9f2d84b0c5f048bde8e098c6c17772e957 Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Eike Ziller <eike.ziller@digia.com> --- src/libs/utils/pathchooser.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/libs/utils/pathchooser.cpp b/src/libs/utils/pathchooser.cpp index 1b434d7adcf..9305680ad58 100644 --- a/src/libs/utils/pathchooser.cpp +++ b/src/libs/utils/pathchooser.cpp @@ -357,11 +357,21 @@ void PathChooser::slotBrowse() emit beforeBrowsing(); QString predefined = path(); - if ((predefined.isEmpty() || !QFileInfo(predefined).isDir()) + QFileInfo fi(predefined); + + if (!predefined.isEmpty() && !fi.isDir()) { + predefined = fi.path(); + fi.setFile(predefined); + } + + if ((predefined.isEmpty() || !fi.isDir()) && !d->m_initialBrowsePathOverride.isNull()) { predefined = d->m_initialBrowsePathOverride; - if (!QFileInfo(predefined).isDir()) + fi.setFile(predefined); + if (!fi.isDir()) { predefined.clear(); + fi.setFile(QString()); + } } // Prompt for a file/dir @@ -392,7 +402,6 @@ void PathChooser::slotBrowse() QFileDialog dialog(this); dialog.setFileMode(QFileDialog::AnyFile); dialog.setWindowTitle(makeDialogTitle(tr("Choose File"))); - QFileInfo fi(predefined); if (fi.exists()) dialog.setDirectory(fi.absolutePath()); // FIXME: fix QFileDialog so that it filters properly: lib*.a -- GitLab