summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/windows
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2013-01-24 16:02:55 +0100
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2013-01-24 16:02:55 +0100
commit627d9cbd3c45834fe7aa1f2ee37fdfca07a03976 (patch)
treec0805165804b2a9ef809318dd6a84132d2e57744 /src/plugins/platforms/windows
parentfed2d237b71ac2f586dca0d35d104e7cf0cd9bd2 (diff)
parent1b5f9bec03901519db3694d1b51fa7989ade1f25 (diff)
Merge remote-tracking branch 'origin/stable' into dev
Conflicts: src/plugins/platforms/windows/qwindowsdialoghelpers.cpp Change-Id: I4ca87d44129fa5c1d8541cd58b8d62bc69080688
Diffstat (limited to 'src/plugins/platforms/windows')
-rw-r--r--src/plugins/platforms/windows/qwindowsdialoghelpers.cpp20
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