diff options
author | Bradley T. Hughes <bradley.hughes@nokia.com> | 2012-05-09 13:55:25 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-05-10 06:56:20 +0200 |
commit | 5f43422ddf38e48f56b2ef39ee19bec2cb430ac4 (patch) | |
tree | b8be9f5168345b2ff366881e0bc31f6f39fc4d8d /src/plugins/platforms/cocoa | |
parent | d223b30c42a9a8d42a8dd35b2d93615e646b4f1e (diff) |
qpa: Remove QPlatformDialogHelper::deleteNativeDialog()
This function isn't really needed. The QDialogPrivate destructor deletes
the platform helper, so the QDialog destructor does not need to do it.
Subclasses of QPlatformDialogHelper are now responsible for deleting any
native resources they create.
The one place in QFileDialog that needs to recreate the native dialog
can simply recreate the helper. QDialogPrivate::deleteNativeDialog() now
becomes QDialogPrivate::deletePlatformHelper(), which resets all state
to allow the platform helper to be recreated.
Change-Id: I58adfe8801e02e63b3cb4a9a3a0b8cb5b3c7b161
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Diffstat (limited to 'src/plugins/platforms/cocoa')
6 files changed, 17 insertions, 30 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoacolordialoghelper.h b/src/plugins/platforms/cocoa/qcocoacolordialoghelper.h index 263ccdc086..aaa2e26fc4 100644 --- a/src/plugins/platforms/cocoa/qcocoacolordialoghelper.h +++ b/src/plugins/platforms/cocoa/qcocoacolordialoghelper.h @@ -54,7 +54,6 @@ public: virtual ~QCocoaColorDialogHelper(); void exec(); - void deleteNativeDialog(); bool show(Qt::WindowFlags windowFlags, Qt::WindowModality windowModality, QWindow *parent); void hide(); diff --git a/src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm b/src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm index 7d245c3db6..d617d1d210 100644 --- a/src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm +++ b/src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm @@ -343,7 +343,12 @@ QCocoaColorDialogHelper::QCocoaColorDialogHelper() : } QCocoaColorDialogHelper::~QCocoaColorDialogHelper() -{ } +{ + if (!mDelegate) + return; + [reinterpret_cast<QT_MANGLE_NAMESPACE(QNSColorPanelDelegate) *>(mDelegate) release]; + mDelegate = 0; +} void QCocoaColorDialogHelper::exec() { @@ -358,14 +363,6 @@ void QCocoaColorDialogHelper::exec() emit reject(); } -void QCocoaColorDialogHelper::deleteNativeDialog() -{ - if (!mDelegate) - return; - [reinterpret_cast<QT_MANGLE_NAMESPACE(QNSColorPanelDelegate) *>(mDelegate) release]; - mDelegate = 0; -} - bool QCocoaColorDialogHelper::show(Qt::WindowFlags, Qt::WindowModality windowModality, QWindow *parent) { if (windowModality == Qt::WindowModal) { diff --git a/src/plugins/platforms/cocoa/qcocoafiledialoghelper.h b/src/plugins/platforms/cocoa/qcocoafiledialoghelper.h index 76c4b87e11..9bdf3acd71 100644 --- a/src/plugins/platforms/cocoa/qcocoafiledialoghelper.h +++ b/src/plugins/platforms/cocoa/qcocoafiledialoghelper.h @@ -60,7 +60,6 @@ public: bool defaultNameFilterDisables() const; - void deleteNativeDialog(); bool show(Qt::WindowFlags windowFlags, Qt::WindowModality windowModality, QWindow *parent); void hide(); void setDirectory(const QString &directory); diff --git a/src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm b/src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm index ccf9482e4f..30f4cabfae 100644 --- a/src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm +++ b/src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm @@ -511,7 +511,10 @@ QCocoaFileDialogHelper::QCocoaFileDialogHelper() QCocoaFileDialogHelper::~QCocoaFileDialogHelper() { - + if (!mDelegate) + return; + [reinterpret_cast<QT_MANGLE_NAMESPACE(QNSOpenSavePanelDelegate) *>(mDelegate) release]; + mDelegate = 0; } void QCocoaFileDialogHelper::QNSOpenSavePanelDelegate_selectionChanged(const QString &newPath) @@ -602,12 +605,6 @@ QString QCocoaFileDialogHelper::selectedNameFilter() const return index != -1 ? options()->nameFilters().at(index) : QString(); } -void QCocoaFileDialogHelper::deleteNativeDialog() -{ - [reinterpret_cast<QT_MANGLE_NAMESPACE(QNSOpenSavePanelDelegate) *>(mDelegate) release]; - mDelegate = 0; -} - void QCocoaFileDialogHelper::hide() { hideCocoaFilePanel(); diff --git a/src/plugins/platforms/cocoa/qcocoafontdialoghelper.h b/src/plugins/platforms/cocoa/qcocoafontdialoghelper.h index 2e185b769a..8c041205a5 100644 --- a/src/plugins/platforms/cocoa/qcocoafontdialoghelper.h +++ b/src/plugins/platforms/cocoa/qcocoafontdialoghelper.h @@ -54,12 +54,10 @@ class QCocoaFontDialogHelper : public QPlatformFontDialogHelper { public: QCocoaFontDialogHelper(); - virtual ~QCocoaFontDialogHelper(); + ~QCocoaFontDialogHelper(); void exec(); - void deleteNativeDialog(); - bool show(Qt::WindowFlags windowFlags, Qt::WindowModality windowModality, QWindow *parent); void hide(); diff --git a/src/plugins/platforms/cocoa/qcocoafontdialoghelper.mm b/src/plugins/platforms/cocoa/qcocoafontdialoghelper.mm index a70953d0df..088f6265ca 100644 --- a/src/plugins/platforms/cocoa/qcocoafontdialoghelper.mm +++ b/src/plugins/platforms/cocoa/qcocoafontdialoghelper.mm @@ -362,7 +362,12 @@ QCocoaFontDialogHelper::QCocoaFontDialogHelper() : } QCocoaFontDialogHelper::~QCocoaFontDialogHelper() -{ } +{ + if (!mDelegate) + return; + [reinterpret_cast<QT_MANGLE_NAMESPACE(QNSFontPanelDelegate) *>(mDelegate) release]; + mDelegate = 0; +} void QCocoaFontDialogHelper::exec() { @@ -377,14 +382,6 @@ void QCocoaFontDialogHelper::exec() emit reject(); } -void QCocoaFontDialogHelper::deleteNativeDialog() -{ - if (!mDelegate) - return; - [reinterpret_cast<QT_MANGLE_NAMESPACE(QNSFontPanelDelegate) *>(mDelegate) release]; - mDelegate = 0; -} - bool QCocoaFontDialogHelper::show(Qt::WindowFlags, Qt::WindowModality windowModality, QWindow *parent) { if (windowModality == Qt::WindowModal) { |