path: root/src/widgets/dialogs/qfiledialog.cpp
diff options
authorMarc Mutz <>2014-04-02 22:50:23 +0200
committerMarc Mutz <>2016-03-01 07:41:46 +0000
commit1a421248396e4b2bdc9ff3ebb63b1edf41c93474 (patch)
treeb1c2c27c00f7f38647fc40209aefa5c4c757794b /src/widgets/dialogs/qfiledialog.cpp
parentaeb169a48869f4f50237e384e57ccb406228f620 (diff)
Q{File,Font,Color,Message}DialogOptions are no value classes
These classes are only held in QSharedPointer, so optimize for that: 1. Disable default ctor, copy ctor and assignment operator, destructor and swap for public users. 2. Add create() to return an instance in a shared pointer. 3. Allocate public and private classes in one memory block, use QSharedPointer::create() to also add the QSharedPointer control block to the same memory allocation. As a consequence, this reduces the creation of a Q*DialogOptions into a shared pointer by two memory allocations. Add a macro to enable atomic updates to QtQuick and other users outside QtBase. [ChangeLog][QtGui] [QFileDialogOptions/QFontDialogOptions/QMessageDialogOptions/QColorDialogOptions] This class no longer has value semantics, but needs to be held in QSharedPointer (as it always was). To copy an instance, use the clone() method. Change-Id: I4c81220e0a8286a310df1c224a30eca34824c4e6 Reviewed-by: Friedemann Kleint <> Reviewed-by: Lars Knoll <> Reviewed-by: Shawn Rutledge <>
Diffstat (limited to 'src/widgets/dialogs/qfiledialog.cpp')
1 files changed, 1 insertions, 1 deletions
diff --git a/src/widgets/dialogs/qfiledialog.cpp b/src/widgets/dialogs/qfiledialog.cpp
index 50667e2a91..3bcd6f7c4b 100644
--- a/src/widgets/dialogs/qfiledialog.cpp
+++ b/src/widgets/dialogs/qfiledialog.cpp
@@ -533,7 +533,7 @@ QFileDialogPrivate::QFileDialogPrivate()
- options(new QFileDialogOptions)
+ options(QFileDialogOptions::create())