summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/windows
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2013-06-12 14:43:54 +0200
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2013-06-12 14:43:55 +0200
commitbe4b80af8235d5f5664f03589258eec0e43da78b (patch)
tree9a5a8dcaae5d4da3632f0be8fa1af42c751ae22e /src/plugins/platforms/windows
parent0715dc9ee32054c4a344dc7d8694cf0b8b6cbdbb (diff)
parent2d9cd8eef8652873e73d5cde6b6545eea9a17612 (diff)
Merge remote-tracking branch 'origin/release' into 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