diff --git a/src/Gui/FileDialog.cpp b/src/Gui/FileDialog.cpp index 503a0d2b63ea..b0ad73a14059 100644 --- a/src/Gui/FileDialog.cpp +++ b/src/Gui/FileDialog.cpp @@ -534,6 +534,8 @@ FileChooser::FileChooser ( QWidget * parent ) connect(lineEdit, SIGNAL(textChanged(const QString &)), this, SIGNAL(fileNameChanged(const QString &))); + + connect(lineEdit, SIGNAL(editingFinished()), this, SLOT(editingFinished())); button = new QPushButton(QLatin1String("..."), this); button->setFixedWidth(2*button->fontMetrics().width(QLatin1String(" ... "))); @@ -561,6 +563,15 @@ QString FileChooser::fileName() const return lineEdit->text(); } +void FileChooser::editingFinished() +{ + QString le_converted = lineEdit->text(); + le_converted.replace(QString::fromStdString("\\"), QString::fromStdString("/")); + lineEdit->setText(le_converted); + FileDialog::setWorkingDirectory(le_converted); + fileNameSelected(le_converted); +} + /** * Sets the file name \a s. */ diff --git a/src/Gui/FileDialog.h b/src/Gui/FileDialog.h index e5c5948eb640..4d2c119b7ce9 100644 --- a/src/Gui/FileDialog.h +++ b/src/Gui/FileDialog.h @@ -176,6 +176,7 @@ public Q_SLOTS: private Q_SLOTS: void chooseFile(); + void editingFinished(); private: QLineEdit *lineEdit;