diff options
Diffstat (limited to 'src/quickdialogs2/quickdialogs2quickimpl/qquickfiledialogimpl.cpp')
-rw-r--r-- | src/quickdialogs2/quickdialogs2quickimpl/qquickfiledialogimpl.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qquickfiledialogimpl.cpp b/src/quickdialogs2/quickdialogs2quickimpl/qquickfiledialogimpl.cpp index 64c624b5ec..a51c6bd3e6 100644 --- a/src/quickdialogs2/quickdialogs2quickimpl/qquickfiledialogimpl.cpp +++ b/src/quickdialogs2/quickdialogs2quickimpl/qquickfiledialogimpl.cpp @@ -41,6 +41,8 @@ #include "qquickfiledialogimpl_p_p.h" #include <QtCore/qloggingcategory.h> +#include <QtGui/private/qguiapplication_p.h> +#include <QtGui/qpa/qplatformtheme.h> #include <QtQml/qqmlinfo.h> #include <QtQml/qqmlfile.h> #include <QtQuickDialogs2Utils/private/qquickfilenamefilter_p.h> @@ -135,7 +137,15 @@ void QQuickFileDialogImplPrivate::updateSelectedFile(const QString &oldFolderPat } } - if (newSelectedFilePath.isEmpty()) { + static const bool preselectFirstFile = []() { + const QVariant envVar = qEnvironmentVariable("QT_QUICK_DIALOGS_PRESELECT_FIRST_FILE"); + if (envVar.isValid() && envVar.canConvert<bool>()) + return envVar.toBool(); + return QGuiApplicationPrivate::platformTheme()->themeHint( + QPlatformTheme::PreselectFirstFileInDirectory).toBool(); + }(); + + if (preselectFirstFile && newSelectedFilePath.isEmpty()) { // When entering into a directory that isn't a parent of the old one, the first // file delegate should be selected. // TODO: is there a cheaper way to do this? QDirIterator doesn't support sorting, |