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