summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/windows
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2013-06-15 22:39:25 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-06-15 22:39:25 +0200
commite5bcf68d3055d6738b56cbbafb407bad4363e63c (patch)
treed70319316c926697e136527ce9a6628d34f0ebc4 /src/plugins/platforms/windows
parentd57d184b6d18deab172ac400b9db973e6aacab21 (diff)
parentbe4b80af8235d5f5664f03589258eec0e43da78b (diff)
Merge "Merge remote-tracking branch 'origin/release' into stable" into refs/staging/stable
Diffstat (limited to 'src/plugins/platforms/windows')
-rw-r--r--src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.h2
-rw-r--r--src/plugins/platforms/windows/qwindowsdialoghelpers.cpp36
2 files changed, 19 insertions, 19 deletions
diff --git a/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.h b/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.h
index d4f141c5d8..5b8d08d3c8 100644
--- a/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.h
+++ b/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.h
@@ -63,7 +63,7 @@ QT_BEGIN_NAMESPACE
bool debug_accessibility();
# define accessibleDebug !debug_accessibility() ? (void)0 : qDebug
#else
-# define accessibleDebug
+# define accessibleDebug while (false) qDebug
#endif
#ifndef QT_NO_DEBUG_OUTPUT
diff --git a/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp b/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp
index 33b4eb4771..f7ccb00233 100644
--- a/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp
+++ b/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp
@@ -825,7 +825,7 @@ public:
inline void updateDirectory() { setDirectory(m_data.directory()); }
inline QString directory() const;
virtual void exec(HWND owner = 0);
- inline void setNameFilters(const QStringList &f);
+ virtual void setNameFilters(const QStringList &f);
inline void selectNameFilter(const QString &filter);
inline void updateSelectedNameFilter() { selectNameFilter(m_data.selectedNameFilter()); }
inline QString selectedNameFilter() const;
@@ -1335,12 +1335,11 @@ class QWindowsNativeSaveFileDialog : public QWindowsNativeFileDialogBase
{
Q_OBJECT
public:
- explicit QWindowsNativeSaveFileDialog(const QWindowsFileDialogSharedData &data);
+ explicit QWindowsNativeSaveFileDialog(const QWindowsFileDialogSharedData &data)
+ : QWindowsNativeFileDialogBase(data) {}
+ virtual void setNameFilters(const QStringList &f);
virtual QStringList selectedFiles() const;
virtual QStringList dialogResult() const;
-
-private slots:
- void slotFilterSelected(const QString &);
};
// Return the first suffix from the name filter "Foo files (*.foo;*.bar)" -> "foo".
@@ -1358,20 +1357,21 @@ static inline QString suffixFromFilter(const QString &filter)
return endPos >= 0 ? filter.mid(suffixPos, endPos - suffixPos) : QString();
}
-QWindowsNativeSaveFileDialog::QWindowsNativeSaveFileDialog(const QWindowsFileDialogSharedData &data)
- : QWindowsNativeFileDialogBase(data)
+void QWindowsNativeSaveFileDialog::setNameFilters(const QStringList &f)
{
- connect(this, &QWindowsNativeFileDialogBase::filterSelected,
- this, &QWindowsNativeSaveFileDialog::slotFilterSelected);
-}
-
-void QWindowsNativeSaveFileDialog::slotFilterSelected(const QString &filter)
-{
- // Cause the dialog to append the suffix of the current filter unless a default
- // suffix is set (Note: Qt 4.8 sets the selected filter's suffix before
- // calling GetSaveFileName()).
- if (!hasDefaultSuffix())
- setDefaultSuffixSys(suffixFromFilter(filter));
+ QWindowsNativeFileDialogBase::setNameFilters(f);
+ // QTBUG-31381, QTBUG-30748: IFileDialog will update the suffix of the selected name
+ // filter only if a default suffix is set (see docs). Set the first available
+ // suffix unless we have a defaultSuffix.
+ if (!hasDefaultSuffix()) {
+ foreach (const QString &filter, f) {
+ const QString suffix = suffixFromFilter(filter);
+ if (!suffix.isEmpty()) {
+ setDefaultSuffixSys(suffix);
+ break;
+ }
+ }
+ } // m_hasDefaultSuffix
}
QStringList QWindowsNativeSaveFileDialog::dialogResult() const