forked from qt-creator/qt-creator
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:
committed by
Eike Ziller
parent
8d96ce557e
commit
1a8ef7f312
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user