diff --git a/src/filewidgets/kdiroperator.h b/src/filewidgets/kdiroperator.h --- a/src/filewidgets/kdiroperator.h +++ b/src/filewidgets/kdiroperator.h @@ -490,6 +490,18 @@ */ bool onlyDoubleClickSelectsFiles() const; + /** + * Toggles whether `setUrl` is called on newly created directories. + */ + void setFollowNewDirectories(bool enable); + + /** + * @returns true if `setUrl` is called on newly created directories, false + * otherwise. + * @see setFollowNewDirectories + */ + bool followNewDirectories() const; + /** * Creates the given directory/url. If it is a relative path, * it will be completed with the current directory. diff --git a/src/filewidgets/kdiroperator.cpp b/src/filewidgets/kdiroperator.cpp --- a/src/filewidgets/kdiroperator.cpp +++ b/src/filewidgets/kdiroperator.cpp @@ -197,6 +197,7 @@ bool dirHighlighting; bool onlyDoubleClickSelectsFiles; + bool followNewDirectories; QString lastURL; // used for highlighting a directory on cdUp QTimer *progressDelayTimer; int dropOptions; @@ -237,6 +238,7 @@ previewWidth(0), dirHighlighting(false), onlyDoubleClickSelectsFiles(!qApp->style()->styleHint(QStyle::SH_ItemView_ActivateItemOnSingleClick)), + followNewDirectories(true), progressDelayTimer(nullptr), dropOptions(0), actionMenu(nullptr), @@ -2412,6 +2414,16 @@ return d->onlyDoubleClickSelectsFiles; } +void KDirOperator::setFollowNewDirectories(bool enable) +{ + d->followNewDirectories = enable; +} + +bool KDirOperator::followNewDirectories() const +{ + return d->followNewDirectories; +} + void KDirOperator::Private::_k_slotStarted() { progressBar->setValue(0); @@ -2781,7 +2793,9 @@ void KDirOperator::Private::_k_slotDirectoryCreated(const QUrl &url) { - parent->setUrl(url, true); + if (followNewDirectories) { + parent->setUrl(url, true); + } } void KDirOperator::setSupportedSchemes(const QStringList &schemes)