diff --git a/src/filewidgets/knewfilemenu.cpp b/src/filewidgets/knewfilemenu.cpp --- a/src/filewidgets/knewfilemenu.cpp +++ b/src/filewidgets/knewfilemenu.cpp @@ -902,15 +902,25 @@ } KIO::Job *job; +#ifdef Q_OS_WIN if (name.contains(QLatin1Char('/'))) { + // Allow creating directory tree on Windows // If the name contains any slashes, use mkpath so that a/b/c works. job = KIO::mkpath(url, baseUrl); KIO::FileUndoManager::self()->recordJob(KIO::FileUndoManager::Mkpath, QList(), url, job); } else { // If not, use mkdir so it will fail if the name of an existing folder was used job = KIO::mkdir(url); KIO::FileUndoManager::self()->recordJob(KIO::FileUndoManager::Mkdir, QList(), url, job); } +#endif + +#ifdef Q_OS_UNIX + // Don't allow creating directory tree, since UNIX does not support / as a valid character in an identifier. + job = KIO::mkdir(url); + KIO::FileUndoManager::self()->recordJob(KIO::FileUndoManager::Mkdir, QList(), url, job); +#endif + job->setProperty("newDirectoryURL", url); job->uiDelegate()->setAutoErrorHandlingEnabled(true); KJobWidgets::setWindow(job, m_parentWidget);