diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2013-01-24 16:37:58 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-01-24 18:34:11 +0100 |
commit | d0c360fd88760372f4f67219440ee17a11023d98 (patch) | |
tree | e08ad106519090524a526a43d82500c0a0775171 /src/plugins/platforms/windows | |
parent | 9c6a91d07bae5517a9909ef5b6f4acb1e99ec948 (diff) | |
parent | 627d9cbd3c45834fe7aa1f2ee37fdfca07a03976 (diff) |
Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev
Diffstat (limited to 'src/plugins/platforms/windows')
-rw-r--r-- | src/plugins/platforms/windows/qwindowsdialoghelpers.cpp | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp b/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp index 46a2c682b3..b4699b6306 100644 --- a/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp +++ b/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp @@ -769,6 +769,7 @@ public: inline void selectNameFilter(const QString &filter); inline void updateSelectedNameFilter() { selectNameFilter(m_data.selectedNameFilter()); } inline QString selectedNameFilter() const; + void selectFile(const QString &fileName) const; bool hideFiltersDetails() const { return m_hideFiltersDetails; } void setHideFiltersDetails(bool h) { m_hideFiltersDetails = h; } void setDefaultSuffix(const QString &s); @@ -1071,6 +1072,11 @@ void QWindowsNativeFileDialogBase::setLabelText(QFileDialogOptions::DialogLabel } } +void QWindowsNativeFileDialogBase::selectFile(const QString &fileName) const +{ + m_fileDialog->SetFileName((wchar_t*)fileName.utf16()); +} + // Return the index of the selected filter, accounting for QFileDialog // sometimes stripping the filter specification depending on the // hideFilterDetails setting. @@ -1362,6 +1368,12 @@ QWindowsNativeDialogBase *QWindowsFileDialogHelper::createNativeDialog() result->setLabelText(QFileDialogOptions::Accept, opts->labelText(QFileDialogOptions::Accept)); result->updateDirectory(); result->updateSelectedNameFilter(); + const QStringList initialSelection = opts->initiallySelectedFiles(); + if (initialSelection.size() > 0) { + QFileInfo info(initialSelection.front()); + if (!info.isDir()) + result->selectFile(info.fileName()); + } const QString defaultSuffix = opts->defaultSuffix(); if (!defaultSuffix.isEmpty()) result->setDefaultSuffix(defaultSuffix); @@ -1383,9 +1395,13 @@ QString QWindowsFileDialogHelper::directory() const return m_data.directory(); } -void QWindowsFileDialogHelper::selectFile(const QString & /* filename */) +void QWindowsFileDialogHelper::selectFile(const QString &fileName) { - // Not implemented. + if (QWindowsContext::verboseDialogs) + qDebug("%s %s" , __FUNCTION__, qPrintable(fileName)); + + if (QWindowsNativeFileDialogBase *nfd = nativeFileDialog()) + nfd->selectFile(fileName); } QStringList QWindowsFileDialogHelper::selectedFiles() const |