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>
This commit is contained in:
Petar Perisin
2013-09-21 20:18:12 +03:00
committed by Eike Ziller
parent 8d96ce557e
commit 1a8ef7f312

View File

@@ -357,11 +357,21 @@ void PathChooser::slotBrowse()
emit beforeBrowsing(); emit beforeBrowsing();
QString predefined = path(); 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()) { && !d->m_initialBrowsePathOverride.isNull()) {
predefined = d->m_initialBrowsePathOverride; predefined = d->m_initialBrowsePathOverride;
if (!QFileInfo(predefined).isDir()) fi.setFile(predefined);
if (!fi.isDir()) {
predefined.clear(); predefined.clear();
fi.setFile(QString());
}
} }
// Prompt for a file/dir // Prompt for a file/dir
@@ -392,7 +402,6 @@ void PathChooser::slotBrowse()
QFileDialog dialog(this); QFileDialog dialog(this);
dialog.setFileMode(QFileDialog::AnyFile); dialog.setFileMode(QFileDialog::AnyFile);
dialog.setWindowTitle(makeDialogTitle(tr("Choose File"))); dialog.setWindowTitle(makeDialogTitle(tr("Choose File")));
QFileInfo fi(predefined);
if (fi.exists()) if (fi.exists())
dialog.setDirectory(fi.absolutePath()); dialog.setDirectory(fi.absolutePath());
// FIXME: fix QFileDialog so that it filters properly: lib*.a // FIXME: fix QFileDialog so that it filters properly: lib*.a