From ba36ab3c717c276ceeeee43cf5e84ec580b2fb0c Mon Sep 17 00:00:00 2001 From: Roman Telezhynskyi Date: Mon, 15 Aug 2016 16:37:44 +0300 Subject: [PATCH] Fixed bug with path to destination folder. Now the app will check each change of path. If path after closing the dialog doesn't exist the app will try to create a path. --HG-- branch : release --- src/app/valentina/dialogs/dialogsavelayout.cpp | 8 ++++++-- src/app/valentina/mainwindowsnogui.cpp | 10 ++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/app/valentina/dialogs/dialogsavelayout.cpp b/src/app/valentina/dialogs/dialogsavelayout.cpp index e02c06fa1..dc64c686a 100644 --- a/src/app/valentina/dialogs/dialogsavelayout.cpp +++ b/src/app/valentina/dialogs/dialogsavelayout.cpp @@ -219,9 +219,13 @@ void DialogSaveLayout::ShowExample() //--------------------------------------------------------------------------------------------------------------------- void DialogSaveLayout::Browse() { - const QString dir = QFileDialog::getExistingDirectory(this, tr("Select folder"), QDir::homePath(), + const QString dir = QFileDialog::getExistingDirectory(this, tr("Select folder"), + qApp->ValentinaSettings()->GetPathLayout(), QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); - ui->lineEditPath->setText(dir); + if (not dir.isEmpty()) + {// If paths equal the signal will not be called, we will do this manually + dir == ui->lineEditPath->text() ? PathChanged(dir) : ui->lineEditPath->setText(dir); + } } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/app/valentina/mainwindowsnogui.cpp b/src/app/valentina/mainwindowsnogui.cpp index d56a69887..8c9e84179 100644 --- a/src/app/valentina/mainwindowsnogui.cpp +++ b/src/app/valentina/mainwindowsnogui.cpp @@ -213,6 +213,16 @@ void MainWindowsNoGUI::ExportLayout(const DialogSaveLayout &dialog) suf.replace(".", ""); const QString path = dialog.Path(); + QDir dir(path); + dir.setPath(path); + if (not dir.exists(path)) + { + if (not dir.mkpath(path)) + { + qCritical() << tr("Can't create path"); + return; + } + } qApp->ValentinaSettings()->SetPathLayout(path); const QString mask = dialog.FileName();