diff --git a/src/skanlite.cpp b/src/skanlite.cpp --- a/src/skanlite.cpp +++ b/src/skanlite.cpp @@ -47,6 +47,7 @@ #include #include #include +#include #include #include #include @@ -399,6 +400,21 @@ //qDebug() << dir << prefix << imgFormat; + // propose directory creation if doesn't exists + QUrl dirUrl(dir); + if (dirUrl.isLocalFile()) { + if (!QDir(dirUrl.path()).exists()) { + if (KMessageBox::questionYesNo(this, i18n("Directory doesn't exist, do you wish to create it?")) == KMessageBox::ButtonCode::Yes ) { + KIO::MkpathJob *mkpathJob = KIO::mkpath(dirUrl, QUrl(), KIO::JobFlag::HideProgressInfo); + KJobWidgets::setWindow(mkpathJob, QApplication::activeWindow()); + if (!mkpathJob->exec()) { + KMessageBox::error(this, i18n("Could not create directory %1", dir)); + return; + } + } + } + } + // find next available file name for name suggestion QUrl fileUrl; QString fname;