summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/3rdparty/freetype/src/base/ftobjs.c20
-rw-r--r--src/3rdparty/freetype/src/base/ftstream.c2
-rw-r--r--src/3rdparty/freetype/src/truetype/ttinterp.c2
-rw-r--r--src/3rdparty/freetype/src/truetype/ttpload.c6
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-shaper.cpp20
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_config.h2
-rw-r--r--src/3rdparty/phonon/phonon/abstractmediastream.h2
-rw-r--r--src/3rdparty/phonon/phonon/iodevicestream_p.h2
-rw-r--r--src/corelib/animation/qabstractanimation.h2
-rw-r--r--src/corelib/animation/qanimationgroup.h2
-rw-r--r--src/corelib/animation/qparallelanimationgroup.h2
-rw-r--r--src/corelib/animation/qpauseanimation.h2
-rw-r--r--src/corelib/animation/qpropertyanimation.h2
-rw-r--r--src/corelib/animation/qsequentialanimationgroup.h2
-rw-r--r--src/corelib/animation/qvariantanimation.h2
-rw-r--r--src/corelib/arch/symbian/qatomic_symbian.cpp32
-rw-r--r--src/corelib/concurrent/qfuturewatcher.h2
-rw-r--r--src/corelib/concurrent/qthreadpool.h2
-rw-r--r--src/corelib/global/qglobal.cpp90
-rw-r--r--src/corelib/global/qglobal.h45
-rw-r--r--src/corelib/io/qabstractfileengine.h2
-rw-r--r--src/corelib/io/qbuffer.h2
-rw-r--r--src/corelib/io/qdir.cpp12
-rw-r--r--src/corelib/io/qdir.h2
-rw-r--r--src/corelib/io/qfile.h2
-rw-r--r--src/corelib/io/qfileinfo.h2
-rw-r--r--src/corelib/io/qfilesystemwatcher.h2
-rw-r--r--src/corelib/io/qfilesystemwatcher_symbian.cpp2
-rw-r--r--src/corelib/io/qfsfileengine.h2
-rw-r--r--src/corelib/io/qfsfileengine_unix.cpp6
-rw-r--r--src/corelib/io/qiodevice.h2
-rw-r--r--src/corelib/io/qprocess.h2
-rw-r--r--src/corelib/io/qresource.h2
-rw-r--r--src/corelib/io/qresource_p.h2
-rw-r--r--src/corelib/io/qsettings.cpp12
-rw-r--r--src/corelib/io/qsettings.h2
-rw-r--r--src/corelib/io/qsettings_p.h2
-rw-r--r--src/corelib/io/qtemporaryfile.cpp4
-rw-r--r--src/corelib/io/qtemporaryfile.h2
-rw-r--r--src/corelib/io/qtextstream.h2
-rw-r--r--src/corelib/kernel/qabstracteventdispatcher.h2
-rw-r--r--src/corelib/kernel/qabstractitemmodel.h2
-rw-r--r--src/corelib/kernel/qcore_symbian_p.cpp8
-rw-r--r--src/corelib/kernel/qcore_symbian_p.h4
-rw-r--r--src/corelib/kernel/qcoreapplication.cpp4
-rw-r--r--src/corelib/kernel/qcoreapplication.h2
-rw-r--r--src/corelib/kernel/qeventdispatcher_glib_p.h2
-rw-r--r--src/corelib/kernel/qeventdispatcher_symbian.cpp44
-rw-r--r--src/corelib/kernel/qeventdispatcher_symbian_p.h5
-rw-r--r--src/corelib/kernel/qeventdispatcher_unix_p.h2
-rw-r--r--src/corelib/kernel/qeventdispatcher_win_p.h2
-rw-r--r--src/corelib/kernel/qeventloop.h2
-rw-r--r--src/corelib/kernel/qmetaobject.cpp2
-rw-r--r--src/corelib/kernel/qmimedata.h2
-rw-r--r--src/corelib/kernel/qobject.cpp99
-rw-r--r--src/corelib/kernel/qobject.h2
-rw-r--r--src/corelib/kernel/qsharedmemory.h2
-rw-r--r--src/corelib/kernel/qsignalmapper.h2
-rw-r--r--src/corelib/kernel/qsocketnotifier.h2
-rw-r--r--src/corelib/kernel/qsystemsemaphore_symbian.cpp4
-rw-r--r--src/corelib/kernel/qtranslator.h2
-rw-r--r--src/corelib/kernel/qvariant.cpp18
-rw-r--r--src/corelib/kernel/qwineventnotifier_p.h2
-rw-r--r--src/corelib/plugin/qfactoryloader_p.h2
-rw-r--r--src/corelib/plugin/qpluginloader.cpp4
-rw-r--r--src/corelib/statemachine/qabstractstate.h2
-rw-r--r--src/corelib/statemachine/qabstracttransition.h2
-rw-r--r--src/corelib/statemachine/qeventtransition.h2
-rw-r--r--src/corelib/statemachine/qfinalstate.h2
-rw-r--r--src/corelib/statemachine/qhistorystate.h2
-rw-r--r--src/corelib/statemachine/qsignaltransition.h2
-rw-r--r--src/corelib/statemachine/qstate.h2
-rw-r--r--src/corelib/statemachine/qstatemachine.h2
-rw-r--r--src/corelib/thread/qthread.cpp2
-rw-r--r--src/corelib/thread/qthread.h4
-rw-r--r--src/corelib/thread/qthread_p.h4
-rw-r--r--src/corelib/thread/qthread_unix.cpp14
-rw-r--r--src/corelib/tools/qbytearray.cpp1
-rw-r--r--src/corelib/tools/qhash.h23
-rw-r--r--src/corelib/tools/qlist.h23
-rw-r--r--src/corelib/tools/qlistdata.cpp40
-rw-r--r--src/corelib/tools/qlocale.cpp17
-rw-r--r--src/corelib/tools/qlocale_symbian.cpp16
-rw-r--r--src/corelib/tools/qmap.h6
-rw-r--r--src/corelib/tools/qregexp.cpp10
-rw-r--r--src/corelib/tools/qringbuffer_p.h7
-rw-r--r--src/corelib/tools/qscopedpointer.cpp38
-rw-r--r--src/corelib/tools/qscopedpointer.h118
-rw-r--r--src/corelib/tools/qstring.cpp9
-rw-r--r--src/corelib/tools/qtimeline.h2
-rw-r--r--src/corelib/xml/qxmlstream.h4
-rw-r--r--src/corelib/xml/qxmlstream_p.h1
-rw-r--r--src/dbus/qdbusabstractadaptor.h2
-rw-r--r--src/dbus/qdbusabstractinterface.h2
-rw-r--r--src/dbus/qdbusinterface.h2
-rw-r--r--src/dbus/qdbuspendingcall.h2
-rw-r--r--src/gui/accessible/qaccessiblewidget.cpp2
-rw-r--r--src/gui/dialogs/qabstractpagesetupdialog.h2
-rw-r--r--src/gui/dialogs/qabstractprintdialog.h2
-rw-r--r--src/gui/dialogs/qcolordialog.h2
-rw-r--r--src/gui/dialogs/qdialog.h2
-rw-r--r--src/gui/dialogs/qerrormessage.h2
-rw-r--r--src/gui/dialogs/qfiledialog.h2
-rw-r--r--src/gui/dialogs/qfilesystemmodel.h2
-rw-r--r--src/gui/dialogs/qfontdialog.h2
-rw-r--r--src/gui/dialogs/qinputdialog.h2
-rw-r--r--src/gui/dialogs/qmessagebox.h2
-rw-r--r--src/gui/dialogs/qpagesetupdialog.h2
-rw-r--r--src/gui/dialogs/qprintdialog.h2
-rw-r--r--src/gui/dialogs/qprintpreviewdialog.h2
-rw-r--r--src/gui/dialogs/qprogressdialog.h2
-rw-r--r--src/gui/dialogs/qwizard.h4
-rw-r--r--src/gui/dialogs/qwizard_win.cpp2
-rw-r--r--src/gui/embedded/qdirectpainter_qws.h2
-rw-r--r--src/gui/embedded/qscreen_qws.cpp2
-rw-r--r--src/gui/embedded/qtransportauth_qws.h2
-rw-r--r--src/gui/embedded/qwindowsystem_qws.cpp14
-rw-r--r--src/gui/embedded/qwindowsystem_qws.h4
-rw-r--r--src/gui/embedded/qwsembedwidget.h2
-rw-r--r--src/gui/embedded/qwsmanager_qws.h2
-rw-r--r--src/gui/graphicsview/qgraphicsgridlayout.h2
-rw-r--r--src/gui/graphicsview/qgraphicsitem.h20
-rw-r--r--src/gui/graphicsview/qgraphicslayout.h2
-rw-r--r--src/gui/graphicsview/qgraphicslayoutitem.h2
-rw-r--r--src/gui/graphicsview/qgraphicslinearlayout.h2
-rw-r--r--src/gui/graphicsview/qgraphicsscene.h2
-rw-r--r--src/gui/graphicsview/qgraphicssceneevent.h18
-rw-r--r--src/gui/graphicsview/qgraphicsview.h2
-rw-r--r--src/gui/image/qimageiohandler.h2
-rw-r--r--src/gui/image/qmovie.h2
-rw-r--r--src/gui/image/qpaintengine_pic_p.h2
-rw-r--r--src/gui/image/qpicture.h2
-rw-r--r--src/gui/image/qpixmap.cpp25
-rw-r--r--src/gui/image/qpixmap_raster.cpp10
-rw-r--r--src/gui/image/qpixmap_s60.cpp4
-rw-r--r--src/gui/image/qpixmapcache.cpp3
-rw-r--r--src/gui/image/qpixmapfilter_p.h8
-rw-r--r--src/gui/inputmethod/qcoefepinputcontext_p.h1
-rw-r--r--src/gui/inputmethod/qcoefepinputcontext_s60.cpp19
-rw-r--r--src/gui/inputmethod/qinputcontext.h2
-rw-r--r--src/gui/inputmethod/qmacinputcontext_p.h2
-rw-r--r--src/gui/itemviews/qabstractitemview.h2
-rw-r--r--src/gui/itemviews/qabstractproxymodel.h2
-rw-r--r--src/gui/itemviews/qcolumnview.h2
-rw-r--r--src/gui/itemviews/qcolumnviewgrip_p.h2
-rw-r--r--src/gui/itemviews/qdatawidgetmapper.h2
-rw-r--r--src/gui/itemviews/qdirmodel.h2
-rw-r--r--src/gui/itemviews/qfileiconprovider.h2
-rw-r--r--src/gui/itemviews/qheaderview.h2
-rw-r--r--src/gui/itemviews/qitemdelegate.h2
-rw-r--r--src/gui/itemviews/qitemselectionmodel.h2
-rw-r--r--src/gui/itemviews/qlistview.h2
-rw-r--r--src/gui/itemviews/qlistwidget.h2
-rw-r--r--src/gui/itemviews/qproxymodel.h2
-rw-r--r--src/gui/itemviews/qsortfilterproxymodel.h2
-rw-r--r--src/gui/itemviews/qstandarditemmodel.h4
-rw-r--r--src/gui/itemviews/qstyleditemdelegate.h2
-rw-r--r--src/gui/itemviews/qtableview.h2
-rw-r--r--src/gui/itemviews/qtablewidget.h2
-rw-r--r--src/gui/itemviews/qtreeview.h2
-rw-r--r--src/gui/itemviews/qtreewidget.h2
-rw-r--r--src/gui/itemviews/qtreewidget_p.h2
-rw-r--r--src/gui/itemviews/qtreewidgetitemiterator.h2
-rw-r--r--src/gui/kernel/kernel.pri12
-rw-r--r--src/gui/kernel/qaction.cpp2
-rw-r--r--src/gui/kernel/qaction.h2
-rw-r--r--src/gui/kernel/qactiongroup.h2
-rw-r--r--src/gui/kernel/qapplication.cpp33
-rw-r--r--src/gui/kernel/qapplication.h2
-rw-r--r--src/gui/kernel/qapplication_qws.cpp12
-rw-r--r--src/gui/kernel/qapplication_s60.cpp49
-rw-r--r--src/gui/kernel/qapplication_win.cpp2
-rw-r--r--src/gui/kernel/qboxlayout.cpp29
-rw-r--r--src/gui/kernel/qboxlayout.h2
-rw-r--r--src/gui/kernel/qclipboard.h2
-rw-r--r--src/gui/kernel/qclipboard_s60.cpp29
-rw-r--r--src/gui/kernel/qdesktopwidget.h2
-rw-r--r--src/gui/kernel/qdesktopwidget_x11.cpp2
-rw-r--r--src/gui/kernel/qdnd_s60.cpp14
-rw-r--r--src/gui/kernel/qdnd_x11.cpp2
-rw-r--r--src/gui/kernel/qdrag.h2
-rw-r--r--src/gui/kernel/qeventdispatcher_glib_qws_p.h2
-rw-r--r--src/gui/kernel/qeventdispatcher_mac_p.h2
-rw-r--r--src/gui/kernel/qeventdispatcher_qws_p.h2
-rw-r--r--src/gui/kernel/qeventdispatcher_s60.cpp2
-rw-r--r--src/gui/kernel/qeventdispatcher_x11_p.h2
-rw-r--r--src/gui/kernel/qformlayout.h2
-rw-r--r--src/gui/kernel/qgesture.h2
-rw-r--r--src/gui/kernel/qgridlayout.h2
-rw-r--r--src/gui/kernel/qguieventdispatcher_glib_p.h2
-rw-r--r--src/gui/kernel/qkeymapper_mac.cpp10
-rw-r--r--src/gui/kernel/qkeymapper_p.h4
-rw-r--r--src/gui/kernel/qkeymapper_win.cpp9
-rw-r--r--src/gui/kernel/qkeysequence.cpp4
-rw-r--r--src/gui/kernel/qlayout.h2
-rw-r--r--src/gui/kernel/qsessionmanager.h2
-rw-r--r--src/gui/kernel/qshortcut.h2
-rw-r--r--src/gui/kernel/qshortcutmap_p.h2
-rw-r--r--src/gui/kernel/qsound.h2
-rw-r--r--src/gui/kernel/qsound_s60.cpp40
-rw-r--r--src/gui/kernel/qstackedlayout.h2
-rw-r--r--src/gui/kernel/qt_s60_p.h16
-rw-r--r--src/gui/kernel/qwidget.cpp98
-rw-r--r--src/gui/kernel/qwidget.h2
-rw-r--r--src/gui/kernel/qwidget_mac.mm6
-rw-r--r--src/gui/kernel/qwidget_p.h7
-rw-r--r--src/gui/kernel/qwidget_qws.cpp9
-rw-r--r--src/gui/kernel/qwidget_s60.cpp97
-rw-r--r--src/gui/kernel/qwidget_win.cpp6
-rw-r--r--src/gui/kernel/qwidget_x11.cpp6
-rw-r--r--src/gui/kernel/qwidgetaction.h2
-rw-r--r--src/gui/kernel/qx11embed_x11.cpp2
-rw-r--r--src/gui/kernel/qx11embed_x11.h4
-rw-r--r--src/gui/painting/painting.pri4
-rw-r--r--src/gui/painting/qblendfunctions_armv6_rvct.s93
-rw-r--r--src/gui/painting/qbrush.cpp10
-rw-r--r--src/gui/painting/qbrush.h4
-rw-r--r--src/gui/painting/qcolormap_s60.cpp1
-rw-r--r--src/gui/painting/qdrawhelper_armv6_rvct.inc170
-rw-r--r--src/gui/painting/qdrawhelper_armv6_rvct.s55
-rw-r--r--src/gui/painting/qgrayraster.c4
-rw-r--r--src/gui/painting/qpaintengine.h2
-rw-r--r--src/gui/painting/qpaintengine_alpha_p.h2
-rw-r--r--src/gui/painting/qpaintengine_mac_p.h2
-rw-r--r--src/gui/painting/qpaintengine_preview_p.h2
-rw-r--r--src/gui/painting/qpaintengine_raster.cpp88
-rw-r--r--src/gui/painting/qpaintengine_raster_p.h16
-rw-r--r--src/gui/painting/qpaintengine_x11.cpp2
-rw-r--r--src/gui/painting/qpaintengine_x11_p.h2
-rw-r--r--src/gui/painting/qpaintengineex_p.h2
-rw-r--r--src/gui/painting/qpainter.cpp19
-rw-r--r--src/gui/painting/qpainter.h6
-rw-r--r--src/gui/painting/qpainterpath.cpp9
-rw-r--r--src/gui/painting/qpainterpath.h8
-rw-r--r--src/gui/painting/qpdf_p.h2
-rw-r--r--src/gui/painting/qprintengine_mac_p.h2
-rw-r--r--src/gui/painting/qprintengine_pdf_p.h2
-rw-r--r--src/gui/painting/qprintengine_ps_p.h2
-rw-r--r--src/gui/painting/qprintengine_qws_p.h2
-rw-r--r--src/gui/painting/qprintengine_win_p.h2
-rw-r--r--src/gui/painting/qprinter.h2
-rw-r--r--src/gui/painting/qprinterinfo.h6
-rw-r--r--src/gui/painting/qprinterinfo_mac.cpp8
-rw-r--r--src/gui/painting/qprinterinfo_unix.cpp8
-rw-r--r--src/gui/painting/qprinterinfo_win.cpp8
-rw-r--r--src/gui/painting/qrasterizer.cpp4
-rw-r--r--src/gui/painting/qtessellator.cpp12
-rw-r--r--src/gui/painting/qwindowsurface_raster_p.h2
-rw-r--r--src/gui/painting/qwindowsurface_s60.cpp9
-rw-r--r--src/gui/painting/qwindowsurface_s60_p.h2
-rw-r--r--src/gui/statemachine/qbasickeyeventtransition_p.h2
-rw-r--r--src/gui/statemachine/qbasicmouseeventtransition_p.h2
-rw-r--r--src/gui/statemachine/qkeyeventtransition.h2
-rw-r--r--src/gui/statemachine/qmouseeventtransition.h2
-rw-r--r--src/gui/styles/qcleanlooksstyle.h2
-rw-r--r--src/gui/styles/qcommonstyle.cpp4
-rw-r--r--src/gui/styles/qcommonstyle.h2
-rw-r--r--src/gui/styles/qgtkstyle.h2
-rw-r--r--src/gui/styles/qmotifstyle.h2
-rw-r--r--src/gui/styles/qplastiquestyle.h2
-rw-r--r--src/gui/styles/qproxystyle.h2
-rw-r--r--src/gui/styles/qs60style.cpp28
-rw-r--r--src/gui/styles/qs60style.h2
-rw-r--r--src/gui/styles/qs60style_p.h4
-rw-r--r--src/gui/styles/qs60style_s60.cpp57
-rw-r--r--src/gui/styles/qstyle.h2
-rw-r--r--src/gui/styles/qstylesheetstyle_p.h2
-rw-r--r--src/gui/styles/qwindowsmobilestyle.h2
-rw-r--r--src/gui/styles/qwindowsstyle.h2
-rw-r--r--src/gui/styles/qwindowsvistastyle.h2
-rw-r--r--src/gui/styles/qwindowsxpstyle.h2
-rw-r--r--src/gui/text/qabstractfontengine_qws.h4
-rw-r--r--src/gui/text/qabstracttextdocumentlayout.h2
-rw-r--r--src/gui/text/qfontdatabase.cpp4
-rw-r--r--src/gui/text/qfontdatabase_qws.cpp86
-rw-r--r--src/gui/text/qfontdatabase_s60.cpp21
-rw-r--r--src/gui/text/qfontengine.cpp4
-rw-r--r--src/gui/text/qfontengine_ft.cpp19
-rw-r--r--src/gui/text/qfontengine_ft_p.h2
-rw-r--r--src/gui/text/qfontengine_s60.cpp8
-rw-r--r--src/gui/text/qfontengine_win.cpp11
-rw-r--r--src/gui/text/qfragmentmap_p.h13
-rw-r--r--src/gui/text/qsyntaxhighlighter.h2
-rw-r--r--src/gui/text/qtextcontrol_p.h2
-rw-r--r--src/gui/text/qtextdocument.h2
-rw-r--r--src/gui/text/qtextdocument_p.cpp76
-rw-r--r--src/gui/text/qtextdocumentlayout_p.h2
-rw-r--r--src/gui/text/qtextformat.cpp16
-rw-r--r--src/gui/text/qtextlist.h2
-rw-r--r--src/gui/text/qtextobject.h6
-rw-r--r--src/gui/text/qtexttable.cpp8
-rw-r--r--src/gui/text/qtexttable.h2
-rw-r--r--src/gui/util/qcompleter.cpp7
-rw-r--r--src/gui/util/qcompleter.h2
-rw-r--r--src/gui/util/qcompleter_p.h5
-rw-r--r--src/gui/util/qdesktopservices.cpp4
-rw-r--r--src/gui/util/qdesktopservices_s60.cpp149
-rw-r--r--src/gui/util/qsystemtrayicon.h2
-rw-r--r--src/gui/util/qundogroup.h2
-rw-r--r--src/gui/util/qundostack.h2
-rw-r--r--src/gui/util/qundoview.h2
-rw-r--r--src/gui/widgets/qabstractbutton.h2
-rw-r--r--src/gui/widgets/qabstractscrollarea.h2
-rw-r--r--src/gui/widgets/qabstractslider.h2
-rw-r--r--src/gui/widgets/qabstractspinbox.h2
-rw-r--r--src/gui/widgets/qbuttongroup.h2
-rw-r--r--src/gui/widgets/qcalendarwidget.h2
-rw-r--r--src/gui/widgets/qcheckbox.h2
-rw-r--r--src/gui/widgets/qcombobox.cpp8
-rw-r--r--src/gui/widgets/qcombobox.h2
-rw-r--r--src/gui/widgets/qcommandlinkbutton.h2
-rw-r--r--src/gui/widgets/qdatetimeedit.h2
-rw-r--r--src/gui/widgets/qdial.h2
-rw-r--r--src/gui/widgets/qdialogbuttonbox.h2
-rw-r--r--src/gui/widgets/qdockwidget.h2
-rw-r--r--src/gui/widgets/qfocusframe.h2
-rw-r--r--src/gui/widgets/qfontcombobox.h2
-rw-r--r--src/gui/widgets/qframe.h2
-rw-r--r--src/gui/widgets/qgroupbox.h2
-rw-r--r--src/gui/widgets/qlabel.h2
-rw-r--r--src/gui/widgets/qlcdnumber.h2
-rw-r--r--src/gui/widgets/qlineedit.h2
-rw-r--r--src/gui/widgets/qmaccocoaviewcontainer_mac.h2
-rw-r--r--src/gui/widgets/qmacnativewidget_mac.h2
-rw-r--r--src/gui/widgets/qmainwindow.h2
-rw-r--r--src/gui/widgets/qmdiarea.h2
-rw-r--r--src/gui/widgets/qmdisubwindow.h2
-rw-r--r--src/gui/widgets/qmenu.cpp2
-rw-r--r--src/gui/widgets/qmenu.h2
-rw-r--r--src/gui/widgets/qmenu_symbian.cpp10
-rw-r--r--src/gui/widgets/qmenubar.h2
-rw-r--r--src/gui/widgets/qplaintextedit.h4
-rw-r--r--src/gui/widgets/qprintpreviewwidget.h2
-rw-r--r--src/gui/widgets/qprogressbar.h2
-rw-r--r--src/gui/widgets/qpushbutton.h2
-rw-r--r--src/gui/widgets/qradiobutton.h2
-rw-r--r--src/gui/widgets/qrubberband.h2
-rw-r--r--src/gui/widgets/qscrollarea.h2
-rw-r--r--src/gui/widgets/qscrollbar.h2
-rw-r--r--src/gui/widgets/qsizegrip.h2
-rw-r--r--src/gui/widgets/qslider.h2
-rw-r--r--src/gui/widgets/qspinbox.h4
-rw-r--r--src/gui/widgets/qsplashscreen.h2
-rw-r--r--src/gui/widgets/qsplitter.h4
-rw-r--r--src/gui/widgets/qstackedwidget.h2
-rw-r--r--src/gui/widgets/qstatusbar.h2
-rw-r--r--src/gui/widgets/qtabbar.h2
-rw-r--r--src/gui/widgets/qtabwidget.h2
-rw-r--r--src/gui/widgets/qtextbrowser.h2
-rw-r--r--src/gui/widgets/qtextedit.h2
-rw-r--r--src/gui/widgets/qtoolbar.h2
-rw-r--r--src/gui/widgets/qtoolbox.h2
-rw-r--r--src/gui/widgets/qtoolbutton.h2
-rw-r--r--src/gui/widgets/qvalidator.h4
-rw-r--r--src/gui/widgets/qworkspace.cpp2
-rw-r--r--src/gui/widgets/qworkspace.h2
-rw-r--r--src/network/access/qabstractnetworkcache.h2
-rw-r--r--src/network/access/qftp.h2
-rw-r--r--src/network/access/qhttp.h8
-rw-r--r--src/network/access/qhttpnetworkconnection_p.h2
-rw-r--r--src/network/access/qhttpnetworkreply_p.h2
-rw-r--r--src/network/access/qnetworkaccessmanager.h2
-rw-r--r--src/network/access/qnetworkcookie.h2
-rw-r--r--src/network/access/qnetworkdiskcache.h2
-rw-r--r--src/network/access/qnetworkreply.h2
-rw-r--r--src/network/access/qnetworkreplyimpl_p.h2
-rw-r--r--src/network/access/qnetworkrequest.h2
-rw-r--r--src/network/kernel/qnetworkinterface.cpp6
-rw-r--r--src/network/kernel/qnetworkinterface_symbian.cpp203
-rw-r--r--src/network/network.pro1
-rw-r--r--src/network/socket/qabstractsocket.h2
-rw-r--r--src/network/socket/qabstractsocketengine_p.h2
-rw-r--r--src/network/socket/qhttpsocketengine_p.h2
-rw-r--r--src/network/socket/qlocalserver.h2
-rw-r--r--src/network/socket/qlocalserver_unix.cpp10
-rw-r--r--src/network/socket/qlocalsocket.h2
-rw-r--r--src/network/socket/qlocalsocket_unix.cpp14
-rw-r--r--src/network/socket/qnativesocketengine.cpp8
-rw-r--r--src/network/socket/qnativesocketengine_p.h6
-rw-r--r--src/network/socket/qnativesocketengine_unix.cpp43
-rw-r--r--src/network/socket/qsocks5socketengine_p.h2
-rw-r--r--src/network/socket/qtcpserver.h2
-rw-r--r--src/network/socket/qtcpsocket.h2
-rw-r--r--src/network/socket/qudpsocket.cpp16
-rw-r--r--src/network/socket/qudpsocket.h2
-rw-r--r--src/network/ssl/qsslsocket.h2
-rw-r--r--src/network/ssl/qsslsocket_openssl_symbols.cpp4
-rw-r--r--src/network/ssl/ssl.pri4
-rw-r--r--src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h2
-rw-r--r--src/opengl/qgl.h4
-rw-r--r--src/opengl/qglframebufferobject.h2
-rw-r--r--src/opengl/qglpaintdevice_qws_p.h2
-rw-r--r--src/opengl/qglpixelbuffer.h2
-rw-r--r--src/opengl/qglscreen_qws.h2
-rw-r--r--src/opengl/qglwindowsurface_qws_p.h2
-rw-r--r--src/opengl/qpaintengine_opengl_p.h2
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.h2
-rw-r--r--src/plugins/imageformats/mng/qmnghandler.h2
-rw-r--r--src/plugins/qpluginbase.pri2
-rw-r--r--src/plugins/s60/5_0/5_0.pro2
-rw-r--r--src/plugins/s60/bwins/qts60pluginu.def1
-rw-r--r--src/plugins/s60/eabi/qts60pluginu.def1
-rw-r--r--src/plugins/s60/s60pluginbase.pri2
-rw-r--r--src/plugins/s60/src/qdesktopservices_3_1.cpp1
-rw-r--r--src/plugins/s60/src/qdesktopservices_3_2.cpp19
-rw-r--r--src/plugins/sqldrivers/sqlite_symbian/sqlite_symbian.pro1
-rw-r--r--src/qt3support/other/q3dragobject.h8
-rw-r--r--src/qt3support/painting/q3paintengine_svg_p.h2
-rw-r--r--src/qt3support/widgets/q3mainwindow.h2
-rw-r--r--src/qt3support/widgets/q3titlebar_p.h2
-rw-r--r--src/s60installs/qt.iby2
-rw-r--r--src/s60installs/qt_libs.pro40
-rw-r--r--src/s60main/qts60main.cpp13
-rw-r--r--src/s60main/qts60main_mcrt0.cpp35
-rw-r--r--src/s60main/qts60mainapplication.cpp17
-rw-r--r--src/s60main/qts60mainapplication.h1
-rw-r--r--src/s60main/qts60mainappui.cpp43
-rw-r--r--src/s60main/qts60mainappui.h3
-rw-r--r--src/s60main/qts60maindocument.cpp43
-rw-r--r--src/s60main/qts60maindocument.h1
-rw-r--r--src/s60main/s60main.pro14
-rw-r--r--src/s60main/s60main.rss1
-rw-r--r--src/script/qscriptable.h2
-rw-r--r--src/script/qscriptclass.h2
-rw-r--r--src/script/qscriptclasspropertyiterator.h2
-rw-r--r--src/script/qscriptcontext.h2
-rw-r--r--src/script/qscriptcontextinfo.h2
-rw-r--r--src/script/qscriptengine.h4
-rw-r--r--src/script/qscriptengineagent.h2
-rw-r--r--src/script/qscriptstring.cpp8
-rw-r--r--src/script/qscriptstring.h6
-rw-r--r--src/script/qscriptvalue.cpp8
-rw-r--r--src/script/qscriptvalue.h6
-rw-r--r--src/script/qscriptvalueiterator.h2
-rw-r--r--src/scripttools/debugging/qscriptbreakpointdata_p.h2
-rw-r--r--src/scripttools/debugging/qscriptbreakpointsmodel_p.h2
-rw-r--r--src/scripttools/debugging/qscriptbreakpointswidget_p.h2
-rw-r--r--src/scripttools/debugging/qscriptbreakpointswidgetinterface_p.h2
-rw-r--r--src/scripttools/debugging/qscriptcompletiontask_p.h2
-rw-r--r--src/scripttools/debugging/qscriptcompletiontaskinterface_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebugger_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggeragent_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggerbackend_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodefinderwidget_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodefinderwidgetinterface_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodeview_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodeviewinterface_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodewidget_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodewidgetinterface_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggercommand_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggercommandexecutor_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggercommandschedulerjob_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsole_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolecommand_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolecommandgroupdata_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolecommandjob_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolecommandmanager_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsoleglobalobject_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolewidget_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggerconsolewidgetinterface_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggerevent_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggerfrontend_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggerjob_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggerlocalsmodel_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggerlocalswidget_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggerlocalswidgetinterface_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggerresponse_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand.cpp2
-rw-r--r--src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggerscriptsmodel_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggerscriptswidget_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggerscriptswidgetinterface_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggerstackmodel_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggerstackwidget_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggerstackwidgetinterface_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggervalue_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebuggervalueproperty_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebugoutputwidget_p.h2
-rw-r--r--src/scripttools/debugging/qscriptdebugoutputwidgetinterface_p.h2
-rw-r--r--src/scripttools/debugging/qscriptenginedebugger.h2
-rw-r--r--src/scripttools/debugging/qscriptenginedebuggerfrontend.cpp2
-rw-r--r--src/scripttools/debugging/qscriptenginedebuggerfrontend_p.h2
-rw-r--r--src/scripttools/debugging/qscripterrorlogwidget_p.h2
-rw-r--r--src/scripttools/debugging/qscripterrorlogwidgetinterface_p.h2
-rw-r--r--src/scripttools/debugging/qscriptscriptdata_p.h2
-rw-r--r--src/scripttools/debugging/qscriptstdmessagehandler_p.h2
-rw-r--r--src/scripttools/debugging/qscriptvalueproperty_p.h2
-rw-r--r--src/sql/kernel/qsqldriver.h2
-rw-r--r--src/sql/models/qsqlquerymodel.h2
-rw-r--r--src/sql/models/qsqlrelationaltablemodel.h2
-rw-r--r--src/sql/models/qsqltablemodel.h2
-rw-r--r--src/sql/sql.pro3
-rw-r--r--src/svg/qgraphicssvgitem.h2
-rw-r--r--src/svg/qsvggenerator.cpp2
-rw-r--r--src/svg/qsvggenerator.h2
-rw-r--r--src/svg/qsvgrenderer.h2
-rw-r--r--src/svg/qsvgwidget.h2
-rw-r--r--src/testlib/qplaintestlogger.cpp18
-rw-r--r--src/xml/sax/qxml.h2
-rw-r--r--src/xmlpatterns/api/qabstractmessagehandler.h2
-rw-r--r--src/xmlpatterns/api/qabstracturiresolver.h2
-rw-r--r--src/xmlpatterns/api/qsimplexmlnodemodel.h2
-rw-r--r--src/xmlpatterns/api/qxmlformatter.h2
-rw-r--r--src/xmlpatterns/api/qxmlresultitems.h2
-rw-r--r--src/xmlpatterns/api/qxmlserializer.h2
505 files changed, 2139 insertions, 1693 deletions
diff --git a/src/3rdparty/freetype/src/base/ftobjs.c b/src/3rdparty/freetype/src/base/ftobjs.c
index 8208e2a451..f90af67496 100644
--- a/src/3rdparty/freetype/src/base/ftobjs.c
+++ b/src/3rdparty/freetype/src/base/ftobjs.c
@@ -244,7 +244,7 @@
FT_BASE_DEF( void )
ft_glyphslot_free_bitmap( FT_GlyphSlot slot )
{
- if ( slot->internal->flags & FT_GLYPH_OWN_BITMAP )
+ if ( slot->internal && slot->internal->flags & FT_GLYPH_OWN_BITMAP )
{
FT_Memory memory = FT_FACE_MEMORY( slot->face );
@@ -337,14 +337,18 @@
/* free bitmap buffer if needed */
ft_glyphslot_free_bitmap( slot );
- /* free glyph loader */
- if ( FT_DRIVER_USES_OUTLINES( driver ) )
+ /* slot->internal might be 0 in out-of-memory situations */
+ if ( slot->internal )
{
- FT_GlyphLoader_Done( slot->internal->loader );
- slot->internal->loader = 0;
- }
+ /* free glyph loader */
+ if ( FT_DRIVER_USES_OUTLINES( driver ) )
+ {
+ FT_GlyphLoader_Done( slot->internal->loader );
+ slot->internal->loader = 0;
+ }
- FT_FREE( slot->internal );
+ FT_FREE( slot->internal );
+ }
}
@@ -1096,7 +1100,7 @@
if ( error )
{
destroy_charmaps( face, memory );
- if ( clazz->done_face )
+ if ( clazz->done_face && face )
clazz->done_face( face );
FT_FREE( internal );
FT_FREE( face );
diff --git a/src/3rdparty/freetype/src/base/ftstream.c b/src/3rdparty/freetype/src/base/ftstream.c
index 569e46c79b..2082345301 100644
--- a/src/3rdparty/freetype/src/base/ftstream.c
+++ b/src/3rdparty/freetype/src/base/ftstream.c
@@ -211,7 +211,7 @@
FT_Stream_ReleaseFrame( FT_Stream stream,
FT_Byte** pbytes )
{
- if ( stream->read )
+ if ( stream && stream->read )
{
FT_Memory memory = stream->memory;
diff --git a/src/3rdparty/freetype/src/truetype/ttinterp.c b/src/3rdparty/freetype/src/truetype/ttinterp.c
index f9c36560ed..143ca65a69 100644
--- a/src/3rdparty/freetype/src/truetype/ttinterp.c
+++ b/src/3rdparty/freetype/src/truetype/ttinterp.c
@@ -799,8 +799,6 @@
return driver->context;
Fail:
- FT_FREE( exec );
-
return 0;
}
diff --git a/src/3rdparty/freetype/src/truetype/ttpload.c b/src/3rdparty/freetype/src/truetype/ttpload.c
index 9d3381bf05..38674a13b7 100644
--- a/src/3rdparty/freetype/src/truetype/ttpload.c
+++ b/src/3rdparty/freetype/src/truetype/ttpload.c
@@ -483,10 +483,10 @@
tt_face_free_hdmx( TT_Face face )
{
FT_Stream stream = face->root.stream;
- FT_Memory memory = stream->memory;
-
+ FT_Memory memory = stream ? stream->memory : NULL;
- FT_FREE( face->hdmx_record_sizes );
+ if ( face->hdmx_record_sizes )
+ FT_FREE( face->hdmx_record_sizes );
FT_FRAME_RELEASE( face->hdmx_table );
}
diff --git a/src/3rdparty/harfbuzz/src/harfbuzz-shaper.cpp b/src/3rdparty/harfbuzz/src/harfbuzz-shaper.cpp
index 2e3ef3806f..f92bb55c9c 100644
--- a/src/3rdparty/harfbuzz/src/harfbuzz-shaper.cpp
+++ b/src/3rdparty/harfbuzz/src/harfbuzz-shaper.cpp
@@ -969,6 +969,7 @@ HB_Face HB_NewFace(void *font, HB_GetFontTableFunc tableFunc)
face->tmpAttributes = 0;
face->tmpLogClusters = 0;
face->glyphs_substituted = false;
+ face->buffer = 0;
HB_Error error;
HB_Stream stream;
@@ -1004,7 +1005,10 @@ HB_Face HB_NewFace(void *font, HB_GetFontTableFunc tableFunc)
for (unsigned int i = 0; i < HB_ScriptCount; ++i)
face->supported_scripts[i] = checkScript(face, i);
- hb_buffer_new(&face->buffer);
+ if (hb_buffer_new(&face->buffer) != HB_Err_Ok) {
+ HB_FreeFace(face);
+ return 0;
+ }
return face;
}
@@ -1124,6 +1128,8 @@ HB_Bool HB_SelectScript(HB_ShaperItem *shaper_item, const HB_OpenTypeFeature *fe
HB_Bool HB_OpenTypeShape(HB_ShaperItem *item, const hb_uint32 *properties)
{
+ HB_GlyphAttributes *tmpAttributes;
+ unsigned int *tmpLogClusters;
HB_Face face = item->face;
@@ -1131,8 +1137,16 @@ HB_Bool HB_OpenTypeShape(HB_ShaperItem *item, const hb_uint32 *properties)
hb_buffer_clear(face->buffer);
- face->tmpAttributes = (HB_GlyphAttributes *) realloc(face->tmpAttributes, face->length*sizeof(HB_GlyphAttributes));
- face->tmpLogClusters = (unsigned int *) realloc(face->tmpLogClusters, face->length*sizeof(unsigned int));
+ tmpAttributes = (HB_GlyphAttributes *) realloc(face->tmpAttributes, face->length*sizeof(HB_GlyphAttributes));
+ if (!tmpAttributes)
+ return false;
+ face->tmpAttributes = tmpAttributes;
+
+ tmpLogClusters = (unsigned int *) realloc(face->tmpLogClusters, face->length*sizeof(unsigned int));
+ if (!tmpLogClusters)
+ return false;
+ face->tmpLogClusters = tmpLogClusters;
+
for (int i = 0; i < face->length; ++i) {
hb_buffer_add_glyph(face->buffer, item->glyphs[i], properties ? properties[i] : 0, i);
face->tmpAttributes[i] = item->attributes[i];
diff --git a/src/3rdparty/libtiff/libtiff/tif_config.h b/src/3rdparty/libtiff/libtiff/tif_config.h
index 9dbc469811..a6bb35ddae 100644
--- a/src/3rdparty/libtiff/libtiff/tif_config.h
+++ b/src/3rdparty/libtiff/libtiff/tif_config.h
@@ -284,10 +284,12 @@
/* Define to `__inline__' or `__inline' if that's what the C compiler
calls it, or to nothing if 'inline' is not supported under any name. */
+#ifndef Q_OS_SYMBIAN
#ifndef __cplusplus
#undef inline
#define inline
#endif
+#endif
/* Define to `long' if <sys/types.h> does not define. */
/* #undef off_t */
diff --git a/src/3rdparty/phonon/phonon/abstractmediastream.h b/src/3rdparty/phonon/phonon/abstractmediastream.h
index c4cde85fb9..be45861b28 100644
--- a/src/3rdparty/phonon/phonon/abstractmediastream.h
+++ b/src/3rdparty/phonon/phonon/abstractmediastream.h
@@ -103,7 +103,7 @@ class AbstractMediaStreamPrivate;
class PHONON_EXPORT AbstractMediaStream : public QObject
{
Q_OBJECT
- Q_DECLARE_PRIVATE(AbstractMediaStream)
+ Q_DECLARE_SCOPED_PRIVATE(AbstractMediaStream)
friend class MediaObject;
friend class MediaObjectPrivate;
friend class StreamInterface;
diff --git a/src/3rdparty/phonon/phonon/iodevicestream_p.h b/src/3rdparty/phonon/phonon/iodevicestream_p.h
index 5eb90bcae4..527ff17b55 100644
--- a/src/3rdparty/phonon/phonon/iodevicestream_p.h
+++ b/src/3rdparty/phonon/phonon/iodevicestream_p.h
@@ -39,7 +39,7 @@ class IODeviceStreamPrivate;
class IODeviceStream : public AbstractMediaStream
{
Q_OBJECT
- Q_DECLARE_PRIVATE(IODeviceStream)
+ Q_DECLARE_SCOPED_PRIVATE(IODeviceStream)
public:
explicit IODeviceStream(QIODevice *ioDevice, QObject *parent = 0);
~IODeviceStream();
diff --git a/src/corelib/animation/qabstractanimation.h b/src/corelib/animation/qabstractanimation.h
index e4b1fcc876..8da0935ec0 100644
--- a/src/corelib/animation/qabstractanimation.h
+++ b/src/corelib/animation/qabstractanimation.h
@@ -125,7 +125,7 @@ protected:
private:
Q_DISABLE_COPY(QAbstractAnimation)
- Q_DECLARE_PRIVATE(QAbstractAnimation)
+ Q_DECLARE_SCOPED_PRIVATE(QAbstractAnimation)
};
#endif //QT_NO_ANIMATION
diff --git a/src/corelib/animation/qanimationgroup.h b/src/corelib/animation/qanimationgroup.h
index 93c6fb1457..5b07524f16 100644
--- a/src/corelib/animation/qanimationgroup.h
+++ b/src/corelib/animation/qanimationgroup.h
@@ -76,7 +76,7 @@ protected:
private:
Q_DISABLE_COPY(QAnimationGroup)
- Q_DECLARE_PRIVATE(QAnimationGroup)
+ Q_DECLARE_SCOPED_PRIVATE(QAnimationGroup)
};
#endif //QT_NO_ANIMATION
diff --git a/src/corelib/animation/qparallelanimationgroup.h b/src/corelib/animation/qparallelanimationgroup.h
index 07808f11c3..84221025c4 100644
--- a/src/corelib/animation/qparallelanimationgroup.h
+++ b/src/corelib/animation/qparallelanimationgroup.h
@@ -73,7 +73,7 @@ protected:
private:
Q_DISABLE_COPY(QParallelAnimationGroup)
- Q_DECLARE_PRIVATE(QParallelAnimationGroup)
+ Q_DECLARE_SCOPED_PRIVATE(QParallelAnimationGroup)
Q_PRIVATE_SLOT(d_func(), void _q_uncontrolledAnimationFinished())
};
diff --git a/src/corelib/animation/qpauseanimation.h b/src/corelib/animation/qpauseanimation.h
index 6907d0a2eb..b84e940d8f 100644
--- a/src/corelib/animation/qpauseanimation.h
+++ b/src/corelib/animation/qpauseanimation.h
@@ -72,7 +72,7 @@ protected:
private:
Q_DISABLE_COPY(QPauseAnimation)
- Q_DECLARE_PRIVATE(QPauseAnimation)
+ Q_DECLARE_SCOPED_PRIVATE(QPauseAnimation)
};
#endif //QT_NO_ANIMATION
diff --git a/src/corelib/animation/qpropertyanimation.h b/src/corelib/animation/qpropertyanimation.h
index e07444c4e5..6631f67178 100644
--- a/src/corelib/animation/qpropertyanimation.h
+++ b/src/corelib/animation/qpropertyanimation.h
@@ -78,7 +78,7 @@ protected:
private:
Q_PRIVATE_SLOT(d_func(), void _q_targetDestroyed())
Q_DISABLE_COPY(QPropertyAnimation)
- Q_DECLARE_PRIVATE(QPropertyAnimation)
+ Q_DECLARE_SCOPED_PRIVATE(QPropertyAnimation)
};
#endif //QT_NO_ANIMATION
diff --git a/src/corelib/animation/qsequentialanimationgroup.h b/src/corelib/animation/qsequentialanimationgroup.h
index 5d433560fb..81a7ff5c54 100644
--- a/src/corelib/animation/qsequentialanimationgroup.h
+++ b/src/corelib/animation/qsequentialanimationgroup.h
@@ -83,7 +83,7 @@ protected:
private:
Q_DISABLE_COPY(QSequentialAnimationGroup)
- Q_DECLARE_PRIVATE(QSequentialAnimationGroup)
+ Q_DECLARE_SCOPED_PRIVATE(QSequentialAnimationGroup)
Q_PRIVATE_SLOT(d_func(), void _q_uncontrolledAnimationFinished())
};
diff --git a/src/corelib/animation/qvariantanimation.h b/src/corelib/animation/qvariantanimation.h
index 3e397ca76d..8c75fc1008 100644
--- a/src/corelib/animation/qvariantanimation.h
+++ b/src/corelib/animation/qvariantanimation.h
@@ -113,7 +113,7 @@ private:
static void registerInterpolator(Interpolator func, int interpolationType);
Q_DISABLE_COPY(QVariantAnimation)
- Q_DECLARE_PRIVATE(QVariantAnimation)
+ Q_DECLARE_SCOPED_PRIVATE(QVariantAnimation)
};
template <typename T>
diff --git a/src/corelib/arch/symbian/qatomic_symbian.cpp b/src/corelib/arch/symbian/qatomic_symbian.cpp
index 170b737dd2..a22869669a 100644
--- a/src/corelib/arch/symbian/qatomic_symbian.cpp
+++ b/src/corelib/arch/symbian/qatomic_symbian.cpp
@@ -42,6 +42,37 @@
#include <QtCore/qglobal.h>
#include <QtCore/qatomic.h>
+#include <e32debug.h>
+
+// Heap and handle info printer. This code is placed here as it happens to make it the very last static to be destroyed in a Qt app.
+// This way we can report on heap cells and handles that are really not owned by anything which still exists.
+// This information can be used to detect whether memory leaks are happening, particularly if these numbers grow as the app is used more.
+struct SPrintExitInfo
+{
+ SPrintExitInfo()
+ {
+ RThread().HandleCount(initProcessHandleCount,initThreadHandleCount);
+ initCells = User::CountAllocCells();
+ }
+ ~SPrintExitInfo()
+ {
+ RProcess myProc;
+ TFullName fullName = myProc.FileName();
+ TInt cells = User::CountAllocCells();
+ TInt processHandleCount=0;
+ TInt threadHandleCount=0;
+ RThread().HandleCount(processHandleCount,threadHandleCount);
+ RDebug::Print(_L("%S exiting with %d allocated cells, %d handles"),
+ &fullName,
+ cells - initCells,
+ (processHandleCount + threadHandleCount) - (initProcessHandleCount + initThreadHandleCount));
+ }
+ TInt initCells;
+ TInt initProcessHandleCount;
+ TInt initThreadHandleCount;
+} printExitInfo;
+
+
#if defined(Q_CC_RVCT)
#include "../arm/qatomic_arm.cpp"
@@ -76,4 +107,3 @@ __declspec(dllexport) __asm int QBasicAtomicInt::fetchAndStoreOrdered(int newVal
QT_END_NAMESPACE
#endif // Q_CC_RVCT
-
diff --git a/src/corelib/concurrent/qfuturewatcher.h b/src/corelib/concurrent/qfuturewatcher.h
index 04d5680c08..948eccaf83 100644
--- a/src/corelib/concurrent/qfuturewatcher.h
+++ b/src/corelib/concurrent/qfuturewatcher.h
@@ -59,7 +59,7 @@ class QFutureWatcherBasePrivate;
class Q_CORE_EXPORT QFutureWatcherBase : public QObject
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QFutureWatcherBase)
+ Q_DECLARE_SCOPED_PRIVATE(QFutureWatcherBase)
public:
QFutureWatcherBase(QObject *parent = 0);
diff --git a/src/corelib/concurrent/qthreadpool.h b/src/corelib/concurrent/qthreadpool.h
index 0ddefd1dbf..dddf9629c9 100644
--- a/src/corelib/concurrent/qthreadpool.h
+++ b/src/corelib/concurrent/qthreadpool.h
@@ -58,7 +58,7 @@ class QThreadPoolPrivate;
class Q_CORE_EXPORT QThreadPool : public QObject
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QThreadPool)
+ Q_DECLARE_SCOPED_PRIVATE(QThreadPool)
Q_PROPERTY(int expiryTimeout READ expiryTimeout WRITE setExpiryTimeout)
Q_PROPERTY(int maxThreadCount READ maxThreadCount WRITE setMaxThreadCount)
Q_PROPERTY(int activeThreadCount READ activeThreadCount)
diff --git a/src/corelib/global/qglobal.cpp b/src/corelib/global/qglobal.cpp
index 375f4aa826..a6901d92d2 100644
--- a/src/corelib/global/qglobal.cpp
+++ b/src/corelib/global/qglobal.cpp
@@ -1903,6 +1903,15 @@ QSysInfo::SymVersion QSysInfo::symbianVersion()
*/
/*!
+ T *q_check_ptr(T *pointer)
+ \relates <QtGlobal>
+
+ Users Q_CHECK_PTR on \a pointer, then returns \a pointer.
+
+ This can be used as an inline version of Q_CHECK_PTR.
+*/
+
+/*!
\macro const char* Q_FUNC_INFO()
\relates <QtGlobal>
@@ -2086,8 +2095,8 @@ QString qt_error_string(int errorCode)
warnings, critical and fatal error messages. The Qt library (debug
mode) contains hundreds of warning messages that are printed
when internal errors (usually invalid function arguments)
- occur. Qt built in release mode also contains such warnings unless
- QT_NO_WARNING_OUTPUT and/or QT_NO_DEBUG_OUTPUT have been set during
+ occur. Qt built in release mode also contains such warnings unless
+ QT_NO_WARNING_OUTPUT and/or QT_NO_DEBUG_OUTPUT have been set during
compilation. If you implement your own message handler, you get total
control of these messages.
@@ -2142,7 +2151,7 @@ void qt_message_output(QtMsgType msgType, const char *buf)
_LIT(format, "[Qt Message] %S");
const int maxBlockSize = 256 - ((const TDesC &)format).Length();
const TPtrC8 ptr(reinterpret_cast<const TUint8*>(buf));
- HBufC* hbuffer = HBufC::NewL(qMin(maxBlockSize, ptr.Length()));
+ HBufC* hbuffer = q_check_ptr(HBufC::New(qMin(maxBlockSize, ptr.Length())));
for (int i = 0; i < ptr.Length(); i += hbuffer->Length()) {
hbuffer->Des().Copy(ptr.Mid(i, qMin(maxBlockSize, ptr.Length()-i)));
RDebug::Print(format, hbuffer);
@@ -2444,7 +2453,11 @@ bool qputenv(const char *varName, const QByteArray& value)
QByteArray buffer(varName);
buffer += '=';
buffer += value;
- return putenv(qstrdup(buffer.constData())) == 0;
+ char* envVar = qstrdup(buffer.constData());
+ int result = putenv(envVar);
+ if (result != 0) // error. we have to delete the string.
+ delete[] envVar;
+ return result == 0;
#endif
}
@@ -2483,7 +2496,7 @@ Q_GLOBAL_STATIC(SeedStorage, randTLS) // Thread Local Storage for seed value
*/
void qsrand(uint seed)
{
-#if defined(Q_OS_UNIX) && !defined(QT_NO_THREAD) && !defined(Q_OS_SYMBIAN)
+#if defined(Q_OS_UNIX) && !defined(QT_NO_THREAD) && !defined(Q_OS_SYMBIAN)
SeedStorageType *pseed = randTLS()->localData();
if (!pseed)
randTLS()->setLocalData(pseed = new SeedStorageType);
@@ -3202,7 +3215,7 @@ bool QInternal::callFunction(InternalFunction func, void **args)
Compares the floating point value \a p1 and \a p2 and
returns \c true if they are considered equal, otherwise \c false.
- Note that comparing values where either \a p1 or \a p2 is 0.0 will not work.
+ Note that comparing values where either \a p1 or \a p2 is 0.0 will not work.
The solution to this is to compare against values greater than or equal to 1.0.
\snippet doc/src/snippets/code/src_corelib_global_qglobal.cpp 46
@@ -3267,7 +3280,7 @@ bool QInternal::callFunction(InternalFunction func, void **args)
#include <typeinfo>
-/*! \macro QT_TRANSLATE_SYMBIAN_LEAVE_TO_EXCEPTION(function)
+/*! \macro QT_TRAP_THROWING(function)
\relates <QtGlobal>
\ingroup qts60
@@ -3287,14 +3300,14 @@ bool QInternal::callFunction(InternalFunction func, void **args)
CAknTitlePane* titlePane = S60->titlePane();
if (titlePane) {
TPtrC captionPtr(qt_QString2TPtrC(caption));
- QT_TRANSLATE_SYMBIAN_LEAVE_TO_EXCEPTION(titlePane->SetTextL(captionPtr));
+ QT_TRAP_THROWING(titlePane->SetTextL(captionPtr));
}
\endcode
- \sa QT_TRANSLATE_EXCEPTION_TO_SYMBIAN_ERROR(), QT_TRANSLATE_EXCEPTION_TO_SYMBIAN_LEAVE()
+ \sa QT_TRYCATCH_ERROR(), QT_TRYCATCH_LEAVING()
*/
-/*! \macro QT_TRANSLATE_EXCEPTION_TO_SYMBIAN_ERROR(error, function)
+/*! \macro QT_TRYCATCH_ERROR(error, function)
\relates <QtGlobal>
\ingroup qts60
@@ -3314,7 +3327,7 @@ bool QInternal::callFunction(InternalFunction func, void **args)
{
TPtrC name;
TInt err;
- QT_TRANSLATE_EXCEPTION_TO_SYMBIAN_ERROR(err, name.Set(qt_QString2TPtrC(serverName)));
+ QT_TRYCATCH_ERROR(err, name.Set(qt_QString2TPtrC(serverName)));
if (err != KErrNone)
return err;
return iServer.Connect(name);
@@ -3322,10 +3335,10 @@ bool QInternal::callFunction(InternalFunction func, void **args)
\endcode
}
- \sa QT_TRANSLATE_EXCEPTION_TO_SYMBIAN_LEAVE(), QT_TRANSLATE_SYMBIAN_LEAVE_TO_EXCEPTION()
+ \sa QT_TRYCATCH_LEAVING(), QT_TRAP_THROWING()
*/
-/*! \macro QT_TRANSLATE_EXCEPTION_TO_SYMBIAN_LEAVE(function)
+/*! \macro QT_TRYCATCH_LEAVING(function)
\relates <QtGlobal>
\ingroup qts60
@@ -3345,11 +3358,11 @@ bool QInternal::callFunction(InternalFunction func, void **args)
{
iStatus = KRequestPending;
SetActive();
- QT_TRANSLATE_EXCEPTION_TO_SYMBIAN_LEAVE(m_dispatcher->wakeUpWasCalled());
+ QT_TRYCATCH_LEAVING(m_dispatcher->wakeUpWasCalled());
}
\endcode
- \sa QT_TRANSLATE_SYMBIAN_LEAVE_TO_EXCEPTION(), QT_TRANSLATE_EXCEPTION_TO_SYMBIAN_ERROR()
+ \sa QT_TRAP_THROWING(), QT_TRYCATCH_ERROR()
*/
#include <stdexcept>
@@ -3372,15 +3385,21 @@ public:
\warning This function is only available on Symbian.
- \sa qt_translateExceptionToSymbianErrorL(), qt_translateExceptionToSymbianError()
+ \sa qt_exception2SymbianLeaveL(), qt_exception2SymbianError()
*/
-void qt_translateSymbianErrorToException(int error)
+void qt_throwIfError(int error)
{
if (error >= KErrNone)
return; // do nothing - not an exception
switch (error) {
case KErrNoMemory:
throw std::bad_alloc();
+ case KErrArgument:
+ throw std::invalid_argument("from Symbian error");
+ case KErrOverflow:
+ throw std::overflow_error("from Symbian error");
+ case KErrUnderflow:
+ throw std::underflow_error("from Symbian error");
default:
throw QSymbianLeaveException(error);
}
@@ -3393,11 +3412,11 @@ void qt_translateSymbianErrorToException(int error)
\warning This function is only available on Symbian.
- \sa qt_translateSymbianErrorToException(), qt_translateExceptionToSymbianError()
+ \sa qt_throwIfError(), qt_exception2SymbianError()
*/
-void qt_translateExceptionToSymbianErrorL(const std::exception& aThrow)
+void qt_exception2SymbianLeaveL(const std::exception& aThrow)
{
- User::Leave(qt_translateExceptionToSymbianError(aThrow));
+ User::Leave(qt_exception2SymbianError(aThrow));
}
/*! \relates <QtGlobal>
@@ -3407,9 +3426,9 @@ void qt_translateExceptionToSymbianErrorL(const std::exception& aThrow)
\warning This function is only available on Symbian.
- \sa qt_translateSymbianErrorToException(), qt_translateExceptionToSymbianErrorL()
+ \sa qt_throwIfError(), qt_exception2SymbianLeaveL()
*/
-int qt_translateExceptionToSymbianError(const std::exception& aThrow)
+int qt_exception2SymbianError(const std::exception& aThrow)
{
const std::type_info& atype = typeid(aThrow);
int err = KErrGeneral;
@@ -3418,18 +3437,21 @@ int qt_translateExceptionToSymbianError(const std::exception& aThrow)
err = KErrNoMemory;
else if(atype == typeid(QSymbianLeaveException))
err = static_cast<const QSymbianLeaveException&>(aThrow).error;
- else if(atype == typeid(std::invalid_argument))
- err = KErrArgument;
- else if(atype == typeid(std::out_of_range))
- // std::out_of_range is of type logic_error which by definition means that it is
- // "presumably detectable before the program executes".
- // std::out_of_range is used to report an argument is not within the expected range.
- // The description of KErrArgument says an argument is out of range. Hence the mapping.
- err = KErrArgument;
- else if(atype == typeid(std::overflow_error))
- err = KErrOverflow;
- else if(atype == typeid(std::underflow_error))
- err = KErrUnderflow;
+ else {
+ if(atype == typeid(std::invalid_argument))
+ err = KErrArgument;
+ else if(atype == typeid(std::out_of_range))
+ // std::out_of_range is of type logic_error which by definition means that it is
+ // "presumably detectable before the program executes".
+ // std::out_of_range is used to report an argument is not within the expected range.
+ // The description of KErrArgument says an argument is out of range. Hence the mapping.
+ err = KErrArgument;
+ else if(atype == typeid(std::overflow_error))
+ err = KErrOverflow;
+ else if(atype == typeid(std::underflow_error))
+ err = KErrUnderflow;
+ qWarning("translation from std exception \"%s\" to %d", aThrow.what(), err);
+ }
return err;
}
diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h
index 9013416b51..dc3667b559 100644
--- a/src/corelib/global/qglobal.h
+++ b/src/corelib/global/qglobal.h
@@ -906,9 +906,9 @@ QT_END_INCLUDE_NAMESPACE
*/
#ifndef QT_LINUXBASE /* the LSB defines TRUE and FALSE for us */
-/* Symbian OS defines TRUE = 1 and FALSE = 0,
+/* Symbian OS defines TRUE = 1 and FALSE = 0,
redefine to built-in booleans to make autotests work properly */
-#ifdef Q_OS_SYMBIAN
+#ifdef Q_OS_SYMBIAN
#undef TRUE
#undef FALSE
#endif
@@ -1651,6 +1651,9 @@ Q_CORE_EXPORT void qBadAlloc();
# define Q_CHECK_PTR(p) do { if (!(p)) qBadAlloc(); } while (0)
#endif
+template <typename T>
+inline T *q_check_ptr(T *p) { Q_CHECK_PTR(p); return p; }
+
#if (defined(Q_CC_GNU) && !defined(Q_OS_SOLARIS)) || defined(Q_CC_HPACC) || defined(Q_CC_DIAB)
# define Q_FUNC_INFO __PRETTY_FUNCTION__
#elif defined(_MSC_VER)
@@ -2283,6 +2286,11 @@ inline const QForeachContainer<T> *qForeachContainer(const QForeachContainerBase
#endif
#define Q_DECLARE_PRIVATE(Class) \
+ inline Class##Private* d_func() { return reinterpret_cast<Class##Private *>(d_ptr); } \
+ inline const Class##Private* d_func() const { return reinterpret_cast<const Class##Private *>(d_ptr); } \
+ friend class Class##Private;
+
+#define Q_DECLARE_SCOPED_PRIVATE(Class) \
inline Class##Private* d_func() { return reinterpret_cast<Class##Private *>(d_ptr.data()); } \
inline const Class##Private* d_func() const { return reinterpret_cast<const Class##Private *>(d_ptr.data()); } \
friend class Class##Private;
@@ -2390,33 +2398,32 @@ QT_END_NAMESPACE
namespace std { class exception; }
#endif
QT_BEGIN_NAMESPACE
-Q_CORE_EXPORT void qt_translateSymbianErrorToException(int error);
-Q_CORE_EXPORT void qt_translateExceptionToSymbianErrorL(const std::exception& ex);
-Q_CORE_EXPORT int qt_translateExceptionToSymbianError(const std::exception& ex);
+Q_CORE_EXPORT void qt_throwIfError(int error);
+Q_CORE_EXPORT void qt_exception2SymbianLeaveL(const std::exception& ex);
+Q_CORE_EXPORT int qt_exception2SymbianError(const std::exception& ex);
-#define QT_TRANSLATE_SYMBIAN_LEAVE_TO_EXCEPTION(f) \
+#define QT_TRAP_THROWING(_f) \
{ \
- TInt error; \
- TRAP(error, f); \
- if (error) \
- qt_translateSymbianErrorToException(error); \
+ TInt ____error; \
+ TRAP(____error, _f); \
+ qt_throwIfError(____error); \
}
-#define QT_TRANSLATE_EXCEPTION_TO_SYMBIAN_ERROR(err, f) \
+#define QT_TRYCATCH_ERROR(_err, _f) \
{ \
- err = KErrNone; \
+ _err = KErrNone; \
try { \
- f; \
- } catch (const std::exception &ex) { \
- err = qt_translateExceptionToSymbianError(ex); \
+ _f; \
+ } catch (const std::exception &____ex) { \
+ _err = qt_exception2SymbianError(____ex); \
} \
}
-#define QT_TRANSLATE_EXCEPTION_TO_SYMBIAN_LEAVE(f) \
+#define QT_TRYCATCH_LEAVING(_f) \
{ \
- TInt err; \
- QT_TRANSLATE_EXCEPTION_TO_SYMBIAN_ERROR(err, f) \
- User::LeaveIfError(err); \
+ TInt ____err; \
+ QT_TRYCATCH_ERROR(____err, _f) \
+ User::LeaveIfError(____err); \
}
#endif
diff --git a/src/corelib/io/qabstractfileengine.h b/src/corelib/io/qabstractfileengine.h
index 54eb6de22b..07c92d2cb4 100644
--- a/src/corelib/io/qabstractfileengine.h
+++ b/src/corelib/io/qabstractfileengine.h
@@ -196,7 +196,7 @@ protected:
QScopedPointer<QAbstractFileEnginePrivate> d_ptr;
private:
- Q_DECLARE_PRIVATE(QAbstractFileEngine)
+ Q_DECLARE_SCOPED_PRIVATE(QAbstractFileEngine)
Q_DISABLE_COPY(QAbstractFileEngine)
};
diff --git a/src/corelib/io/qbuffer.h b/src/corelib/io/qbuffer.h
index e078d0559a..ce5f6052d5 100644
--- a/src/corelib/io/qbuffer.h
+++ b/src/corelib/io/qbuffer.h
@@ -96,7 +96,7 @@ protected:
qint64 writeData(const char *data, qint64 len);
private:
- Q_DECLARE_PRIVATE(QBuffer)
+ Q_DECLARE_SCOPED_PRIVATE(QBuffer)
Q_DISABLE_COPY(QBuffer)
Q_PRIVATE_SLOT(d_func(), void _q_emitSignals())
diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp
index edbe5f0864..836fa44109 100644
--- a/src/corelib/io/qdir.cpp
+++ b/src/corelib/io/qdir.cpp
@@ -86,7 +86,7 @@ class QDirPrivate
QDir *q_ptr;
Q_DECLARE_PUBLIC(QDir)
- friend class QScopedPointer<QDirPrivate>;
+ friend class QScopedPointerDeleter<QDirPrivate>;
protected:
QDirPrivate(QDir*, const QDir *copy=0);
~QDirPrivate();
@@ -288,10 +288,10 @@ inline void QDirPrivate::sortFileList(QDir::SortFlags sort, QFileInfoList &l,
names->append(l.at(i).fileName());
}
} else {
- QDirSortItem *si = new QDirSortItem[n];
+ QScopedArrayPointer<QDirSortItem> si(new QDirSortItem[n]);
for (int i = 0; i < n; ++i)
si[i].item = l.at(i);
- qSort(si, si+n, QDirSortItemComparator(sort));
+ qSort(si.data(), si.data()+n, QDirSortItemComparator(sort));
// put them back in the list(s)
if(infos) {
for (int i = 0; i < n; ++i)
@@ -301,7 +301,6 @@ inline void QDirPrivate::sortFileList(QDir::SortFlags sort, QFileInfoList &l,
for (int i = 0; i < n; ++i)
names->append(si[i].item.fileName());
}
- delete [] si;
}
}
}
@@ -334,8 +333,9 @@ void QDirPrivate::detach(bool createFileEngine)
{
qAtomicDetach(data);
if (createFileEngine) {
+ QAbstractFileEngine *newFileEngine = QAbstractFileEngine::create(data->path);
delete data->fileEngine;
- data->fileEngine = QAbstractFileEngine::create(data->path);
+ data->fileEngine = newFileEngine;
}
}
@@ -1824,7 +1824,7 @@ QChar QDir::separator()
{
#if defined (Q_FS_FAT) || defined(Q_WS_WIN) || defined(Q_OS_SYMBIAN)
return QLatin1Char('\\');
-#elif defined(Q_OS_UNIX)
+#elif defined(Q_OS_UNIX)
return QLatin1Char('/');
#elif defined (Q_OS_MAC)
return QLatin1Char(':');
diff --git a/src/corelib/io/qdir.h b/src/corelib/io/qdir.h
index f54fbdc232..5ef4356e4e 100644
--- a/src/corelib/io/qdir.h
+++ b/src/corelib/io/qdir.h
@@ -60,7 +60,7 @@ class Q_CORE_EXPORT QDir
protected:
QScopedPointer<QDirPrivate> d_ptr;
private:
- Q_DECLARE_PRIVATE(QDir)
+ Q_DECLARE_SCOPED_PRIVATE(QDir)
public:
enum Filter { Dirs = 0x001,
Files = 0x002,
diff --git a/src/corelib/io/qfile.h b/src/corelib/io/qfile.h
index f448609c95..24ce617773 100644
--- a/src/corelib/io/qfile.h
+++ b/src/corelib/io/qfile.h
@@ -64,7 +64,7 @@ class Q_CORE_EXPORT QFile : public QIODevice
#ifndef QT_NO_QOBJECT
Q_OBJECT
#endif
- Q_DECLARE_PRIVATE(QFile)
+ Q_DECLARE_SCOPED_PRIVATE(QFile)
public:
diff --git a/src/corelib/io/qfileinfo.h b/src/corelib/io/qfileinfo.h
index 5295b16b7f..c73823ae3c 100644
--- a/src/corelib/io/qfileinfo.h
+++ b/src/corelib/io/qfileinfo.h
@@ -168,7 +168,7 @@ public:
protected:
QScopedPointer<QFileInfoPrivate> d_ptr;
private:
- Q_DECLARE_PRIVATE(QFileInfo)
+ Q_DECLARE_SCOPED_PRIVATE(QFileInfo)
};
Q_DECLARE_TYPEINFO(QFileInfo, Q_MOVABLE_TYPE);
diff --git a/src/corelib/io/qfilesystemwatcher.h b/src/corelib/io/qfilesystemwatcher.h
index 60458e52e9..76a6c605a7 100644
--- a/src/corelib/io/qfilesystemwatcher.h
+++ b/src/corelib/io/qfilesystemwatcher.h
@@ -57,7 +57,7 @@ class QFileSystemWatcherPrivate;
class Q_CORE_EXPORT QFileSystemWatcher : public QObject
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QFileSystemWatcher)
+ Q_DECLARE_SCOPED_PRIVATE(QFileSystemWatcher)
public:
QFileSystemWatcher(QObject *parent = 0);
diff --git a/src/corelib/io/qfilesystemwatcher_symbian.cpp b/src/corelib/io/qfilesystemwatcher_symbian.cpp
index aeb19db3d0..c8c1d824ec 100644
--- a/src/corelib/io/qfilesystemwatcher_symbian.cpp
+++ b/src/corelib/io/qfilesystemwatcher_symbian.cpp
@@ -80,7 +80,7 @@ void CNotifyChangeEvent::RunL()
if (iStatus.Int() == KErrNone){
fsSession.NotifyChange(ENotifyAll, iStatus, watchedPath);
SetActive();
- QT_TRANSLATE_EXCEPTION_TO_SYMBIAN_LEAVE(engine->emitPathChanged(this));
+ QT_TRYCATCH_LEAVING(engine->emitPathChanged(this));
} else {
qWarning("CNotifyChangeEvent::RunL() - Failed to order change notifications: %d", iStatus.Int());
}
diff --git a/src/corelib/io/qfsfileengine.h b/src/corelib/io/qfsfileengine.h
index feca09b850..0fd87a4ca8 100644
--- a/src/corelib/io/qfsfileengine.h
+++ b/src/corelib/io/qfsfileengine.h
@@ -56,7 +56,7 @@ class QFSFileEnginePrivate;
class Q_CORE_EXPORT QFSFileEngine : public QAbstractFileEngine
{
- Q_DECLARE_PRIVATE(QFSFileEngine)
+ Q_DECLARE_SCOPED_PRIVATE(QFSFileEngine)
public:
QFSFileEngine();
explicit QFSFileEngine(const QString &file);
diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp
index 6c5db5fb89..fa2aaf7922 100644
--- a/src/corelib/io/qfsfileengine_unix.cpp
+++ b/src/corelib/io/qfsfileengine_unix.cpp
@@ -999,11 +999,7 @@ QString QFSFileEngine::fileName(FileName file) const
int size = PATH_CHUNK_SIZE;
while (1) {
- s = (char *) ::realloc(s, size);
- if (s == 0) {
- len = -1;
- break;
- }
+ s = q_check_ptr((char *) ::realloc(s, size));
len = ::readlink(d->nativeFilePath.constData(), s, size);
if (len < 0) {
::free(s);
diff --git a/src/corelib/io/qiodevice.h b/src/corelib/io/qiodevice.h
index 866fa72249..d8237a7e6b 100644
--- a/src/corelib/io/qiodevice.h
+++ b/src/corelib/io/qiodevice.h
@@ -165,7 +165,7 @@ protected:
#endif
private:
- Q_DECLARE_PRIVATE(QIODevice)
+ Q_DECLARE_SCOPED_PRIVATE(QIODevice)
Q_DISABLE_COPY(QIODevice)
#ifdef QT3_SUPPORT
diff --git a/src/corelib/io/qprocess.h b/src/corelib/io/qprocess.h
index bff5f7e5c9..a4025a14d4 100644
--- a/src/corelib/io/qprocess.h
+++ b/src/corelib/io/qprocess.h
@@ -191,7 +191,7 @@ protected:
qint64 writeData(const char *data, qint64 len);
private:
- Q_DECLARE_PRIVATE(QProcess)
+ Q_DECLARE_SCOPED_PRIVATE(QProcess)
Q_DISABLE_COPY(QProcess)
Q_PRIVATE_SLOT(d_func(), bool _q_canReadStandardOutput())
diff --git a/src/corelib/io/qresource.h b/src/corelib/io/qresource.h
index 0bf9660f8a..49dacead1a 100644
--- a/src/corelib/io/qresource.h
+++ b/src/corelib/io/qresource.h
@@ -94,7 +94,7 @@ protected:
QScopedPointer<QResourcePrivate> d_ptr;
private:
- Q_DECLARE_PRIVATE(QResource)
+ Q_DECLARE_SCOPED_PRIVATE(QResource)
};
QT_END_NAMESPACE
diff --git a/src/corelib/io/qresource_p.h b/src/corelib/io/qresource_p.h
index f58f9a2028..452d8e1c5e 100644
--- a/src/corelib/io/qresource_p.h
+++ b/src/corelib/io/qresource_p.h
@@ -61,7 +61,7 @@ class QResourceFileEnginePrivate;
class QResourceFileEngine : public QAbstractFileEngine
{
private:
- Q_DECLARE_PRIVATE(QResourceFileEngine)
+ Q_DECLARE_SCOPED_PRIVATE(QResourceFileEngine)
public:
explicit QResourceFileEngine(const QString &path);
~QResourceFileEngine();
diff --git a/src/corelib/io/qsettings.cpp b/src/corelib/io/qsettings.cpp
index 20cd8a71d2..7df6eee012 100644
--- a/src/corelib/io/qsettings.cpp
+++ b/src/corelib/io/qsettings.cpp
@@ -221,6 +221,11 @@ QConfFile::QConfFile(const QString &fileName, bool _userPerms)
usedHashFunc()->insert(name, this);
}
+QConfFile::~QConfFile()
+{
+ usedHashFunc()->remove(name);
+}
+
ParsedSettingsMap QConfFile::mergedKeyMap() const
{
ParsedSettingsMap result = originalKeys;
@@ -267,7 +272,7 @@ QConfFile *QConfFile::fromName(const QString &fileName, bool _userPerms)
ConfFileHash *usedHash = usedHashFunc();
ConfFileCache *unusedCache = unusedCacheFunc();
- QConfFile *confFile;
+ QConfFile *confFile = 0;
QMutexLocker locker(globalMutex());
if (!(confFile = usedHash->value(absPath))) {
@@ -1219,12 +1224,11 @@ QConfFileSettingsPrivate::~QConfFileSettingsPrivate()
for (int i = 0; i < NumConfFiles; ++i) {
if (confFiles[i] && !confFiles[i]->ref.deref()) {
- if (usedHash)
- usedHash->remove(confFiles[i]->name);
-
if (confFiles[i]->size == 0) {
delete confFiles[i].take();
} else if (unusedCache) {
+ if (usedHash)
+ usedHash->remove(confFiles[i]->name);
QT_TRY {
// compute a better size?
unusedCache->insert(confFiles[i]->name, confFiles[i].data(),
diff --git a/src/corelib/io/qsettings.h b/src/corelib/io/qsettings.h
index 0d382b6671..a082d6ab01 100644
--- a/src/corelib/io/qsettings.h
+++ b/src/corelib/io/qsettings.h
@@ -80,7 +80,7 @@ class Q_CORE_EXPORT QSettings
#else
QScopedPointer<QSettingsPrivate> d_ptr;
#endif
- Q_DECLARE_PRIVATE(QSettings)
+ Q_DECLARE_SCOPED_PRIVATE(QSettings)
public:
enum Status {
diff --git a/src/corelib/io/qsettings_p.h b/src/corelib/io/qsettings_p.h
index a49a063bd9..883e2fe5c0 100644
--- a/src/corelib/io/qsettings_p.h
+++ b/src/corelib/io/qsettings_p.h
@@ -149,6 +149,8 @@ inline QString QSettingsGroup::toString() const
class Q_AUTOTEST_EXPORT QConfFile
{
public:
+ ~QConfFile();
+
ParsedSettingsMap mergedKeyMap() const;
bool isWritable() const;
diff --git a/src/corelib/io/qtemporaryfile.cpp b/src/corelib/io/qtemporaryfile.cpp
index 5dc30c5af1..235b4f539a 100644
--- a/src/corelib/io/qtemporaryfile.cpp
+++ b/src/corelib/io/qtemporaryfile.cpp
@@ -289,7 +289,7 @@ static int qt_mkstemps(char *path, int slen)
//************* QTemporaryFileEngine
class QTemporaryFileEngine : public QFSFileEngine
{
- Q_DECLARE_PRIVATE(QFSFileEngine)
+ Q_DECLARE_SCOPED_PRIVATE(QFSFileEngine)
public:
QTemporaryFileEngine(const QString &file, bool fileIsTemplate = true)
: QFSFileEngine(file), filePathIsTemplate(fileIsTemplate)
@@ -517,7 +517,7 @@ QTemporaryFile::QTemporaryFile()
#ifdef Q_OS_SYMBIAN
//Just for verify that folder really exist on hardware
fileEngine()->mkdir( QDir::tempPath(), true );
-#endif
+#endif
}
/*!
diff --git a/src/corelib/io/qtemporaryfile.h b/src/corelib/io/qtemporaryfile.h
index a597a93104..c0b41bbf8a 100644
--- a/src/corelib/io/qtemporaryfile.h
+++ b/src/corelib/io/qtemporaryfile.h
@@ -64,7 +64,7 @@ class Q_CORE_EXPORT QTemporaryFile : public QFile
#ifndef QT_NO_QOBJECT
Q_OBJECT
#endif
- Q_DECLARE_PRIVATE(QTemporaryFile)
+ Q_DECLARE_SCOPED_PRIVATE(QTemporaryFile)
public:
QTemporaryFile();
diff --git a/src/corelib/io/qtextstream.h b/src/corelib/io/qtextstream.h
index fc4794e14a..9d4b3d0002 100644
--- a/src/corelib/io/qtextstream.h
+++ b/src/corelib/io/qtextstream.h
@@ -72,7 +72,7 @@ class QTextDecoder;
class QTextStreamPrivate;
class Q_CORE_EXPORT QTextStream // text stream class
{
- Q_DECLARE_PRIVATE(QTextStream)
+ Q_DECLARE_SCOPED_PRIVATE(QTextStream)
public:
enum RealNumberNotation {
diff --git a/src/corelib/kernel/qabstracteventdispatcher.h b/src/corelib/kernel/qabstracteventdispatcher.h
index 0550ddea28..93815f6ea0 100644
--- a/src/corelib/kernel/qabstracteventdispatcher.h
+++ b/src/corelib/kernel/qabstracteventdispatcher.h
@@ -58,7 +58,7 @@ template <typename T1, typename T2> struct QPair;
class Q_CORE_EXPORT QAbstractEventDispatcher : public QObject
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QAbstractEventDispatcher)
+ Q_DECLARE_SCOPED_PRIVATE(QAbstractEventDispatcher)
public:
typedef QPair<int, int> TimerInfo;
diff --git a/src/corelib/kernel/qabstractitemmodel.h b/src/corelib/kernel/qabstractitemmodel.h
index a6bbff4aa4..250339371e 100644
--- a/src/corelib/kernel/qabstractitemmodel.h
+++ b/src/corelib/kernel/qabstractitemmodel.h
@@ -287,7 +287,7 @@ protected:
void setRoleNames(const QHash<int,QByteArray> &roleNames);
private:
- Q_DECLARE_PRIVATE(QAbstractItemModel)
+ Q_DECLARE_SCOPED_PRIVATE(QAbstractItemModel)
Q_DISABLE_COPY(QAbstractItemModel)
};
diff --git a/src/corelib/kernel/qcore_symbian_p.cpp b/src/corelib/kernel/qcore_symbian_p.cpp
index a3a85b0787..c681b1fcc0 100644
--- a/src/corelib/kernel/qcore_symbian_p.cpp
+++ b/src/corelib/kernel/qcore_symbian_p.cpp
@@ -61,13 +61,12 @@ Q_CORE_EXPORT HBufC* qt_QString2HBufC(const QString& aString)
#else
TPtrC16 ptr(qt_QString2TPtrC(aString));
#endif
- buffer = HBufC::New(ptr.Length());
- Q_CHECK_PTR(buffer);
+ buffer = q_check_ptr(HBufC::New(ptr.Length()));
buffer->Des().Copy(ptr);
return buffer;
}
-Q_CORE_EXPORT QString qt_TDesC2QStringL(const TDesC& aDescriptor)
+Q_CORE_EXPORT QString qt_TDesC2QString(const TDesC& aDescriptor)
{
#ifdef QT_NO_UNICODE
return QString::fromLocal8Bit(aDescriptor.Ptr(), aDescriptor.Length());
@@ -82,9 +81,8 @@ QHBufC::QHBufC()
}
QHBufC::QHBufC(const QHBufC &src)
+ : m_hBufC(q_check_ptr(src.m_hBufC->Alloc()))
{
- m_hBufC = src.m_hBufC->Alloc();
- Q_CHECK_PTR(m_hBufC);
}
/*!
diff --git a/src/corelib/kernel/qcore_symbian_p.h b/src/corelib/kernel/qcore_symbian_p.h
index bd8f304040..453c3d30a9 100644
--- a/src/corelib/kernel/qcore_symbian_p.h
+++ b/src/corelib/kernel/qcore_symbian_p.h
@@ -65,8 +65,8 @@ QT_BEGIN_NAMESPACE
Q_CORE_EXPORT HBufC* qt_QString2HBufC(const QString& aString);
-Q_CORE_EXPORT QString qt_TDesC2QStringL(const TDesC& aDescriptor);
-inline QString qt_TDes2QStringL(const TDes& aDescriptor) { return qt_TDesC2QStringL(aDescriptor); }
+Q_CORE_EXPORT QString qt_TDesC2QString(const TDesC& aDescriptor);
+inline QString qt_TDes2QString(const TDes& aDescriptor) { return qt_TDesC2QString(aDescriptor); }
static inline QSize qt_TSize2QSize(const TSize& ts)
{
diff --git a/src/corelib/kernel/qcoreapplication.cpp b/src/corelib/kernel/qcoreapplication.cpp
index b84ad5334e..4a1da35b91 100644
--- a/src/corelib/kernel/qcoreapplication.cpp
+++ b/src/corelib/kernel/qcoreapplication.cpp
@@ -1119,6 +1119,9 @@ void QCoreApplication::postEvent(QObject *receiver, QEvent *event, int priority)
event->d = reinterpret_cast<QEventPrivate *>(quintptr(data->loopLevel));
}
+ // delete the event on exceptions to protect against memory leaks till the event is
+ // properly owned in the postEventList
+ QScopedPointer<QEvent> eventDeleter(event);
if (data->postEventList.isEmpty() || data->postEventList.last().priority >= priority) {
// optimization: we can simply append if the last event in
// the queue has higher or equal priority
@@ -1133,6 +1136,7 @@ void QCoreApplication::postEvent(QObject *receiver, QEvent *event, int priority)
QPostEventList::iterator at = qUpperBound(begin, end, priority);
data->postEventList.insert(at, QPostEvent(receiver, event, priority));
}
+ eventDeleter.take();
event->posted = true;
++receiver->d_func()->postedEvents;
data->canWait = false;
diff --git a/src/corelib/kernel/qcoreapplication.h b/src/corelib/kernel/qcoreapplication.h
index 48e65a733a..60b08829ac 100644
--- a/src/corelib/kernel/qcoreapplication.h
+++ b/src/corelib/kernel/qcoreapplication.h
@@ -76,7 +76,7 @@ class Q_CORE_EXPORT QCoreApplication : public QObject
Q_PROPERTY(QString organizationName READ organizationName WRITE setOrganizationName)
Q_PROPERTY(QString organizationDomain READ organizationDomain WRITE setOrganizationDomain)
- Q_DECLARE_PRIVATE(QCoreApplication)
+ Q_DECLARE_SCOPED_PRIVATE(QCoreApplication)
public:
QCoreApplication(int &argc, char **argv);
~QCoreApplication();
diff --git a/src/corelib/kernel/qeventdispatcher_glib_p.h b/src/corelib/kernel/qeventdispatcher_glib_p.h
index 80ec9fa22c..bcb655b491 100644
--- a/src/corelib/kernel/qeventdispatcher_glib_p.h
+++ b/src/corelib/kernel/qeventdispatcher_glib_p.h
@@ -67,7 +67,7 @@ class QEventDispatcherGlibPrivate;
class Q_CORE_EXPORT QEventDispatcherGlib : public QAbstractEventDispatcher
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QEventDispatcherGlib)
+ Q_DECLARE_SCOPED_PRIVATE(QEventDispatcherGlib)
public:
explicit QEventDispatcherGlib(QObject *parent = 0);
diff --git a/src/corelib/kernel/qeventdispatcher_symbian.cpp b/src/corelib/kernel/qeventdispatcher_symbian.cpp
index 34a20daf8e..e8768438ca 100644
--- a/src/corelib/kernel/qeventdispatcher_symbian.cpp
+++ b/src/corelib/kernel/qeventdispatcher_symbian.cpp
@@ -194,7 +194,7 @@ void QWakeUpActiveObject::RunL()
{
iStatus = KRequestPending;
SetActive();
- QT_TRANSLATE_EXCEPTION_TO_SYMBIAN_LEAVE(m_dispatcher->wakeUpWasCalled());
+ QT_TRYCATCH_LEAVING(m_dispatcher->wakeUpWasCalled());
}
QTimerActiveObject::QTimerActiveObject(QEventDispatcherSymbian *dispatcher, SymbianTimerInfo *timerInfo)
@@ -224,7 +224,7 @@ void QTimerActiveObject::DoCancel()
void QTimerActiveObject::RunL()
{
int error;
- QT_TRANSLATE_EXCEPTION_TO_SYMBIAN_ERROR(error, Run());
+ QT_TRYCATCH_ERROR(error, Run());
if (error < 0) {
CActiveScheduler::Current()->Error(error); // stop and report here, as this timer will be deleted on scope exit
}
@@ -274,6 +274,11 @@ void QTimerActiveObject::Start()
}
}
+SymbianTimerInfo::SymbianTimerInfo()
+: timerAO(0)
+{
+}
+
SymbianTimerInfo::~SymbianTimerInfo()
{
delete timerAO;
@@ -314,7 +319,7 @@ void QCompleteDeferredAOs::RunL()
iStatus = KRequestPending;
SetActive();
- QT_TRANSLATE_EXCEPTION_TO_SYMBIAN_LEAVE(m_dispatcher->reactivateDeferredActiveObjects());
+ QT_TRYCATCH_LEAVING(m_dispatcher->reactivateDeferredActiveObjects());
}
QSelectThread::QSelectThread()
@@ -587,7 +592,7 @@ void QSocketActiveObject::RunL()
if (!okToRun())
return;
- QT_TRANSLATE_EXCEPTION_TO_SYMBIAN_LEAVE(m_dispatcher->socketFired(this));
+ QT_TRYCATCH_LEAVING(m_dispatcher->socketFired(this));
}
void QSocketActiveObject::deleteLater()
@@ -619,11 +624,11 @@ QEventDispatcherSymbian::~QEventDispatcherSymbian()
void QEventDispatcherSymbian::startingUp()
{
if( !CActiveScheduler::Current() ) {
- m_activeScheduler = new(ELeave)CQtActiveScheduler();
+ m_activeScheduler = q_check_ptr(new CQtActiveScheduler()); // CBase derived class needs to be checked on new
CActiveScheduler::Install(m_activeScheduler);
}
- m_wakeUpAO = new(ELeave) QWakeUpActiveObject(this);
- m_completeDeferredAOs = new(ELeave) QCompleteDeferredAOs(this);
+ m_wakeUpAO = q_check_ptr(new QWakeUpActiveObject(this));
+ m_completeDeferredAOs = q_check_ptr(new QCompleteDeferredAOs(this));
// We already might have posted events, wakeup once to process them
wakeUp();
}
@@ -647,7 +652,7 @@ bool QEventDispatcherSymbian::processEvents ( QEventLoop::ProcessEventsFlags fla
QT_TRY {
Q_D(QAbstractEventDispatcher);
-
+
// It is safe if this counter overflows. The main importance is that each
// iteration count is different from the last.
m_iterationCount++;
@@ -742,7 +747,7 @@ bool QEventDispatcherSymbian::processEvents ( QEventLoop::ProcessEventsFlags fla
m_noSocketEvents = oldNoSocketEventsValue;
} QT_CATCH (const std::exception& ex) {
#ifndef QT_NO_EXCEPTIONS
- CActiveScheduler::Current()->Error(qt_translateExceptionToSymbianError(ex));
+ CActiveScheduler::Current()->Error(qt_exception2SymbianError(ex));
#endif
}
@@ -896,7 +901,7 @@ bool QEventDispatcherSymbian::hasPendingEvents()
void QEventDispatcherSymbian::registerSocketNotifier ( QSocketNotifier * notifier )
{
- QSocketActiveObject *socketAO = new (ELeave) QSocketActiveObject(this, notifier);
+ QSocketActiveObject *socketAO = q_check_ptr(new QSocketActiveObject(this, notifier));
m_notifiers.insert(notifier, socketAO);
m_selectThread.requestSocketEvents(notifier, &socketAO->iStatus);
}
@@ -930,7 +935,7 @@ void QEventDispatcherSymbian::registerTimer ( int timerId, int interval, QObject
timer->inTimerEvent = false;
timer->receiver = object;
timer->dispatcher = this;
- timer->timerAO = new(ELeave) QTimerActiveObject(this, timer.data());
+ timer->timerAO = q_check_ptr(new QTimerActiveObject(this, timer.data()));
m_timerList.insert(timerId, timer);
timer->timerAO->Start();
@@ -952,16 +957,20 @@ bool QEventDispatcherSymbian::unregisterTimer ( int timerId )
bool QEventDispatcherSymbian::unregisterTimers ( QObject * object )
{
- QList<TimerInfo> idsToRemove = registeredTimers(object);
-
- if (idsToRemove.isEmpty())
+ if (m_timerList.isEmpty())
return false;
- for (int c = 0; c < idsToRemove.size(); ++c) {
- unregisterTimer(idsToRemove[c].first);
+ bool unregistered = false;
+ for (QHash<int, SymbianTimerInfoPtr>::iterator i = m_timerList.begin(); i != m_timerList.end(); ) {
+ if ((*i)->receiver == object) {
+ i = m_timerList.erase(i);
+ unregistered = true;
+ } else {
+ ++i;
+ }
}
- return true;
+ return unregistered;
}
QList<QEventDispatcherSymbian::TimerInfo> QEventDispatcherSymbian::registeredTimers ( QObject * object ) const
@@ -993,4 +1002,3 @@ void CQtActiveScheduler::Error(TInt aError) const
}
QT_END_NAMESPACE
-
diff --git a/src/corelib/kernel/qeventdispatcher_symbian_p.h b/src/corelib/kernel/qeventdispatcher_symbian_p.h
index b39d6df224..310d74d299 100644
--- a/src/corelib/kernel/qeventdispatcher_symbian_p.h
+++ b/src/corelib/kernel/qeventdispatcher_symbian_p.h
@@ -112,6 +112,7 @@ private:
struct SymbianTimerInfo : public QSharedData
{
+ SymbianTimerInfo();
~SymbianTimerInfo();
int timerId;
@@ -183,7 +184,7 @@ private:
class QSelectThread : public QThread
{
- Q_DECLARE_PRIVATE(QThread)
+ Q_DECLARE_SCOPED_PRIVATE(QThread)
public:
QSelectThread();
@@ -217,7 +218,7 @@ public: // from CActiveScheduler
class Q_CORE_EXPORT QEventDispatcherSymbian : public QAbstractEventDispatcher
{
- Q_DECLARE_PRIVATE(QAbstractEventDispatcher)
+ Q_DECLARE_SCOPED_PRIVATE(QAbstractEventDispatcher)
public:
QEventDispatcherSymbian(QObject *parent = 0);
diff --git a/src/corelib/kernel/qeventdispatcher_unix_p.h b/src/corelib/kernel/qeventdispatcher_unix_p.h
index a52af009da..70c287fad3 100644
--- a/src/corelib/kernel/qeventdispatcher_unix_p.h
+++ b/src/corelib/kernel/qeventdispatcher_unix_p.h
@@ -142,7 +142,7 @@ class QEventDispatcherUNIXPrivate;
class Q_CORE_EXPORT QEventDispatcherUNIX : public QAbstractEventDispatcher
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QEventDispatcherUNIX)
+ Q_DECLARE_SCOPED_PRIVATE(QEventDispatcherUNIX)
public:
explicit QEventDispatcherUNIX(QObject *parent = 0);
diff --git a/src/corelib/kernel/qeventdispatcher_win_p.h b/src/corelib/kernel/qeventdispatcher_win_p.h
index ca5dbf80f5..37578a0a18 100644
--- a/src/corelib/kernel/qeventdispatcher_win_p.h
+++ b/src/corelib/kernel/qeventdispatcher_win_p.h
@@ -67,7 +67,7 @@ LRESULT CALLBACK qt_internal_proc(HWND hwnd, UINT message, WPARAM wp, LPARAM lp)
class Q_CORE_EXPORT QEventDispatcherWin32 : public QAbstractEventDispatcher
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QEventDispatcherWin32)
+ Q_DECLARE_SCOPED_PRIVATE(QEventDispatcherWin32)
void createInternalHwnd();
friend class QGuiEventDispatcherWin32;
diff --git a/src/corelib/kernel/qeventloop.h b/src/corelib/kernel/qeventloop.h
index 60d00df51b..e14e352cfa 100644
--- a/src/corelib/kernel/qeventloop.h
+++ b/src/corelib/kernel/qeventloop.h
@@ -55,7 +55,7 @@ class QEventLoopPrivate;
class Q_CORE_EXPORT QEventLoop : public QObject
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QEventLoop)
+ Q_DECLARE_SCOPED_PRIVATE(QEventLoop)
public:
explicit QEventLoop(QObject *parent = 0);
diff --git a/src/corelib/kernel/qmetaobject.cpp b/src/corelib/kernel/qmetaobject.cpp
index 9ff0bc173b..7f8d2e8b07 100644
--- a/src/corelib/kernel/qmetaobject.cpp
+++ b/src/corelib/kernel/qmetaobject.cpp
@@ -1571,7 +1571,9 @@ bool QMetaMethod::invoke(QObject *object,
int nargs = 1; // include return type
void **args = (void **) qMalloc(paramCount * sizeof(void *));
+ Q_CHECK_PTR(args);
int *types = (int *) qMalloc(paramCount * sizeof(int));
+ Q_CHECK_PTR(types);
types[0] = 0; // return type
args[0] = 0;
diff --git a/src/corelib/kernel/qmimedata.h b/src/corelib/kernel/qmimedata.h
index 609528a201..9366c5d6c3 100644
--- a/src/corelib/kernel/qmimedata.h
+++ b/src/corelib/kernel/qmimedata.h
@@ -94,7 +94,7 @@ protected:
QVariant::Type preferredType) const;
private:
Q_DISABLE_COPY(QMimeData)
- Q_DECLARE_PRIVATE(QMimeData)
+ Q_DECLARE_SCOPED_PRIVATE(QMimeData)
};
QT_END_NAMESPACE
diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp
index e8492276b5..2630b63d49 100644
--- a/src/corelib/kernel/qobject.cpp
+++ b/src/corelib/kernel/qobject.cpp
@@ -72,6 +72,7 @@ static int DIRECT_CONNECTION_ONLY = 0;
static int *queuedConnectionTypes(const QList<QByteArray> &typeNames)
{
int *types = new int [typeNames.count() + 1];
+ Q_CHECK_PTR(types);
for (int i = 0; i < typeNames.count(); ++i) {
const QByteArray typeName = typeNames.at(i);
if (typeName.endsWith('*'))
@@ -405,6 +406,10 @@ void QMetaObject::changeGuard(QObject **ptr, QObject *o)
return;
}
QMutexLocker locker(guardHashLock());
+ if (o) {
+ hash->insert(o, ptr);
+ QObjectPrivate::get(o)->hasGuards = true;
+ }
if (*ptr) {
bool more = false; //if the QObject has more pointer attached to it.
GuardHash::iterator it = hash->find(*ptr);
@@ -421,10 +426,6 @@ void QMetaObject::changeGuard(QObject **ptr, QObject *o)
QObjectPrivate::get(*ptr)->hasGuards = false;
}
*ptr = o;
- if (*ptr) {
- hash->insert(*ptr, ptr);
- QObjectPrivate::get(*ptr)->hasGuards = true;
- }
}
/*! \internal
@@ -685,12 +686,18 @@ QObject::QObject(QObject *parent)
: d_ptr(new QObjectPrivate)
{
Q_D(QObject);
- qt_addObject(d_ptr->q_ptr = this);
+ d_ptr->q_ptr = this;
d->threadData = (parent && !parent->thread()) ? parent->d_func()->threadData : QThreadData::current();
d->threadData->ref();
- if (!check_parent_thread(parent, parent ? parent->d_func()->threadData : 0, d->threadData))
- parent = 0;
- setParent(parent);
+ QT_TRY {
+ if (!check_parent_thread(parent, parent ? parent->d_func()->threadData : 0, d->threadData))
+ parent = 0;
+ setParent(parent);
+ } QT_CATCH(...) {
+ d->threadData->deref();
+ QT_RETHROW;
+ }
+ qt_addObject(this);
}
#ifdef QT3_SUPPORT
@@ -720,20 +727,26 @@ QObject::QObject(QObjectPrivate &dd, QObject *parent)
: d_ptr(&dd)
{
Q_D(QObject);
- qt_addObject(d_ptr->q_ptr = this);
+ d_ptr->q_ptr = this;
d->threadData = (parent && !parent->thread()) ? parent->d_func()->threadData : QThreadData::current();
d->threadData->ref();
- if (!check_parent_thread(parent, parent ? parent->d_func()->threadData : 0, d->threadData))
- parent = 0;
- if (d->isWidget) {
- if (parent) {
- d->parent = parent;
- d->parent->d_func()->children.append(this);
+ QT_TRY {
+ if (!check_parent_thread(parent, parent ? parent->d_func()->threadData : 0, d->threadData))
+ parent = 0;
+ if (d->isWidget) {
+ if (parent) {
+ d->parent = parent;
+ d->parent->d_func()->children.append(this);
+ }
+ // no events sent here, this is done at the end of the QWidget constructor
+ } else {
+ setParent(parent);
}
- // no events sent here, this is done at the end of the QWidget constructor
- } else {
- setParent(parent);
+ } QT_CATCH(...) {
+ d->threadData->deref();
+ QT_RETHROW;
}
+ qt_addObject(this);
}
/*!
@@ -785,11 +798,26 @@ QObject::~QObject()
// all the signal/slots connections are still in place - if we don't
// quit now, we will crash pretty soon.
qWarning("Detected an unexpected exception in ~QObject while emitting destroyed().");
+#if defined(Q_AUTOTEST_EXPORT) && !defined(QT_NO_EXCEPTIONS)
+ struct AutotestException : public std::exception
+ {
+ const char *what() const throw() { return "autotest swallow"; }
+ } autotestException;
+ // throw autotestException;
+
+#else
QT_RETHROW;
+#endif
}
{
- QMutexLocker locker(signalSlotLock(this));
+ QMutex *signalSlotMutex = 0;
+ QT_TRY {
+ signalSlotMutex = signalSlotLock(this);
+ } QT_CATCH(const std::bad_alloc &) {
+ // out of memory - swallow to prevent a crash
+ }
+ QMutexLocker locker(signalSlotMutex);
// set ref to zero to indicate that this object has been deleted
if (d->currentSender != 0)
@@ -2709,8 +2737,14 @@ bool QObject::disconnect(const QObject *sender, const char *signal,
QByteArray signal_name;
bool signal_found = false;
if (signal) {
- signal_name = QMetaObject::normalizedSignature(signal);
- signal = signal_name;
+ QT_TRY {
+ signal_name = QMetaObject::normalizedSignature(signal);
+ signal = signal_name.constData();
+ } QT_CATCH (const std::bad_alloc &) {
+ // if the signal is already normalized, we can continue.
+ if (sender->metaObject()->indexOfSignal(signal + 1) == -1)
+ QT_RETHROW;
+ }
if (!check_signal_macro(sender, signal, "disconnect", "unbind"))
return false;
@@ -2722,8 +2756,15 @@ bool QObject::disconnect(const QObject *sender, const char *signal,
int membcode = -1;
bool method_found = false;
if (method) {
- method_name = QMetaObject::normalizedSignature(method);
- method = method_name;
+ QT_TRY {
+ method_name = QMetaObject::normalizedSignature(method);
+ method = method_name.constData();
+ } QT_CATCH(const std::bad_alloc &) {
+ // if the method is already normalized, we can continue.
+ if (receiver->metaObject()->indexOfMethod(method + 1) == -1)
+ QT_RETHROW;
+ }
+
membcode = extract_code(method);
if (!check_method_code(membcode, receiver, method, "disconnect"))
return false;
@@ -2882,14 +2923,20 @@ bool QMetaObject::connect(const QObject *sender, int signal_index,
c->method = method_index;
c->connectionType = type;
c->argumentTypes = types;
+
+ QT_TRY {
+ s->d_func()->addConnection(signal_index, c);
+ } QT_CATCH(...) {
+ delete c;
+ QT_RETHROW;
+ }
+
c->prev = &r->d_func()->senders;
c->next = *c->prev;
*c->prev = c;
if (c->next)
c->next->prev = &c->next;
- s->d_func()->addConnection(signal_index, c);
-
if (signal_index < 0) {
for (uint i = 0; i < (sizeof sender->d_func()->connectedSignals
/ sizeof sender->d_func()->connectedSignals[0] ); ++i)
@@ -3081,7 +3128,9 @@ static void queued_activate(QObject *sender, int signal, QObjectPrivate::Connect
while (c->argumentTypes[nargs-1])
++nargs;
int *types = (int *) qMalloc(nargs*sizeof(int));
+ Q_CHECK_PTR(types);
void **args = (void **) qMalloc(nargs*sizeof(void *));
+ Q_CHECK_PTR(args);
types[0] = 0; // return type
args[0] = 0; // return value
for (int n = 1; n < nargs; ++n)
diff --git a/src/corelib/kernel/qobject.h b/src/corelib/kernel/qobject.h
index a9f005b5e2..200c97d4b6 100644
--- a/src/corelib/kernel/qobject.h
+++ b/src/corelib/kernel/qobject.h
@@ -118,7 +118,7 @@ class Q_CORE_EXPORT QObject
{
Q_OBJECT
Q_PROPERTY(QString objectName READ objectName WRITE setObjectName)
- Q_DECLARE_PRIVATE(QObject)
+ Q_DECLARE_SCOPED_PRIVATE(QObject)
public:
Q_INVOKABLE explicit QObject(QObject *parent=0);
diff --git a/src/corelib/kernel/qsharedmemory.h b/src/corelib/kernel/qsharedmemory.h
index 4957c3e972..0e15ebebfc 100644
--- a/src/corelib/kernel/qsharedmemory.h
+++ b/src/corelib/kernel/qsharedmemory.h
@@ -57,7 +57,7 @@ class QSharedMemoryPrivate;
class Q_CORE_EXPORT QSharedMemory : public QObject
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QSharedMemory)
+ Q_DECLARE_SCOPED_PRIVATE(QSharedMemory)
public:
enum AccessMode
diff --git a/src/corelib/kernel/qsignalmapper.h b/src/corelib/kernel/qsignalmapper.h
index 7bc50358d4..8c1f663600 100644
--- a/src/corelib/kernel/qsignalmapper.h
+++ b/src/corelib/kernel/qsignalmapper.h
@@ -56,7 +56,7 @@ class QSignalMapperPrivate;
class Q_CORE_EXPORT QSignalMapper : public QObject
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QSignalMapper)
+ Q_DECLARE_SCOPED_PRIVATE(QSignalMapper)
public:
explicit QSignalMapper(QObject *parent = 0);
~QSignalMapper();
diff --git a/src/corelib/kernel/qsocketnotifier.h b/src/corelib/kernel/qsocketnotifier.h
index 96dda35ff2..bc5d97d87d 100644
--- a/src/corelib/kernel/qsocketnotifier.h
+++ b/src/corelib/kernel/qsocketnotifier.h
@@ -53,7 +53,7 @@ QT_MODULE(Core)
class Q_CORE_EXPORT QSocketNotifier : public QObject
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QObject)
+ Q_DECLARE_SCOPED_PRIVATE(QObject)
public:
enum Type { Read, Write, Exception };
diff --git a/src/corelib/kernel/qsystemsemaphore_symbian.cpp b/src/corelib/kernel/qsystemsemaphore_symbian.cpp
index 817904667d..151684138b 100644
--- a/src/corelib/kernel/qsystemsemaphore_symbian.cpp
+++ b/src/corelib/kernel/qsystemsemaphore_symbian.cpp
@@ -47,7 +47,7 @@
#include <qcore_symbian_p.h>
#include <e32cmn.h>
QT_BEGIN_NAMESPACE
-
+
#ifndef QT_NO_SYSTEMSEMAPHORE
QSystemSemaphorePrivate::QSystemSemaphorePrivate() :
@@ -65,7 +65,7 @@ void QSystemSemaphorePrivate::setErrorString(const QString &function, int err)
errorString = QCoreApplication::tr("%1: already exists", "QSystemSemaphore").arg(function);
error = QSystemSemaphore::AlreadyExists;
break;
- case KErrNotFound:
+ case KErrNotFound:
errorString = QCoreApplication::tr("%1: doesn't exists", "QSystemSemaphore").arg(function);
error = QSystemSemaphore::NotFound;
break;
diff --git a/src/corelib/kernel/qtranslator.h b/src/corelib/kernel/qtranslator.h
index b4cea184ac..1f94210180 100644
--- a/src/corelib/kernel/qtranslator.h
+++ b/src/corelib/kernel/qtranslator.h
@@ -86,7 +86,7 @@ public:
private:
Q_DISABLE_COPY(QTranslator)
- Q_DECLARE_PRIVATE(QTranslator)
+ Q_DECLARE_SCOPED_PRIVATE(QTranslator)
};
#endif // QT_NO_TRANSLATION
diff --git a/src/corelib/kernel/qvariant.cpp b/src/corelib/kernel/qvariant.cpp
index b487615bac..5016d3b8f5 100644
--- a/src/corelib/kernel/qvariant.cpp
+++ b/src/corelib/kernel/qvariant.cpp
@@ -156,7 +156,7 @@ static void construct(QVariant::Private *x, const void *copy)
x->data.b = copy ? *static_cast<const bool *>(copy) : false;
break;
case QVariant::Double:
-#if defined(Q_CC_RVCT)
+#if defined(Q_CC_RVCT)
// Using trinary operator with 64bit constants crashes when ran on Symbian device
if (copy){
x->data.d = *static_cast<const double*>(copy);
@@ -165,13 +165,13 @@ static void construct(QVariant::Private *x, const void *copy)
}
#else
x->data.d = copy ? *static_cast<const double*>(copy) : 0.0;
-#endif
+#endif
break;
case QMetaType::Float:
x->data.f = copy ? *static_cast<const float*>(copy) : 0.0f;
break;
case QVariant::LongLong:
-#if defined(Q_CC_RVCT)
+#if defined(Q_CC_RVCT)
// Using trinary operator with 64bit constants crashes when ran on Symbian device
if (copy){
x->data.ll = *static_cast<const qlonglong *>(copy);
@@ -180,10 +180,10 @@ static void construct(QVariant::Private *x, const void *copy)
}
#else
x->data.ll = copy ? *static_cast<const qlonglong *>(copy) : Q_INT64_C(0);
-#endif
+#endif
break;
case QVariant::ULongLong:
-#if defined(Q_CC_RVCT)
+#if defined(Q_CC_RVCT)
// Using trinary operator with 64bit constants crashes when ran on Symbian device
if (copy){
x->data.ull = *static_cast<const qulonglong *>(copy);
@@ -192,7 +192,7 @@ static void construct(QVariant::Private *x, const void *copy)
}
#else
x->data.ull = copy ? *static_cast<const qulonglong *>(copy) : Q_UINT64_C(0);
-#endif
+#endif
break;
case QVariant::Invalid:
case QVariant::UserType:
@@ -618,7 +618,7 @@ static bool convert(const QVariant::Private *d, QVariant::Type t, void *result,
ok = &dummy;
switch (uint(t)) {
- case QVariant::Url:
+ case QVariant::Url:
switch (d->type) {
case QVariant::String:
*static_cast<QUrl *>(result) = QUrl(*v_cast<QString>(d));
@@ -1214,8 +1214,8 @@ const QVariant::Handler *QVariant::handler = &qt_kernel_variant_handler;
and versatile, but may prove less memory and speed efficient than
storing specific types in standard data structures.
- QVariant also supports the notion of null values, where you can
- have a defined type with no value set. However, note that QVariant
+ QVariant also supports the notion of null values, where you can
+ have a defined type with no value set. However, note that QVariant
types can only be cast when they have had a value set.
\snippet doc/src/snippets/code/src_corelib_kernel_qvariant.cpp 1
diff --git a/src/corelib/kernel/qwineventnotifier_p.h b/src/corelib/kernel/qwineventnotifier_p.h
index 07aa0ae8bc..2c8934fcec 100644
--- a/src/corelib/kernel/qwineventnotifier_p.h
+++ b/src/corelib/kernel/qwineventnotifier_p.h
@@ -61,7 +61,7 @@ QT_BEGIN_NAMESPACE
class Q_CORE_EXPORT QWinEventNotifier : public QObject
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QObject)
+ Q_DECLARE_SCOPED_PRIVATE(QObject)
public:
explicit QWinEventNotifier(QObject *parent = 0);
diff --git a/src/corelib/plugin/qfactoryloader_p.h b/src/corelib/plugin/qfactoryloader_p.h
index 1717ac0e33..b646b4d7b1 100644
--- a/src/corelib/plugin/qfactoryloader_p.h
+++ b/src/corelib/plugin/qfactoryloader_p.h
@@ -66,7 +66,7 @@ class QFactoryLoaderPrivate;
class Q_CORE_EXPORT QFactoryLoader : public QObject
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QFactoryLoader)
+ Q_DECLARE_SCOPED_PRIVATE(QFactoryLoader)
public:
QFactoryLoader(const char *iid,
diff --git a/src/corelib/plugin/qpluginloader.cpp b/src/corelib/plugin/qpluginloader.cpp
index 53641907de..d7692b0e10 100644
--- a/src/corelib/plugin/qpluginloader.cpp
+++ b/src/corelib/plugin/qpluginloader.cpp
@@ -311,7 +311,7 @@ void QPluginLoader::setFileName(const QString &fileName)
QFileInfoList driveList(QDir::drives());
foreach(const QFileInfo& drive, driveList) {
QString testFilePath(drive.absolutePath() + stubPath);
- testFilePath = QDir::cleanPath(testFilePath);
+ testFilePath = QDir::cleanPath(testFilePath);
if (QFile::exists(testFilePath)) {
fn = testFilePath;
break;
@@ -319,7 +319,7 @@ void QPluginLoader::setFileName(const QString &fileName)
}
}
}
-
+
#else
QString fn = QFileInfo(fileName).canonicalFilePath();
#endif
diff --git a/src/corelib/statemachine/qabstractstate.h b/src/corelib/statemachine/qabstractstate.h
index 5355ac2c2e..3229ab7148 100644
--- a/src/corelib/statemachine/qabstractstate.h
+++ b/src/corelib/statemachine/qabstractstate.h
@@ -85,7 +85,7 @@ protected:
private:
Q_DISABLE_COPY(QAbstractState)
- Q_DECLARE_PRIVATE(QAbstractState)
+ Q_DECLARE_SCOPED_PRIVATE(QAbstractState)
};
#endif //QT_NO_STATEMACHINE
diff --git a/src/corelib/statemachine/qabstracttransition.h b/src/corelib/statemachine/qabstracttransition.h
index 8ff3a6edb7..bfd2849e7e 100644
--- a/src/corelib/statemachine/qabstracttransition.h
+++ b/src/corelib/statemachine/qabstracttransition.h
@@ -106,7 +106,7 @@ protected:
private:
Q_DISABLE_COPY(QAbstractTransition)
- Q_DECLARE_PRIVATE(QAbstractTransition)
+ Q_DECLARE_SCOPED_PRIVATE(QAbstractTransition)
};
#endif //QT_NO_STATEMACHINE
diff --git a/src/corelib/statemachine/qeventtransition.h b/src/corelib/statemachine/qeventtransition.h
index 0ebca19483..08887f0170 100644
--- a/src/corelib/statemachine/qeventtransition.h
+++ b/src/corelib/statemachine/qeventtransition.h
@@ -83,7 +83,7 @@ protected:
private:
Q_DISABLE_COPY(QEventTransition)
- Q_DECLARE_PRIVATE(QEventTransition)
+ Q_DECLARE_SCOPED_PRIVATE(QEventTransition)
};
#endif //QT_NO_STATEMACHINE
diff --git a/src/corelib/statemachine/qfinalstate.h b/src/corelib/statemachine/qfinalstate.h
index e37ef36a9c..7b77b2b32b 100644
--- a/src/corelib/statemachine/qfinalstate.h
+++ b/src/corelib/statemachine/qfinalstate.h
@@ -68,7 +68,7 @@ protected:
private:
Q_DISABLE_COPY(QFinalState)
- Q_DECLARE_PRIVATE(QFinalState)
+ Q_DECLARE_SCOPED_PRIVATE(QFinalState)
};
#endif //QT_NO_STATEMACHINE
diff --git a/src/corelib/statemachine/qhistorystate.h b/src/corelib/statemachine/qhistorystate.h
index 395bb983e8..889308d489 100644
--- a/src/corelib/statemachine/qhistorystate.h
+++ b/src/corelib/statemachine/qhistorystate.h
@@ -83,7 +83,7 @@ protected:
private:
Q_DISABLE_COPY(QHistoryState)
- Q_DECLARE_PRIVATE(QHistoryState)
+ Q_DECLARE_SCOPED_PRIVATE(QHistoryState)
};
#endif //QT_NO_STATEMACHINE
diff --git a/src/corelib/statemachine/qsignaltransition.h b/src/corelib/statemachine/qsignaltransition.h
index 415751eb92..c823c2b720 100644
--- a/src/corelib/statemachine/qsignaltransition.h
+++ b/src/corelib/statemachine/qsignaltransition.h
@@ -78,7 +78,7 @@ protected:
private:
Q_DISABLE_COPY(QSignalTransition)
- Q_DECLARE_PRIVATE(QSignalTransition)
+ Q_DECLARE_SCOPED_PRIVATE(QSignalTransition)
};
#endif //QT_NO_STATEMACHINE
diff --git a/src/corelib/statemachine/qstate.h b/src/corelib/statemachine/qstate.h
index ce88b253f7..05d394ba67 100644
--- a/src/corelib/statemachine/qstate.h
+++ b/src/corelib/statemachine/qstate.h
@@ -107,7 +107,7 @@ protected:
private:
Q_DISABLE_COPY(QState)
- Q_DECLARE_PRIVATE(QState)
+ Q_DECLARE_SCOPED_PRIVATE(QState)
};
#endif //QT_NO_STATEMACHINE
diff --git a/src/corelib/statemachine/qstatemachine.h b/src/corelib/statemachine/qstatemachine.h
index 230d8525ba..1b1caa187e 100644
--- a/src/corelib/statemachine/qstatemachine.h
+++ b/src/corelib/statemachine/qstatemachine.h
@@ -141,7 +141,7 @@ protected:
private:
Q_DISABLE_COPY(QStateMachine)
- Q_DECLARE_PRIVATE(QStateMachine)
+ Q_DECLARE_SCOPED_PRIVATE(QStateMachine)
Q_PRIVATE_SLOT(d_func(), void _q_start())
Q_PRIVATE_SLOT(d_func(), void _q_process())
#ifndef QT_NO_ANIMATION
diff --git a/src/corelib/thread/qthread.cpp b/src/corelib/thread/qthread.cpp
index 1cf4bc9d5a..6eaa55a6c4 100644
--- a/src/corelib/thread/qthread.cpp
+++ b/src/corelib/thread/qthread.cpp
@@ -183,7 +183,7 @@ QThreadPrivate::QThreadPrivate(QThreadData *d)
id = 0;
waiters = 0;
#endif
-#if defined (Q_WS_WIN) || defined (Q_OS_SYMBIAN)
+#if defined (Q_WS_WIN) || defined (Q_OS_SYMBIAN)
terminationEnabled = true;
terminatePending = false;
#endif
diff --git a/src/corelib/thread/qthread.h b/src/corelib/thread/qthread.h
index c784352d06..0d8aa8bbeb 100644
--- a/src/corelib/thread/qthread.h
+++ b/src/corelib/thread/qthread.h
@@ -127,7 +127,7 @@ protected:
private:
Q_OBJECT
- Q_DECLARE_PRIVATE(QThread)
+ Q_DECLARE_SCOPED_PRIVATE(QThread)
static void initialize();
static void cleanup();
@@ -154,7 +154,7 @@ private:
friend class QCoreApplication;
friend class QThreadData;
friend class QAdoptedThread;
- Q_DECLARE_PRIVATE(QThread)
+ Q_DECLARE_SCOPED_PRIVATE(QThread)
};
#endif // QT_NO_THREAD
diff --git a/src/corelib/thread/qthread_p.h b/src/corelib/thread/qthread_p.h
index 31b5090386..752796b43e 100644
--- a/src/corelib/thread/qthread_p.h
+++ b/src/corelib/thread/qthread_p.h
@@ -152,7 +152,7 @@ public:
static void finish(void *, bool lockAnyway=true);
#endif // Q_OS_WIN32
-#if defined(Q_OS_WIN32) || defined(Q_OS_WINCE) || defined (Q_OS_SYMBIAN)
+#if defined(Q_OS_WIN32) || defined(Q_OS_WINCE) || defined (Q_OS_SYMBIAN)
bool terminationEnabled, terminatePending;
# endif
QThreadData *data;
@@ -214,7 +214,7 @@ public:
// thread wrapper for the main() thread
class QAdoptedThread : public QThread
{
- Q_DECLARE_PRIVATE(QThread)
+ Q_DECLARE_SCOPED_PRIVATE(QThread)
public:
QAdoptedThread(QThreadData *data = 0);
diff --git a/src/corelib/thread/qthread_unix.cpp b/src/corelib/thread/qthread_unix.cpp
index 1be9048699..de0575ccf7 100644
--- a/src/corelib/thread/qthread_unix.cpp
+++ b/src/corelib/thread/qthread_unix.cpp
@@ -197,7 +197,7 @@ void QThreadPrivate::createEventDispatcher(QThreadData *data)
else
#endif
#ifdef Q_OS_SYMBIAN
- data->eventDispatcher = new QEventDispatcherSymbian;
+ data->eventDispatcher = new QEventDispatcherSymbian;
#else
data->eventDispatcher = new QEventDispatcherUNIX;
#endif
@@ -212,7 +212,7 @@ void *QThreadPrivate::start(void *arg)
pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL);
pthread_cleanup_push(QThreadPrivate::finish, arg);
#endif
-
+
QThread *thr = reinterpret_cast<QThread *>(arg);
QThreadData *data = QThreadData::get2(thr);
@@ -245,7 +245,7 @@ void *QThreadPrivate::start(void *arg)
#ifndef Q_OS_SYMBIAN
pthread_cleanup_pop(1);
#else
- QThreadPrivate::finish(arg);
+ QThreadPrivate::finish(arg);
#endif
return 0;
@@ -285,7 +285,7 @@ void QThreadPrivate::finish(void *arg)
d->thread_id = 0;
#ifdef Q_OS_SYMBIAN
if (closeNativeHandle)
- d->data->symbian_thread_handle.Close();
+ d->data->symbian_thread_handle.Close();
#endif
d->thread_done.wakeAll();
#ifdef Q_OS_SYMBIAN
@@ -582,10 +582,10 @@ void QThread::terminate()
d->terminatePending = true;
return;
}
-
+
d->terminated = true;
QThreadPrivate::finish(this, false, false);
- d->data->symbian_thread_handle.Terminate(KErrNone);
+ d->data->symbian_thread_handle.Terminate(KErrNone);
d->data->symbian_thread_handle.Close();
#endif
@@ -629,7 +629,7 @@ void QThread::setTerminationEnabled(bool enabled)
d->terminated = true;
QThreadPrivate::finish(thr, false);
locker.unlock(); // don't leave the mutex locked!
- pthread_exit(NULL);
+ pthread_exit(NULL);
}
#endif
}
diff --git a/src/corelib/tools/qbytearray.cpp b/src/corelib/tools/qbytearray.cpp
index 22cee0eef9..97f437fd71 100644
--- a/src/corelib/tools/qbytearray.cpp
+++ b/src/corelib/tools/qbytearray.cpp
@@ -1307,6 +1307,7 @@ QByteArray::QByteArray(int size, char ch)
QByteArray::QByteArray(int size, Qt::Initialization)
{
d = static_cast<Data *>(qMalloc(sizeof(Data)+size));
+ Q_CHECK_PTR(d);
d->ref = 1;
d->alloc = d->size = size;
d->data = d->array;
diff --git a/src/corelib/tools/qhash.h b/src/corelib/tools/qhash.h
index d1a3386897..a57fec72d4 100644
--- a/src/corelib/tools/qhash.h
+++ b/src/corelib/tools/qhash.h
@@ -150,10 +150,10 @@ struct Q_CORE_EXPORT QHashData
};
inline void QHashData::mightGrow() // ### Qt 5: eliminate
-{
+{
if (size >= numBuckets)
rehash(numBits + 1);
-}
+}
inline bool QHashData::willGrow()
{
@@ -167,8 +167,13 @@ inline bool QHashData::willGrow()
inline void QHashData::hasShrunk()
{
- if (size <= (numBuckets >> 3) && numBits > userNumBits)
- rehash(qMax(int(numBits) - 2, int(userNumBits)));
+ if (size <= (numBuckets >> 3) && numBits > userNumBits) {
+ QT_TRY {
+ rehash(qMax(int(numBits) - 2, int(userNumBits)));
+ } QT_CATCH(const std::bad_alloc &) {
+ // ignore bad allocs - shrinking shouldn't throw. rehash is exception safe.
+ }
+ }
}
inline QHashData::Node *QHashData::firstNode()
@@ -761,6 +766,8 @@ Q_INLINE_TEMPLATE typename QHash<Key, T>::iterator QHash<Key, T>::insertMulti(co
template <class Key, class T>
Q_OUTOFLINE_TEMPLATE int QHash<Key, T>::remove(const Key &akey)
{
+ if (isEmpty()) // prevents detaching shared null
+ return 0;
detach();
int oldSize = d->size;
@@ -782,6 +789,8 @@ Q_OUTOFLINE_TEMPLATE int QHash<Key, T>::remove(const Key &akey)
template <class Key, class T>
Q_OUTOFLINE_TEMPLATE T QHash<Key, T>::take(const Key &akey)
{
+ if (isEmpty()) // prevents detaching shared null
+ return T();
detach();
Node **node = findNode(akey);
@@ -983,12 +992,12 @@ Q_INLINE_TEMPLATE int QMultiHash<Key, T>::remove(const Key &key, const T &value)
typename QHash<Key, T>::iterator end(QHash<Key, T>::end());
while (i != end && i.key() == key) {
if (i.value() == value) {
-#if defined(Q_CC_RVCT)
- // RVCT has problems with scoping, apparently.
+#if defined(Q_CC_RVCT)
+ // RVCT has problems with scoping, apparently.
i = QHash<Key, T>::erase(i);
#else
i = erase(i);
-#endif
+#endif
++n;
} else {
++i;
diff --git a/src/corelib/tools/qlist.h b/src/corelib/tools/qlist.h
index a56518bf12..c6c898d1b5 100644
--- a/src/corelib/tools/qlist.h
+++ b/src/corelib/tools/qlist.h
@@ -363,15 +363,16 @@ Q_INLINE_TEMPLATE void QList<T>::node_copy(Node *from, Node *to, Node *src)
Node *current = from;
if (QTypeInfo<T>::isLarge || QTypeInfo<T>::isStatic) {
QT_TRY {
- while(current != to)
+ while(current != to) {
(current++)->v = new T(*reinterpret_cast<T*>((src++)->v));
+ }
} QT_CATCH(...) {
while (current != from)
delete reinterpret_cast<T*>(current--);
QT_RETHROW;
}
- }
- else if (QTypeInfo<T>::isComplex) {
+
+ } else if (QTypeInfo<T>::isComplex) {
QT_TRY {
while(current != to)
new (current++) T(*reinterpret_cast<T*>(src++));
@@ -380,6 +381,9 @@ Q_INLINE_TEMPLATE void QList<T>::node_copy(Node *from, Node *to, Node *src)
(reinterpret_cast<T*>(current--))->~T();
QT_RETHROW;
}
+ } else {
+ if (src != from && to - from > 0)
+ memcpy(from, src, (to - from) * sizeof(Node *));
}
}
@@ -408,11 +412,12 @@ Q_INLINE_TEMPLATE QList<T> &QList<T>::operator=(const QList<T> &l)
template <typename T>
inline typename QList<T>::iterator QList<T>::insert(iterator before, const T &t)
{
- Node *n = reinterpret_cast<Node *>(p.insert(before.i - reinterpret_cast<Node *>(p.begin())));
+ int iBefore = before.i - reinterpret_cast<Node *>(p.begin());
+ Node *n = reinterpret_cast<Node *>(p.insert(iBefore));
QT_TRY {
node_construct(n, t);
} QT_CATCH(...) {
- p.remove(before.i - reinterpret_cast<Node *>(p.begin()));
+ p.remove(iBefore);
QT_RETHROW;
}
return n;
@@ -689,7 +694,13 @@ Q_OUTOFLINE_TEMPLATE QList<T> &QList<T>::operator+=(const QList<T> &l)
{
detach();
Node *n = reinterpret_cast<Node *>(p.append(l.p));
- node_copy(n, reinterpret_cast<Node *>(p.end()), reinterpret_cast<Node *>(l.p.begin()));
+ QT_TRY{
+ node_copy(n, reinterpret_cast<Node *>(p.end()), reinterpret_cast<Node *>(l.p.begin()));
+ } QT_CATCH(...) {
+ // restore the old end
+ d->end -= (reinterpret_cast<Node *>(p.end()) - n);
+ QT_RETHROW;
+ }
return *this;
}
diff --git a/src/corelib/tools/qlistdata.cpp b/src/corelib/tools/qlistdata.cpp
index 3c45bed157..c67af7af4a 100644
--- a/src/corelib/tools/qlistdata.cpp
+++ b/src/corelib/tools/qlistdata.cpp
@@ -74,12 +74,16 @@ QListData::Data *QListData::detach()
Data *x = static_cast<Data *>(qMalloc(DataHeaderSize + d->alloc * sizeof(void *)));
Q_CHECK_PTR(x);
- ::memcpy(x, d, DataHeaderSize + d->alloc * sizeof(void *));
- x->alloc = d->alloc;
x->ref = 1;
x->sharable = true;
- if (!x->alloc)
- x->begin = x->end = 0;
+ x->alloc = d->alloc;
+ if (!x->alloc) {
+ x->begin = 0;
+ x->end = 0;
+ } else {
+ x->begin = d->begin;
+ x->end = d->end;
+ }
qSwap(d, x);
if (!x->ref.deref())
@@ -87,20 +91,30 @@ QListData::Data *QListData::detach()
return 0;
}
-// Returns the old (shared) data, it is up to the caller to deref() and free()
+/*!
+ * Detaches the QListData by reallocating new memory.
+ * Returns the old (shared) data, it is up to the caller to deref() and free()
+ * For the new data node_copy needs to be called.
+ *
+ * \internal
+ */
QListData::Data *QListData::detach2()
{
Data *x = d;
Data* t = static_cast<Data *>(qMalloc(DataHeaderSize + x->alloc * sizeof(void *)));
Q_CHECK_PTR(t);
+ t->ref = 1;
+ t->sharable = true;
+ t->alloc = x->alloc;
+ if (!t->alloc) {
+ t->begin = 0;
+ t->end = 0;
+ } else {
+ t->begin = x->begin;
+ t->end = x->end;
+ }
d = t;
- ::memcpy(d, x, DataHeaderSize + x->alloc * sizeof(void *));
- d->alloc = x->alloc;
- d->ref = 1;
- d->sharable = true;
- if (!d->alloc)
- d->begin = d->end = 0;
return x;
}
@@ -117,12 +131,14 @@ void QListData::realloc(int alloc)
d->begin = d->end = 0;
}
+// ensures that enough space is available to append one element
void **QListData::append()
{
Q_ASSERT(d->ref == 1);
if (d->end == d->alloc) {
int n = d->end - d->begin;
if (d->begin > 2 * d->alloc / 3) {
+ // we have enough space. Just not at the end -> move it.
::memcpy(d->array + n, d->array + d->begin, n * sizeof(void *));
d->begin = n;
d->end = n * 2;
@@ -133,6 +149,7 @@ void **QListData::append()
return d->array + d->end++;
}
+// ensures that enough space is available to append the list
void **QListData::append(const QListData& l)
{
Q_ASSERT(d->ref == 1);
@@ -141,7 +158,6 @@ void **QListData::append(const QListData& l)
if (n) {
if (e + n > d->alloc)
realloc(grow(e + l.d->end - l.d->begin));
- ::memcpy(d->array + d->end, l.d->array + l.d->begin, n * sizeof(void*));
d->end += n;
}
return d->array + e;
diff --git a/src/corelib/tools/qlocale.cpp b/src/corelib/tools/qlocale.cpp
index e66f533ab8..18e608d534 100644
--- a/src/corelib/tools/qlocale.cpp
+++ b/src/corelib/tools/qlocale.cpp
@@ -3884,7 +3884,13 @@ QString QLocalePrivate::doubleToString(double d,
char *rve = 0;
char *buff = 0;
- digits = QLatin1String(qdtoa(d, mode, pr, &decpt, &sign, &rve, &buff));
+ QT_TRY {
+ digits = QLatin1String(qdtoa(d, mode, pr, &decpt, &sign, &rve, &buff));
+ } QT_CATCH(...) {
+ if (buff != 0)
+ free(buff);
+ QT_RETHROW;
+ }
if (buff != 0)
free(buff);
#endif // QT_QLOCALE_USES_FCVT
@@ -6734,8 +6740,13 @@ static char *_qdtoa( NEEDS_VOLATILE double d, int mode, int ndigits, int *decpt,
if (i <= 0)
i = 1;
}
- *resultp = static_cast<char *>(malloc(i + 1));
- Q_CHECK_PTR(resultp);
+ QT_TRY {
+ *resultp = static_cast<char *>(malloc(i + 1));
+ Q_CHECK_PTR(*resultp);
+ } QT_CATCH(...) {
+ Bfree(b);
+ QT_RETHROW;
+ }
s = s0 = *resultp;
if (ilim >= 0 && ilim <= Quick_max && try_quick) {
diff --git a/src/corelib/tools/qlocale_symbian.cpp b/src/corelib/tools/qlocale_symbian.cpp
index 976227d43b..95d4edfcf7 100644
--- a/src/corelib/tools/qlocale_symbian.cpp
+++ b/src/corelib/tools/qlocale_symbian.cpp
@@ -637,9 +637,9 @@ static QString symbianDayName(int day, bool short_format)
return QString();
if (short_format) {
- return qt_TDes2QStringL(TDayNameAbb(TDay(day)));
+ return qt_TDes2QString(TDayNameAbb(TDay(day)));
} else {
- return qt_TDes2QStringL(TDayName(TDay(day)));
+ return qt_TDes2QString(TDayName(TDay(day)));
}
}
@@ -655,9 +655,9 @@ static QString symbianMonthName(int month, bool short_format)
return QString();
if (short_format) {
- return qt_TDes2QStringL(TMonthNameAbb(TMonth(month)));
+ return qt_TDes2QString(TMonthNameAbb(TMonth(month)));
} else {
- return qt_TDes2QStringL(TMonthName(TMonth(month)));
+ return qt_TDes2QString(TMonthName(TMonth(month)));
}
}
@@ -678,7 +678,7 @@ static QString symbianDateFormat(bool short_format)
dateFormat.Set(ptrGetLongDateFormatSpec(_s60Locale));
}
- return s60ToQtFormat(qt_TDesC2QStringL(dateFormat));
+ return s60ToQtFormat(qt_TDesC2QString(dateFormat));
}
/*!
@@ -687,7 +687,7 @@ static QString symbianDateFormat(bool short_format)
*/
static QString symbianTimeFormat()
{
- return s60ToQtFormat(qt_TDesC2QStringL(ptrGetTimeFormatSpec(_s60Locale)));
+ return s60ToQtFormat(qt_TDesC2QString(ptrGetTimeFormatSpec(_s60Locale)));
}
/*!
@@ -719,7 +719,7 @@ static QString symbianDateToString(const QDate &date, bool short_format)
TRAPD(err, ptrTimeFormatL(timeStr, buffer, dateFormat, *_s60Locale.GetLocale());)
if (err == KErrNone)
- return qt_TDes2QStringL(buffer);
+ return qt_TDes2QString(buffer);
else
return QString();
}
@@ -749,7 +749,7 @@ static QString symbianTimeToString(const QTime &time)
)
if (err == KErrNone)
- return qt_TDes2QStringL(buffer);
+ return qt_TDes2QString(buffer);
else
return QString();
}
diff --git a/src/corelib/tools/qmap.h b/src/corelib/tools/qmap.h
index be80e75afe..70a2896a22 100644
--- a/src/corelib/tools/qmap.h
+++ b/src/corelib/tools/qmap.h
@@ -1019,12 +1019,12 @@ Q_INLINE_TEMPLATE int QMultiMap<Key, T>::remove(const Key &key, const T &value)
typename QMap<Key, T>::iterator end(QMap<Key, T>::end());
while (i != end && !qMapLessThanKey<Key>(key, i.key())) {
if (i.value() == value) {
-#if defined(Q_CC_RVCT)
- // RVCT has problems with scoping, apparently.
+#if defined(Q_CC_RVCT)
+ // RVCT has problems with scoping, apparently.
i = QMap<Key, T>::erase(i);
#else
i = erase(i);
-#endif
+#endif
++n;
} else {
++i;
diff --git a/src/corelib/tools/qregexp.cpp b/src/corelib/tools/qregexp.cpp
index 8bda634dde..0ac4fa2e25 100644
--- a/src/corelib/tools/qregexp.cpp
+++ b/src/corelib/tools/qregexp.cpp
@@ -1225,7 +1225,7 @@ private:
int yyPos; // the position of the next character to read
int yyLen; // the length of yyIn
int yyCh; // the last character read
- QRegExpCharClass *yyCharClass; // attribute for Tok_CharClass tokens
+ QScopedPointer<QRegExpCharClass> yyCharClass; // attribute for Tok_CharClass tokens
int yyMinRep; // attribute for Tok_Quantifier
int yyMaxRep; // ditto
QString yyError; // syntax error or overflow during parsing?
@@ -1316,8 +1316,7 @@ void QRegExpMatchState::prepareForMatch(QRegExpEngine *eng)
#endif
int numCaptures = eng->numCaptures();
int newCapturedSize = 2 + 2 * numCaptures;
- bigArray = (int *)realloc(bigArray, ((3 + 4 * ncap) * ns + 4 * ncap + newSlideTabSize + newCapturedSize)*sizeof(int));
- Q_CHECK_PTR(bigArray);
+ bigArray = q_check_ptr((int *)realloc(bigArray, ((3 + 4 * ncap) * ns + 4 * ncap + newSlideTabSize + newCapturedSize)*sizeof(int)));
// set all internal variables only _after_ bigArray is realloc'ed
// to prevent a broken regexp in oom case
@@ -3124,7 +3123,7 @@ void QRegExpEngine::startTokenizer(const QChar *rx, int len)
yyPos = 0;
yyLen = len;
yyCh = getChar();
- yyCharClass = new QRegExpCharClass;
+ yyCharClass.reset(new QRegExpCharClass);
yyMinRep = 0;
yyMaxRep = 0;
yyError = QString();
@@ -3318,8 +3317,7 @@ int QRegExpEngine::parse(const QChar *pattern, int len)
#endif
box.cat(middleBox);
box.cat(rightBox);
- delete yyCharClass;
- yyCharClass = 0;
+ yyCharClass.reset(0);
#ifndef QT_NO_REGEXP_CAPTURE
for (int i = 0; i < nf; ++i) {
diff --git a/src/corelib/tools/qringbuffer_p.h b/src/corelib/tools/qringbuffer_p.h
index 7cfca0e4d4..a0d694323d 100644
--- a/src/corelib/tools/qringbuffer_p.h
+++ b/src/corelib/tools/qringbuffer_p.h
@@ -245,12 +245,7 @@ public:
inline void clear() {
if(!buffers.isEmpty()) {
- QByteArray tmp = buffers[0];
- buffers.clear();
- buffers << tmp;
- //TODO merge this optimization ?
- //buffers.erase(buffers.begin() + 1, buffers.end());
- //>>>>>>> 08ae7ee1fb930e7d4b4039e2294cba69f9380964:src/corelib/tools/qringbuffer_p.h
+ buffers.erase(buffers.begin() + 1, buffers.end());
if (buffers.at(0).size() != basicBlockSize)
buffers[0].resize(basicBlockSize);
}
diff --git a/src/corelib/tools/qscopedpointer.cpp b/src/corelib/tools/qscopedpointer.cpp
index 912edb684e..cf24381461 100644
--- a/src/corelib/tools/qscopedpointer.cpp
+++ b/src/corelib/tools/qscopedpointer.cpp
@@ -39,6 +39,10 @@
**
****************************************************************************/
+#include "qscopedpointer.h"
+
+QT_BEGIN_NAMESPACE
+
/*!
\class QScopedPointer
\brief The QScopedPointer class stores a pointer to a dynamically allocated object, and deletes it upon destruction.
@@ -53,9 +57,7 @@
called resource acquisition is initialization(RAII).
QScopedPointer guarantees that the object pointed to will get deleted when
- the current scope dissapears, and it also has no way of releasing
- ownership, hence clearly communicating the lifetime and ownership of the
- object. These guarantees are convenient when reading the code.
+ the current scope dissapears.
Consider this function which does heap allocations, and have various exit points:
@@ -68,7 +70,7 @@
The code the compiler generates for QScopedPointer is the same as when
writing it manually. Code that makes use of \a delete are candidates for
- QScopedPointer usage(and if not, possibly another type of smart pointer
+ QScopedPointer usage (and if not, possibly another type of smart pointer
such as QSharedPointer). QScopedPointer intentionally has no copy
constructor or assignment operator, such that ownership and lifetime is
clearly communicated.
@@ -78,7 +80,26 @@
\snippet doc/src/snippets/code/src_corelib_tools_qscopedpointer.cpp 2
- \note QScopedPointer does not work with arrays.
+ \section1 Custom cleanup handlers
+
+ Arrays as well as pointers that have been allocated with \c malloc must
+ not be deleted using \c delete. QScopedPointer's second template parameter
+ can be used for custom cleanup handlers.
+
+ The following custom cleanup handlers exist:
+
+ \list
+ \i QScopedPointerDeleter - the default, deletes the pointer using \c delete
+ \i QScopedPointerArrayDeleter - deletes the pointer using \c{delete []}. Use
+ this handler for pointers that were allocated with \c{new []}.
+ \i QScopedPointerPodDeleter - deletes the pointer using \c{free()}. Use this
+ handler for pointers that were allocated with \c{malloc()}.
+ \endlist
+
+ You can pass your own classes as handlers, provided that they have a public
+ static function \c{void cleanup(T *pointer)}.
+
+ \snippet doc/src/snippets/code/src_corelib_tools_qscopedpointer.cpp 5
\section1 Forward Declared Pointers
@@ -175,9 +196,6 @@
Deletes the existing object it is pointing to if any, and sets its pointer to
\a other. QScopedPointer now owns \a other and will delete it in its
destructor.
-
- If \a other is equal to the value returned by data(), behavior is
- undefined.
*/
/*!
@@ -185,8 +203,8 @@
Returns the value of the pointer referenced by this object. The pointer of this
QScopedPointer object will be reset to \c null.
+
+ Callers of this function take ownership of the pointer.
*/
QT_END_NAMESPACE
-
-#endif
diff --git a/src/corelib/tools/qscopedpointer.h b/src/corelib/tools/qscopedpointer.h
index fc8f9e2454..62daacb2ef 100644
--- a/src/corelib/tools/qscopedpointer.h
+++ b/src/corelib/tools/qscopedpointer.h
@@ -49,8 +49,46 @@ QT_BEGIN_NAMESPACE
QT_MODULE(Core)
template <typename T>
+struct QScopedPointerDeleter
+{
+ static inline void cleanup(T *pointer)
+ {
+ // Enforce a complete type.
+ // If you get a compile error here, read the secion on forward declared
+ // classes in the QScopedPointer documentation.
+ typedef char IsIncompleteType[ sizeof(T) ? 1 : -1 ];
+ (void) sizeof(IsIncompleteType);
+
+ delete pointer;
+ }
+};
+
+template <typename T>
+struct QScopedPointerArrayDeleter
+{
+ static inline void cleanup(T *pointer)
+ {
+ // Enforce a complete type.
+ // If you get a compile error here, read the secion on forward declared
+ // classes in the QScopedPointer documentation.
+ typedef char IsIncompleteType[ sizeof(T) ? 1 : -1 ];
+ (void) sizeof(IsIncompleteType);
+
+ delete [] pointer;
+ }
+};
+
+struct QScopedPointerPodDeleter
+{
+ static inline void cleanup(void *pointer) { if (pointer) qFree(pointer); }
+};
+
+template <typename T, typename Cleanup = QScopedPointerDeleter<T> >
class QScopedPointer
{
+#ifndef Q_CC_NOKIAX86
+ typedef T *QScopedPointer:: *RestrictedBool;
+#endif
public:
explicit inline QScopedPointer(T *p = 0) : d(p)
{
@@ -58,16 +96,20 @@ public:
inline ~QScopedPointer()
{
- delete d;
+ T *oldD = this->d;
+ Cleanup::cleanup(oldD);
+ this->d = 0;
}
inline T &operator*() const
{
+ Q_ASSERT(d);
return *d;
}
inline T *operator->() const
{
+ Q_ASSERT(d);
return d;
}
@@ -81,10 +123,17 @@ public:
return d != other.d;
}
+#if defined(Q_CC_NOKIAX86) || defined(Q_QDOC)
inline operator bool() const
{
- return d;
+ return isNull() ? 0 : &QScopedPointer::d;
+ }
+#else
+ inline operator RestrictedBool() const
+ {
+ return isNull() ? 0 : &QScopedPointer::d;
}
+#endif
inline T *data() const
{
@@ -98,9 +147,11 @@ public:
inline void reset(T *other = 0)
{
+ if (d == other)
+ return;
T *oldD = d;
d = other;
- delete oldD;
+ Cleanup::cleanup(oldD);
}
inline T *take()
@@ -117,37 +168,52 @@ private:
Q_DISABLE_COPY(QScopedPointer)
};
-/* internal class - allows special handling for resetting and cleaning the pointer */
-template <typename T, typename CustomHandler>
-class QScopedCustomPointer : public QScopedPointer<T>
+template <typename T, typename Cleanup = QScopedPointerArrayDeleter<T> >
+class QScopedArrayPointer : public QScopedPointer<T, Cleanup>
{
public:
- inline QScopedCustomPointer(T *p = 0)
- : QScopedPointer<T>(p)
+ explicit inline QScopedArrayPointer(T *p = 0)
+ : QScopedPointer<T, Cleanup>(p)
{
}
- inline ~QScopedCustomPointer()
+ inline T &operator[](int i)
{
- T *oldD = this->d;
- this->d = 0;
- CustomHandler::cleanup(oldD);
+ return this->d[i];
}
- inline void reset(T *other = 0)
+ inline const T &operator[](int i) const
+ {
+ return this->d[i];
+ }
+
+private:
+ Q_DISABLE_COPY(QScopedArrayPointer)
+};
+
+/* Internal helper class - exposes the data through data_ptr (legacy from QShared).
+ Required for some internal Qt classes, do not use otherwise. */
+template <typename T, typename Cleanup = QScopedPointerDeleter<T> >
+class QCustomScopedPointer : public QScopedPointer<T, Cleanup>
+{
+public:
+ explicit inline QCustomScopedPointer(T *p = 0)
+ : QScopedPointer<T, Cleanup>(p)
{
- CustomHandler::reset(this->d, other);
}
inline T *&data_ptr()
{
return this->d;
}
+
+private:
+ Q_DISABLE_COPY(QCustomScopedPointer)
};
-/* Internal helper class - a handler for QShared* classes, to be used in QScopedCustomPointer */
+/* Internal helper class - a handler for QShared* classes, to be used in QCustomScopedPointer */
template <typename T>
-class QScopedSharedPointerHandler
+class QScopedPointerSharedDeleter
{
public:
static inline void cleanup(T *d)
@@ -155,24 +221,17 @@ public:
if (d && !d->ref.deref())
delete d;
}
-
- static inline void reset(T *&d, T *other)
- {
- T *oldD = d;
- d = other;
- cleanup(oldD);
- }
};
-/* Internal. This should really have been a typedef, but you can't have a templated typedef :)
+/* Internal.
This class is basically a scoped pointer pointing to a ref-counted object
*/
template <typename T>
-class QScopedSharedPointer : public QScopedCustomPointer<T, QScopedSharedPointerHandler<T> >
+class QScopedSharedPointer : public QCustomScopedPointer<T, QScopedPointerSharedDeleter<T> >
{
public:
- inline QScopedSharedPointer(T *p = 0)
- : QScopedCustomPointer<T, QScopedSharedPointerHandler<T> >(p)
+ explicit inline QScopedSharedPointer(T *p = 0)
+ : QCustomScopedPointer<T, QScopedPointerSharedDeleter<T> >(p)
{
}
@@ -189,8 +248,11 @@ public:
other->ref.ref();
T *oldD = this->d;
this->d = other;
- QScopedSharedPointerHandler<T>::cleanup(oldD);
+ QScopedPointerSharedDeleter<T>::cleanup(oldD);
}
+
+private:
+ Q_DISABLE_COPY(QScopedSharedPointer)
};
QT_END_NAMESPACE
diff --git a/src/corelib/tools/qstring.cpp b/src/corelib/tools/qstring.cpp
index f3c773b904..87e812fe45 100644
--- a/src/corelib/tools/qstring.cpp
+++ b/src/corelib/tools/qstring.cpp
@@ -1025,6 +1025,7 @@ QString::QString(int size, QChar ch)
QString::QString(int size, Qt::Initialization)
{
d = (Data*) qMalloc(sizeof(Data)+size*sizeof(QChar));
+ Q_CHECK_PTR(d);
d->ref = 1;
d->alloc = d->size = size;
d->clean = d->asciiCache = d->simpletext = d->righttoleft = d->capacity = 0;
@@ -1238,11 +1239,9 @@ void QString::realloc(int alloc)
asciiCache->remove(d);
}
#endif
- Data *x = static_cast<Data *>(qRealloc(d, sizeof(Data) + alloc * sizeof(QChar)));
- Q_CHECK_PTR(x);
- x->alloc = alloc;
- x->data = x->array;
- d = x;
+ d = static_cast<Data *>(q_check_ptr(qRealloc(d, sizeof(Data) + alloc * sizeof(QChar))));
+ d->alloc = alloc;
+ d->data = d->array;
}
}
diff --git a/src/corelib/tools/qtimeline.h b/src/corelib/tools/qtimeline.h
index 2d1ad42789..2a1c2c26b2 100644
--- a/src/corelib/tools/qtimeline.h
+++ b/src/corelib/tools/qtimeline.h
@@ -136,7 +136,7 @@ protected:
private:
Q_DISABLE_COPY(QTimeLine)
- Q_DECLARE_PRIVATE(QTimeLine)
+ Q_DECLARE_SCOPED_PRIVATE(QTimeLine)
};
QT_END_NAMESPACE
diff --git a/src/corelib/xml/qxmlstream.h b/src/corelib/xml/qxmlstream.h
index 7be71387bf..3215624f52 100644
--- a/src/corelib/xml/qxmlstream.h
+++ b/src/corelib/xml/qxmlstream.h
@@ -392,7 +392,7 @@ public:
private:
Q_DISABLE_COPY(QXmlStreamReader)
- Q_DECLARE_PRIVATE(QXmlStreamReader)
+ Q_DECLARE_SCOPED_PRIVATE(QXmlStreamReader)
QScopedPointer<QXmlStreamReaderPrivate> d_ptr;
};
@@ -465,7 +465,7 @@ public:
private:
Q_DISABLE_COPY(QXmlStreamWriter)
- Q_DECLARE_PRIVATE(QXmlStreamWriter)
+ Q_DECLARE_SCOPED_PRIVATE(QXmlStreamWriter)
QScopedPointer<QXmlStreamWriterPrivate> d_ptr;
};
#endif // QT_NO_XMLSTREAMWRITER
diff --git a/src/corelib/xml/qxmlstream_p.h b/src/corelib/xml/qxmlstream_p.h
index 7a4d2a8f95..68477afc3a 100644
--- a/src/corelib/xml/qxmlstream_p.h
+++ b/src/corelib/xml/qxmlstream_p.h
@@ -652,6 +652,7 @@ public:
if (tos + extraCapacity + 1 > cap) {
cap = qMax(tos + extraCapacity + 1, cap << 1 );
data = reinterpret_cast<T *>(qRealloc(data, cap * sizeof(T)));
+ Q_CHECK_PTR(data);
}
}
diff --git a/src/dbus/qdbusabstractadaptor.h b/src/dbus/qdbusabstractadaptor.h
index 06ba004b1b..2af1d14e0c 100644
--- a/src/dbus/qdbusabstractadaptor.h
+++ b/src/dbus/qdbusabstractadaptor.h
@@ -66,7 +66,7 @@ protected:
bool autoRelaySignals() const;
private:
- Q_DECLARE_PRIVATE(QDBusAbstractAdaptor)
+ Q_DECLARE_SCOPED_PRIVATE(QDBusAbstractAdaptor)
};
QT_END_NAMESPACE
diff --git a/src/dbus/qdbusabstractinterface.h b/src/dbus/qdbusabstractinterface.h
index e525f77082..0d016a3360 100644
--- a/src/dbus/qdbusabstractinterface.h
+++ b/src/dbus/qdbusabstractinterface.h
@@ -151,7 +151,7 @@ protected:
const QList<QVariant> &args = QList<QVariant>()) const;
private:
- Q_DECLARE_PRIVATE(QDBusAbstractInterface)
+ Q_DECLARE_SCOPED_PRIVATE(QDBusAbstractInterface)
Q_PRIVATE_SLOT(d_func(), void _q_serviceOwnerChanged(QString,QString,QString))
};
diff --git a/src/dbus/qdbusinterface.h b/src/dbus/qdbusinterface.h
index 9cf36f8e54..9d0779bec5 100644
--- a/src/dbus/qdbusinterface.h
+++ b/src/dbus/qdbusinterface.h
@@ -69,7 +69,7 @@ public:
virtual int qt_metacall(QMetaObject::Call, int, void **);
private:
- Q_DECLARE_PRIVATE(QDBusInterface)
+ Q_DECLARE_SCOPED_PRIVATE(QDBusInterface)
};
QT_END_NAMESPACE
diff --git a/src/dbus/qdbuspendingcall.h b/src/dbus/qdbuspendingcall.h
index 8dbbb3c1c5..182cff36d0 100644
--- a/src/dbus/qdbuspendingcall.h
+++ b/src/dbus/qdbuspendingcall.h
@@ -111,7 +111,7 @@ Q_SIGNALS:
void finished(QDBusPendingCallWatcher *self);
private:
- Q_DECLARE_PRIVATE(QDBusPendingCallWatcher)
+ Q_DECLARE_SCOPED_PRIVATE(QDBusPendingCallWatcher)
Q_PRIVATE_SLOT(d_func(), void _q_finished())
};
diff --git a/src/gui/accessible/qaccessiblewidget.cpp b/src/gui/accessible/qaccessiblewidget.cpp
index 447edc105f..2d09c9c076 100644
--- a/src/gui/accessible/qaccessiblewidget.cpp
+++ b/src/gui/accessible/qaccessiblewidget.cpp
@@ -269,7 +269,7 @@ QT_END_INCLUDE_NAMESPACE
class QACConnectionObject : public QObject
{
- Q_DECLARE_PRIVATE(QObject)
+ Q_DECLARE_SCOPED_PRIVATE(QObject)
public:
inline bool isSender(const QObject *receiver, const char *signal) const
{ return d_func()->isSender(receiver, signal); }
diff --git a/src/gui/dialogs/qabstractpagesetupdialog.h b/src/gui/dialogs/qabstractpagesetupdialog.h
index 7a3bb4895d..ba6b45222a 100644
--- a/src/gui/dialogs/qabstractpagesetupdialog.h
+++ b/src/gui/dialogs/qabstractpagesetupdialog.h
@@ -58,7 +58,7 @@ class QPrinter;
// ### Qt 5: Remove this class
class Q_GUI_EXPORT QAbstractPageSetupDialog : public QDialog
{
- Q_DECLARE_PRIVATE(QAbstractPageSetupDialog)
+ Q_DECLARE_SCOPED_PRIVATE(QAbstractPageSetupDialog)
Q_OBJECT
public:
diff --git a/src/gui/dialogs/qabstractprintdialog.h b/src/gui/dialogs/qabstractprintdialog.h
index 272d1b1892..0a94034627 100644
--- a/src/gui/dialogs/qabstractprintdialog.h
+++ b/src/gui/dialogs/qabstractprintdialog.h
@@ -58,7 +58,7 @@ class QPrinter;
// ### Qt 5: remove this class
class Q_GUI_EXPORT QAbstractPrintDialog : public QDialog
{
- Q_DECLARE_PRIVATE(QAbstractPrintDialog)
+ Q_DECLARE_SCOPED_PRIVATE(QAbstractPrintDialog)
Q_OBJECT
public:
diff --git a/src/gui/dialogs/qcolordialog.h b/src/gui/dialogs/qcolordialog.h
index 2c107bd317..d0aeec7ec3 100644
--- a/src/gui/dialogs/qcolordialog.h
+++ b/src/gui/dialogs/qcolordialog.h
@@ -57,7 +57,7 @@ class QColorDialogPrivate;
class Q_GUI_EXPORT QColorDialog : public QDialog
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QColorDialog)
+ Q_DECLARE_SCOPED_PRIVATE(QColorDialog)
Q_ENUMS(ColorDialogOption)
Q_PROPERTY(QColor currentColor READ currentColor WRITE setCurrentColor
NOTIFY currentColorChanged)
diff --git a/src/gui/dialogs/qdialog.h b/src/gui/dialogs/qdialog.h
index 8479994f53..0b5b326460 100644
--- a/src/gui/dialogs/qdialog.h
+++ b/src/gui/dialogs/qdialog.h
@@ -121,7 +121,7 @@ protected:
void adjustPosition(QWidget*);
private:
- Q_DECLARE_PRIVATE(QDialog)
+ Q_DECLARE_SCOPED_PRIVATE(QDialog)
Q_DISABLE_COPY(QDialog)
#ifdef Q_WS_WINCE_WM
diff --git a/src/gui/dialogs/qerrormessage.h b/src/gui/dialogs/qerrormessage.h
index 9721f46b2f..1d79f78c42 100644
--- a/src/gui/dialogs/qerrormessage.h
+++ b/src/gui/dialogs/qerrormessage.h
@@ -57,7 +57,7 @@ class QErrorMessagePrivate;
class Q_GUI_EXPORT QErrorMessage: public QDialog
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QErrorMessage)
+ Q_DECLARE_SCOPED_PRIVATE(QErrorMessage)
public:
explicit QErrorMessage(QWidget* parent = 0);
~QErrorMessage();
diff --git a/src/gui/dialogs/qfiledialog.h b/src/gui/dialogs/qfiledialog.h
index 70ee720775..987e436483 100644
--- a/src/gui/dialogs/qfiledialog.h
+++ b/src/gui/dialogs/qfiledialog.h
@@ -283,7 +283,7 @@ protected:
void changeEvent(QEvent *e);
private:
- Q_DECLARE_PRIVATE(QFileDialog)
+ Q_DECLARE_SCOPED_PRIVATE(QFileDialog)
Q_DISABLE_COPY(QFileDialog)
Q_PRIVATE_SLOT(d_func(), void _q_pathChanged(const QString &))
diff --git a/src/gui/dialogs/qfilesystemmodel.h b/src/gui/dialogs/qfilesystemmodel.h
index 769463cd91..5ab49ffe53 100644
--- a/src/gui/dialogs/qfilesystemmodel.h
+++ b/src/gui/dialogs/qfilesystemmodel.h
@@ -151,7 +151,7 @@ protected:
bool event(QEvent *event);
private:
- Q_DECLARE_PRIVATE(QFileSystemModel)
+ Q_DECLARE_SCOPED_PRIVATE(QFileSystemModel)
Q_DISABLE_COPY(QFileSystemModel)
Q_PRIVATE_SLOT(d_func(), void _q_directoryChanged(const QString &directory, const QStringList &list))
diff --git a/src/gui/dialogs/qfontdialog.h b/src/gui/dialogs/qfontdialog.h
index 6e0f1a0dab..4c80194f98 100644
--- a/src/gui/dialogs/qfontdialog.h
+++ b/src/gui/dialogs/qfontdialog.h
@@ -59,7 +59,7 @@ class QFontDialogPrivate;
class Q_GUI_EXPORT QFontDialog : public QDialog
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QFontDialog)
+ Q_DECLARE_SCOPED_PRIVATE(QFontDialog)
Q_ENUMS(FontDialogOption)
Q_PROPERTY(QFont currentFont READ currentFont WRITE setCurrentFont NOTIFY currentFontChanged)
Q_PROPERTY(FontDialogOptions options READ options WRITE setOptions)
diff --git a/src/gui/dialogs/qinputdialog.h b/src/gui/dialogs/qinputdialog.h
index 401b328bb8..edeaadd23a 100644
--- a/src/gui/dialogs/qinputdialog.h
+++ b/src/gui/dialogs/qinputdialog.h
@@ -59,7 +59,7 @@ class QInputDialogPrivate;
class Q_GUI_EXPORT QInputDialog : public QDialog
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QInputDialog)
+ Q_DECLARE_SCOPED_PRIVATE(QInputDialog)
// Q_ENUMS(InputMode InputDialogOption)
QDOC_PROPERTY(InputMode inputMode READ inputMode WRITE setInputMode)
QDOC_PROPERTY(QString labelText READ labelText WRITE setLabelText)
diff --git a/src/gui/dialogs/qmessagebox.h b/src/gui/dialogs/qmessagebox.h
index 048455eae1..d24d466dd9 100644
--- a/src/gui/dialogs/qmessagebox.h
+++ b/src/gui/dialogs/qmessagebox.h
@@ -336,7 +336,7 @@ private:
Q_PRIVATE_SLOT(d_func(), void _q_buttonClicked(QAbstractButton *))
Q_DISABLE_COPY(QMessageBox)
- Q_DECLARE_PRIVATE(QMessageBox)
+ Q_DECLARE_SCOPED_PRIVATE(QMessageBox)
};
Q_DECLARE_OPERATORS_FOR_FLAGS(QMessageBox::StandardButtons)
diff --git a/src/gui/dialogs/qpagesetupdialog.h b/src/gui/dialogs/qpagesetupdialog.h
index 43e316d805..1757c326a6 100644
--- a/src/gui/dialogs/qpagesetupdialog.h
+++ b/src/gui/dialogs/qpagesetupdialog.h
@@ -57,7 +57,7 @@ class QPageSetupDialogPrivate;
class Q_GUI_EXPORT QPageSetupDialog : public QAbstractPageSetupDialog
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QPageSetupDialog)
+ Q_DECLARE_SCOPED_PRIVATE(QPageSetupDialog)
Q_ENUMS(PageSetupDialogOption)
Q_PROPERTY(PageSetupDialogOptions options READ options WRITE setOptions)
diff --git a/src/gui/dialogs/qprintdialog.h b/src/gui/dialogs/qprintdialog.h
index e5a90cc2e4..5af70b335a 100644
--- a/src/gui/dialogs/qprintdialog.h
+++ b/src/gui/dialogs/qprintdialog.h
@@ -81,7 +81,7 @@ private:
class Q_GUI_EXPORT QPrintDialog : public QAbstractPrintDialog
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QPrintDialog)
+ Q_DECLARE_SCOPED_PRIVATE(QPrintDialog)
Q_ENUMS(PrintDialogOption)
Q_PROPERTY(PrintDialogOptions options READ options WRITE setOptions)
diff --git a/src/gui/dialogs/qprintpreviewdialog.h b/src/gui/dialogs/qprintpreviewdialog.h
index 85ed517dc2..5836e5afe7 100644
--- a/src/gui/dialogs/qprintpreviewdialog.h
+++ b/src/gui/dialogs/qprintpreviewdialog.h
@@ -58,7 +58,7 @@ class QPrintPreviewDialogPrivate;
class Q_GUI_EXPORT QPrintPreviewDialog : public QDialog
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QPrintPreviewDialog)
+ Q_DECLARE_SCOPED_PRIVATE(QPrintPreviewDialog)
public:
explicit QPrintPreviewDialog(QWidget *parent = 0, Qt::WindowFlags flags = 0);
diff --git a/src/gui/dialogs/qprogressdialog.h b/src/gui/dialogs/qprogressdialog.h
index 1118c45c4e..41a825a79a 100644
--- a/src/gui/dialogs/qprogressdialog.h
+++ b/src/gui/dialogs/qprogressdialog.h
@@ -61,7 +61,7 @@ class QProgressDialogPrivate;
class Q_GUI_EXPORT QProgressDialog : public QDialog
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QProgressDialog)
+ Q_DECLARE_SCOPED_PRIVATE(QProgressDialog)
Q_PROPERTY(bool wasCanceled READ wasCanceled)
Q_PROPERTY(int minimum READ minimum WRITE setMinimum)
Q_PROPERTY(int maximum READ maximum WRITE setMaximum)
diff --git a/src/gui/dialogs/qwizard.h b/src/gui/dialogs/qwizard.h
index d1f9cf70a7..a8976c4cc1 100644
--- a/src/gui/dialogs/qwizard.h
+++ b/src/gui/dialogs/qwizard.h
@@ -194,7 +194,7 @@ protected:
private:
Q_DISABLE_COPY(QWizard)
- Q_DECLARE_PRIVATE(QWizard)
+ Q_DECLARE_SCOPED_PRIVATE(QWizard)
Q_PRIVATE_SLOT(d_func(), void _q_emitCustomButtonClicked())
Q_PRIVATE_SLOT(d_func(), void _q_updateButtonStates())
Q_PRIVATE_SLOT(d_func(), void _q_handleFieldObjectDestroyed(QObject *))
@@ -246,7 +246,7 @@ protected:
private:
Q_DISABLE_COPY(QWizardPage)
- Q_DECLARE_PRIVATE(QWizardPage)
+ Q_DECLARE_SCOPED_PRIVATE(QWizardPage)
Q_PRIVATE_SLOT(d_func(), void _q_maybeEmitCompleteChanged())
Q_PRIVATE_SLOT(d_func(), void _q_updateCachedCompleteState())
diff --git a/src/gui/dialogs/qwizard_win.cpp b/src/gui/dialogs/qwizard_win.cpp
index 1def47f923..41b581ff9c 100644
--- a/src/gui/dialogs/qwizard_win.cpp
+++ b/src/gui/dialogs/qwizard_win.cpp
@@ -429,7 +429,7 @@ void QVistaHelper::setWindowPosHack()
class QHackWidget : public QWidget
{
public:
- Q_DECLARE_PRIVATE(QWidget)
+ Q_DECLARE_SCOPED_PRIVATE(QWidget)
QTLWExtra* topData() { return d_func()->topData(); }
};
diff --git a/src/gui/embedded/qdirectpainter_qws.h b/src/gui/embedded/qdirectpainter_qws.h
index eddde106ea..a7f82f1904 100644
--- a/src/gui/embedded/qdirectpainter_qws.h
+++ b/src/gui/embedded/qdirectpainter_qws.h
@@ -57,7 +57,7 @@ class QWSEmbedEvent;
class Q_GUI_EXPORT QDirectPainter : public QObject {
Q_OBJECT
- Q_DECLARE_PRIVATE(QDirectPainter)
+ Q_DECLARE_SCOPED_PRIVATE(QDirectPainter)
public:
enum SurfaceFlag { NonReserved = 0,
diff --git a/src/gui/embedded/qscreen_qws.cpp b/src/gui/embedded/qscreen_qws.cpp
index 05771ffd6b..af53cd7623 100644
--- a/src/gui/embedded/qscreen_qws.cpp
+++ b/src/gui/embedded/qscreen_qws.cpp
@@ -2420,7 +2420,7 @@ void QScreen::exposeRegion(QRegion r, int windowIndex)
#endif
compose(0, r, blendRegion, &blendBuffer, changing);
- if (blendBuffer) {
+ if (blendBuffer && !blendBuffer->isNull()) {
const QPoint offset = blendRegion.boundingRect().topLeft();
#ifndef QT_NO_QWS_CURSOR
if (qt_screencursor && !qt_screencursor->isAccelerated()) {
diff --git a/src/gui/embedded/qtransportauth_qws.h b/src/gui/embedded/qtransportauth_qws.h
index d8753fee7b..e633a90f80 100644
--- a/src/gui/embedded/qtransportauth_qws.h
+++ b/src/gui/embedded/qtransportauth_qws.h
@@ -169,7 +169,7 @@ private:
~QTransportAuth();
friend class QAuthDevice;
- Q_DECLARE_PRIVATE(QTransportAuth)
+ Q_DECLARE_SCOPED_PRIVATE(QTransportAuth)
};
class Q_GUI_EXPORT RequestAnalyzer
diff --git a/src/gui/embedded/qwindowsystem_qws.cpp b/src/gui/embedded/qwindowsystem_qws.cpp
index 954505176e..7384817d46 100644
--- a/src/gui/embedded/qwindowsystem_qws.cpp
+++ b/src/gui/embedded/qwindowsystem_qws.cpp
@@ -1761,10 +1761,16 @@ void QWSServerPrivate::cleanupFonts(bool force)
#if defined(QWS_DEBUG_FONTCLEANUP)
qDebug() << "removing unused font file" << fontName;
#endif
- QFile::remove(QFile::decodeName(fontName));
- sendFontRemovedEvent(fontName);
-
- it = fontReferenceCount.erase(it);
+ QT_TRY {
+ QFile::remove(QFile::decodeName(fontName));
+ sendFontRemovedEvent(fontName);
+
+ it = fontReferenceCount.erase(it);
+ } QT_CATCH(...) {
+ // so we were not able to remove the font.
+ // don't be angry and just continue with the next ones.
+ ++it;
+ }
}
}
diff --git a/src/gui/embedded/qwindowsystem_qws.h b/src/gui/embedded/qwindowsystem_qws.h
index 3cda9f65d9..04cd756a02 100644
--- a/src/gui/embedded/qwindowsystem_qws.h
+++ b/src/gui/embedded/qwindowsystem_qws.h
@@ -214,7 +214,7 @@ class Q_GUI_EXPORT QWSServer : public QObject
friend class QWSDisplay;
friend class QWSInputMethod;
Q_OBJECT
- Q_DECLARE_PRIVATE(QWSServer)
+ Q_DECLARE_SCOPED_PRIVATE(QWSServer)
public:
explicit QWSServer(int flags = 0, QObject *parent=0);
#ifdef QT3_SUPPORT
@@ -443,7 +443,7 @@ class QWSConvertSelectionCommand;
class Q_GUI_EXPORT QWSClient : public QObject
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QWSClient)
+ Q_DECLARE_SCOPED_PRIVATE(QWSClient)
public:
QWSClient(QObject* parent, QWS_SOCK_BASE *, int id);
~QWSClient();
diff --git a/src/gui/embedded/qwsembedwidget.h b/src/gui/embedded/qwsembedwidget.h
index 8313c38f94..d880454db4 100644
--- a/src/gui/embedded/qwsembedwidget.h
+++ b/src/gui/embedded/qwsembedwidget.h
@@ -71,7 +71,7 @@ protected:
void showEvent(QShowEvent *event);
private:
- Q_DECLARE_PRIVATE(QWSEmbedWidget)
+ Q_DECLARE_SCOPED_PRIVATE(QWSEmbedWidget)
};
QT_END_NAMESPACE
diff --git a/src/gui/embedded/qwsmanager_qws.h b/src/gui/embedded/qwsmanager_qws.h
index 5a4312c50d..86aadc91bc 100644
--- a/src/gui/embedded/qwsmanager_qws.h
+++ b/src/gui/embedded/qwsmanager_qws.h
@@ -66,7 +66,7 @@ class QWSManagerPrivate;
class Q_GUI_EXPORT QWSManager : public QObject
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QWSManager)
+ Q_DECLARE_SCOPED_PRIVATE(QWSManager)
public:
explicit QWSManager(QWidget *);
~QWSManager();
diff --git a/src/gui/graphicsview/qgraphicsgridlayout.h b/src/gui/graphicsview/qgraphicsgridlayout.h
index b9db03e29b..faa91b35b6 100644
--- a/src/gui/graphicsview/qgraphicsgridlayout.h
+++ b/src/gui/graphicsview/qgraphicsgridlayout.h
@@ -127,7 +127,7 @@ public:
private:
Q_DISABLE_COPY(QGraphicsGridLayout)
- Q_DECLARE_PRIVATE(QGraphicsGridLayout)
+ Q_DECLARE_SCOPED_PRIVATE(QGraphicsGridLayout)
};
inline void QGraphicsGridLayout::addItem(QGraphicsLayoutItem *aitem, int arow, int acolumn, Qt::Alignment aalignment)
diff --git a/src/gui/graphicsview/qgraphicsitem.h b/src/gui/graphicsview/qgraphicsitem.h
index 3e7224d9ed..221032305a 100644
--- a/src/gui/graphicsview/qgraphicsitem.h
+++ b/src/gui/graphicsview/qgraphicsitem.h
@@ -428,7 +428,7 @@ protected:
private:
Q_DISABLE_COPY(QGraphicsItem)
- Q_DECLARE_PRIVATE(QGraphicsItem)
+ Q_DECLARE_SCOPED_PRIVATE(QGraphicsItem)
friend class QGraphicsItemGroup;
friend class QGraphicsScene;
friend class QGraphicsScenePrivate;
@@ -568,7 +568,7 @@ protected:
private:
Q_DISABLE_COPY(QAbstractGraphicsShapeItem)
- Q_DECLARE_PRIVATE(QAbstractGraphicsShapeItem)
+ Q_DECLARE_SCOPED_PRIVATE(QAbstractGraphicsShapeItem)
};
class QGraphicsPathItemPrivate;
@@ -611,7 +611,7 @@ protected:
private:
Q_DISABLE_COPY(QGraphicsPathItem)
- Q_DECLARE_PRIVATE(QGraphicsPathItem)
+ Q_DECLARE_SCOPED_PRIVATE(QGraphicsPathItem)
};
class QGraphicsRectItemPrivate;
@@ -661,7 +661,7 @@ protected:
private:
Q_DISABLE_COPY(QGraphicsRectItem)
- Q_DECLARE_PRIVATE(QGraphicsRectItem)
+ Q_DECLARE_SCOPED_PRIVATE(QGraphicsRectItem)
};
inline void QGraphicsRectItem::setRect(qreal ax, qreal ay, qreal w, qreal h)
@@ -720,7 +720,7 @@ protected:
private:
Q_DISABLE_COPY(QGraphicsEllipseItem)
- Q_DECLARE_PRIVATE(QGraphicsEllipseItem)
+ Q_DECLARE_SCOPED_PRIVATE(QGraphicsEllipseItem)
};
inline void QGraphicsEllipseItem::setRect(qreal ax, qreal ay, qreal w, qreal h)
@@ -770,7 +770,7 @@ protected:
private:
Q_DISABLE_COPY(QGraphicsPolygonItem)
- Q_DECLARE_PRIVATE(QGraphicsPolygonItem)
+ Q_DECLARE_SCOPED_PRIVATE(QGraphicsPolygonItem)
};
class QGraphicsLineItemPrivate;
@@ -824,7 +824,7 @@ protected:
private:
Q_DISABLE_COPY(QGraphicsLineItem)
- Q_DECLARE_PRIVATE(QGraphicsLineItem)
+ Q_DECLARE_SCOPED_PRIVATE(QGraphicsLineItem)
};
class QGraphicsPixmapItemPrivate;
@@ -883,7 +883,7 @@ protected:
private:
Q_DISABLE_COPY(QGraphicsPixmapItem)
- Q_DECLARE_PRIVATE(QGraphicsPixmapItem)
+ Q_DECLARE_SCOPED_PRIVATE(QGraphicsPixmapItem)
};
inline void QGraphicsPixmapItem::setOffset(qreal ax, qreal ay)
@@ -1039,7 +1039,7 @@ protected:
private:
Q_DISABLE_COPY(QGraphicsSimpleTextItem)
- Q_DECLARE_PRIVATE(QGraphicsSimpleTextItem)
+ Q_DECLARE_SCOPED_PRIVATE(QGraphicsSimpleTextItem)
};
class QGraphicsItemGroupPrivate;
@@ -1068,7 +1068,7 @@ public:
private:
Q_DISABLE_COPY(QGraphicsItemGroup)
- Q_DECLARE_PRIVATE(QGraphicsItemGroup)
+ Q_DECLARE_SCOPED_PRIVATE(QGraphicsItemGroup)
};
template <class T> inline T qgraphicsitem_cast(QGraphicsItem *item)
diff --git a/src/gui/graphicsview/qgraphicslayout.h b/src/gui/graphicsview/qgraphicslayout.h
index 7c758bc07f..d2c45aba5d 100644
--- a/src/gui/graphicsview/qgraphicslayout.h
+++ b/src/gui/graphicsview/qgraphicslayout.h
@@ -81,7 +81,7 @@ protected:
private:
Q_DISABLE_COPY(QGraphicsLayout)
- Q_DECLARE_PRIVATE(QGraphicsLayout)
+ Q_DECLARE_SCOPED_PRIVATE(QGraphicsLayout)
friend class QGraphicsWidget;
};
diff --git a/src/gui/graphicsview/qgraphicslayoutitem.h b/src/gui/graphicsview/qgraphicslayoutitem.h
index 60f894f0f3..156c8439b7 100644
--- a/src/gui/graphicsview/qgraphicslayoutitem.h
+++ b/src/gui/graphicsview/qgraphicslayoutitem.h
@@ -117,7 +117,7 @@ protected:
private:
QSizeF *effectiveSizeHints(const QSizeF &constraint) const;
- Q_DECLARE_PRIVATE(QGraphicsLayoutItem)
+ Q_DECLARE_SCOPED_PRIVATE(QGraphicsLayoutItem)
friend class QGraphicsLayout;
};
diff --git a/src/gui/graphicsview/qgraphicslinearlayout.h b/src/gui/graphicsview/qgraphicslinearlayout.h
index f469680e9e..91335db523 100644
--- a/src/gui/graphicsview/qgraphicslinearlayout.h
+++ b/src/gui/graphicsview/qgraphicslinearlayout.h
@@ -108,7 +108,7 @@ protected:
private:
Q_DISABLE_COPY(QGraphicsLinearLayout)
- Q_DECLARE_PRIVATE(QGraphicsLinearLayout)
+ Q_DECLARE_SCOPED_PRIVATE(QGraphicsLinearLayout)
};
#endif
diff --git a/src/gui/graphicsview/qgraphicsscene.h b/src/gui/graphicsview/qgraphicsscene.h
index c0c6e75f49..c2f7a2205c 100644
--- a/src/gui/graphicsview/qgraphicsscene.h
+++ b/src/gui/graphicsview/qgraphicsscene.h
@@ -291,7 +291,7 @@ Q_SIGNALS:
void selectionChanged();
private:
- Q_DECLARE_PRIVATE(QGraphicsScene)
+ Q_DECLARE_SCOPED_PRIVATE(QGraphicsScene)
Q_DISABLE_COPY(QGraphicsScene)
Q_PRIVATE_SLOT(d_func(), void _q_emitUpdated())
Q_PRIVATE_SLOT(d_func(), void _q_polishItems())
diff --git a/src/gui/graphicsview/qgraphicssceneevent.h b/src/gui/graphicsview/qgraphicssceneevent.h
index ea17f9d992..04458102ee 100644
--- a/src/gui/graphicsview/qgraphicssceneevent.h
+++ b/src/gui/graphicsview/qgraphicssceneevent.h
@@ -76,7 +76,7 @@ public:
protected:
QGraphicsSceneEvent(QGraphicsSceneEventPrivate &dd, Type type = None);
QScopedPointer<QGraphicsSceneEventPrivate> d_ptr;
- Q_DECLARE_PRIVATE(QGraphicsSceneEvent)
+ Q_DECLARE_SCOPED_PRIVATE(QGraphicsSceneEvent)
};
class QGraphicsSceneMouseEventPrivate;
@@ -123,7 +123,7 @@ public:
void setModifiers(Qt::KeyboardModifiers modifiers);
private:
- Q_DECLARE_PRIVATE(QGraphicsSceneMouseEvent)
+ Q_DECLARE_SCOPED_PRIVATE(QGraphicsSceneMouseEvent)
};
class QGraphicsSceneWheelEventPrivate;
@@ -155,7 +155,7 @@ public:
void setOrientation(Qt::Orientation orientation);
private:
- Q_DECLARE_PRIVATE(QGraphicsSceneWheelEvent)
+ Q_DECLARE_SCOPED_PRIVATE(QGraphicsSceneWheelEvent)
};
class QGraphicsSceneContextMenuEventPrivate;
@@ -183,7 +183,7 @@ public:
void setReason(Reason reason);
private:
- Q_DECLARE_PRIVATE(QGraphicsSceneContextMenuEvent)
+ Q_DECLARE_SCOPED_PRIVATE(QGraphicsSceneContextMenuEvent)
};
class QGraphicsSceneHoverEventPrivate;
@@ -215,7 +215,7 @@ public:
void setModifiers(Qt::KeyboardModifiers modifiers);
private:
- Q_DECLARE_PRIVATE(QGraphicsSceneHoverEvent)
+ Q_DECLARE_SCOPED_PRIVATE(QGraphicsSceneHoverEvent)
};
class QGraphicsSceneHelpEventPrivate;
@@ -232,7 +232,7 @@ public:
void setScreenPos(const QPoint &pos);
private:
- Q_DECLARE_PRIVATE(QGraphicsSceneHelpEvent)
+ Q_DECLARE_SCOPED_PRIVATE(QGraphicsSceneHelpEvent)
};
class QGraphicsSceneDragDropEventPrivate;
@@ -274,13 +274,13 @@ public:
void setMimeData(const QMimeData *data);
private:
- Q_DECLARE_PRIVATE(QGraphicsSceneDragDropEvent)
+ Q_DECLARE_SCOPED_PRIVATE(QGraphicsSceneDragDropEvent)
};
class QGraphicsSceneResizeEventPrivate;
class Q_GUI_EXPORT QGraphicsSceneResizeEvent : public QGraphicsSceneEvent
{
- Q_DECLARE_PRIVATE(QGraphicsSceneResizeEvent)
+ Q_DECLARE_SCOPED_PRIVATE(QGraphicsSceneResizeEvent)
public:
QGraphicsSceneResizeEvent();
~QGraphicsSceneResizeEvent();
@@ -295,7 +295,7 @@ public:
class QGraphicsSceneMoveEventPrivate;
class Q_GUI_EXPORT QGraphicsSceneMoveEvent : public QGraphicsSceneEvent
{
- Q_DECLARE_PRIVATE(QGraphicsSceneMoveEvent)
+ Q_DECLARE_SCOPED_PRIVATE(QGraphicsSceneMoveEvent)
public:
QGraphicsSceneMoveEvent();
~QGraphicsSceneMoveEvent();
diff --git a/src/gui/graphicsview/qgraphicsview.h b/src/gui/graphicsview/qgraphicsview.h
index 1285e456af..425f174920 100644
--- a/src/gui/graphicsview/qgraphicsview.h
+++ b/src/gui/graphicsview/qgraphicsview.h
@@ -269,7 +269,7 @@ protected:
const QStyleOptionGraphicsItem options[]);
private:
- Q_DECLARE_PRIVATE(QGraphicsView)
+ Q_DECLARE_SCOPED_PRIVATE(QGraphicsView)
Q_DISABLE_COPY(QGraphicsView)
#ifndef QT_NO_CURSOR
Q_PRIVATE_SLOT(d_func(), void _q_setViewportCursor(const QCursor &))
diff --git a/src/gui/image/qimageiohandler.h b/src/gui/image/qimageiohandler.h
index 50508c04ac..97b2ba27a2 100644
--- a/src/gui/image/qimageiohandler.h
+++ b/src/gui/image/qimageiohandler.h
@@ -60,7 +60,7 @@ class QVariant;
class QImageIOHandlerPrivate;
class Q_GUI_EXPORT QImageIOHandler
{
- Q_DECLARE_PRIVATE(QImageIOHandler)
+ Q_DECLARE_SCOPED_PRIVATE(QImageIOHandler)
public:
QImageIOHandler();
virtual ~QImageIOHandler();
diff --git a/src/gui/image/qmovie.h b/src/gui/image/qmovie.h
index afee789c35..eda5aa120b 100644
--- a/src/gui/image/qmovie.h
+++ b/src/gui/image/qmovie.h
@@ -74,7 +74,7 @@ class QMoviePrivate;
class Q_GUI_EXPORT QMovie : public QObject
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QMovie)
+ Q_DECLARE_SCOPED_PRIVATE(QMovie)
Q_ENUMS(MovieState CacheMode)
Q_PROPERTY(int speed READ speed WRITE setSpeed)
Q_PROPERTY(CacheMode cacheMode READ cacheMode WRITE setCacheMode)
diff --git a/src/gui/image/qpaintengine_pic_p.h b/src/gui/image/qpaintengine_pic_p.h
index 1e6413ee9d..2aaa5f018e 100644
--- a/src/gui/image/qpaintengine_pic_p.h
+++ b/src/gui/image/qpaintengine_pic_p.h
@@ -65,7 +65,7 @@ class QBuffer;
class QPicturePaintEngine : public QPaintEngine
{
- Q_DECLARE_PRIVATE(QPicturePaintEngine)
+ Q_DECLARE_SCOPED_PRIVATE(QPicturePaintEngine)
public:
QPicturePaintEngine();
~QPicturePaintEngine();
diff --git a/src/gui/image/qpicture.h b/src/gui/image/qpicture.h
index c323f0e52d..4d9af37496 100644
--- a/src/gui/image/qpicture.h
+++ b/src/gui/image/qpicture.h
@@ -56,7 +56,7 @@ QT_MODULE(Gui)
class QPicturePrivate;
class Q_GUI_EXPORT QPicture : public QPaintDevice
{
- Q_DECLARE_PRIVATE(QPicture)
+ Q_DECLARE_SCOPED_PRIVATE(QPicture)
public:
explicit QPicture(int formatVersion = -1);
QPicture(const QPicture &);
diff --git a/src/gui/image/qpixmap.cpp b/src/gui/image/qpixmap.cpp
index 44181d1040..1bcb846f30 100644
--- a/src/gui/image/qpixmap.cpp
+++ b/src/gui/image/qpixmap.cpp
@@ -261,7 +261,12 @@ QPixmap::QPixmap(const QString& fileName, const char *format, Qt::ImageConversio
if (!qt_pixmap_thread_test())
return;
- load(fileName, format, flags);
+ QT_TRY {
+ load(fileName, format, flags);
+ } QT_CATCH(...) {
+ deref();
+ QT_RETHROW;
+ }
}
/*!
@@ -309,12 +314,17 @@ QPixmap::QPixmap(const char * const xpm[])
if (!xpm)
return;
- QImage image(xpm);
- if (!image.isNull()) {
- if (data->pixelType() == QPixmapData::BitmapType)
- *this = QBitmap::fromImage(image);
- else
- *this = fromImage(image);
+ QT_TRY {
+ QImage image(xpm);
+ if (!image.isNull()) {
+ if (data->pixelType() == QPixmapData::BitmapType)
+ *this = QBitmap::fromImage(image);
+ else
+ *this = fromImage(image);
+ }
+ } QT_CATCH(...) {
+ deref();
+ QT_RETHROW;
}
}
#endif
@@ -1894,7 +1904,6 @@ int QPixmap::defaultDepth()
#elif defined(Q_OS_SYMBIAN)
return S60->screenDepth;
#endif
-
}
/*!
diff --git a/src/gui/image/qpixmap_raster.cpp b/src/gui/image/qpixmap_raster.cpp
index 9cc896b473..e0d952a100 100644
--- a/src/gui/image/qpixmap_raster.cpp
+++ b/src/gui/image/qpixmap_raster.cpp
@@ -172,9 +172,13 @@ void QRasterPixmapData::fromImage(const QImage &sourceImage,
}
}
#endif
- w = image.d->width;
- h = image.d->height;
- d = image.d->depth;
+ if (image.d) {
+ w = image.d->width;
+ h = image.d->height;
+ d = image.d->depth;
+ } else {
+ w = h = d = 0;
+ }
is_null = (w <= 0 || h <= 0);
setSerialNumber(image.serialNumber());
diff --git a/src/gui/image/qpixmap_s60.cpp b/src/gui/image/qpixmap_s60.cpp
index 132e26ebd4..0460c30c87 100644
--- a/src/gui/image/qpixmap_s60.cpp
+++ b/src/gui/image/qpixmap_s60.cpp
@@ -82,7 +82,7 @@ QPixmap QPixmap::grabWindow(WId winId, int x, int y, int w, int h )
return QPixmap();
TDisplayMode displayMode = screenDevice->DisplayMode();
- CFbsBitmap* temporary = new (ELeave) CFbsBitmap();
+ CFbsBitmap* temporary = q_check_ptr(new CFbsBitmap()); // CBase derived object needs check on new
TInt error = temporary->Create(srcRect.Size(), displayMode);
if (error == KErrNone)
error = screenDevice->CopyScreenToBitmap(temporary, srcRect);
@@ -171,7 +171,7 @@ CFbsBitmap *QPixmap::toSymbianCFbsBitmap() const
return 0;
}
- CFbsBitmap* bitmap = new (ELeave) CFbsBitmap();
+ CFbsBitmap* bitmap = q_check_ptr(new CFbsBitmap()); // CBase derived object needs check on new
TSize size(width(), height());
if (bitmap->Create(size, mode) != KErrNone) {
CBase::Delete(bitmap);
diff --git a/src/gui/image/qpixmapcache.cpp b/src/gui/image/qpixmapcache.cpp
index b4a3a49a59..aedc90cfbc 100644
--- a/src/gui/image/qpixmapcache.cpp
+++ b/src/gui/image/qpixmapcache.cpp
@@ -368,7 +368,8 @@ void QPMCache::resizeKeyArray(int size)
{
if (size <= keyArraySize || size == 0)
return;
- keyArray = reinterpret_cast<int *>(realloc(keyArray, size * sizeof(int)));
+ keyArray = q_check_ptr(reinterpret_cast<int *>(realloc(keyArray,
+ size * sizeof(int))));
for (int i = keyArraySize; i != size; ++i)
keyArray[i] = i + 1;
keyArraySize = size;
diff --git a/src/gui/image/qpixmapfilter_p.h b/src/gui/image/qpixmapfilter_p.h
index 51292b3d61..83fc1b94fd 100644
--- a/src/gui/image/qpixmapfilter_p.h
+++ b/src/gui/image/qpixmapfilter_p.h
@@ -70,7 +70,7 @@ class QPixmapFilterPrivate;
class Q_GUI_EXPORT QPixmapFilter : public QObject
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QPixmapFilter)
+ Q_DECLARE_SCOPED_PRIVATE(QPixmapFilter)
public:
virtual ~QPixmapFilter() = 0;
@@ -98,7 +98,7 @@ class QPixmapConvolutionFilterPrivate;
class Q_GUI_EXPORT QPixmapConvolutionFilter : public QPixmapFilter
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QPixmapConvolutionFilter)
+ Q_DECLARE_SCOPED_PRIVATE(QPixmapConvolutionFilter)
public:
QPixmapConvolutionFilter(QObject *parent = 0);
@@ -122,7 +122,7 @@ class QPixmapColorizeFilterPrivate;
class Q_GUI_EXPORT QPixmapColorizeFilter : public QPixmapFilter
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QPixmapColorizeFilter)
+ Q_DECLARE_SCOPED_PRIVATE(QPixmapColorizeFilter)
public:
QPixmapColorizeFilter(QObject *parent = 0);
@@ -138,7 +138,7 @@ class QPixmapDropShadowFilterPrivate;
class Q_GUI_EXPORT QPixmapDropShadowFilter : public QPixmapFilter
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QPixmapDropShadowFilter)
+ Q_DECLARE_SCOPED_PRIVATE(QPixmapDropShadowFilter)
public:
QPixmapDropShadowFilter(QObject *parent = 0);
diff --git a/src/gui/inputmethod/qcoefepinputcontext_p.h b/src/gui/inputmethod/qcoefepinputcontext_p.h
index d7547636c1..e63f045daa 100644
--- a/src/gui/inputmethod/qcoefepinputcontext_p.h
+++ b/src/gui/inputmethod/qcoefepinputcontext_p.h
@@ -121,6 +121,7 @@ public:
private:
void DoCommitFepInlineEditL();
MCoeFepAwareTextEditor_Extension1* Extension1(TBool& aSetToTrue);
+ void ReportAknEdStateEvent(MAknEdStateObserver::EAknEdwinStateEvent aEventType);
// From MCoeFepAwareTextEditor_Extension1
public:
diff --git a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp
index c03426f787..2ef1175a67 100644
--- a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp
+++ b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp
@@ -60,7 +60,7 @@ QT_BEGIN_NAMESPACE
QCoeFepInputContext::QCoeFepInputContext(QObject *parent)
: QInputContext(parent),
- m_fepState(new (ELeave) CAknEdwinState),
+ m_fepState(q_check_ptr(new CAknEdwinState)), // CBase derived object needs check on new
m_lastImHints(Qt::ImhNone),
m_textCapabilities(TCoeInputCapabilities::EAllText),
m_isEditing(false),
@@ -100,6 +100,11 @@ void QCoeFepInputContext::reset()
CCoeEnv::Static()->Fep()->CancelTransaction();
}
+void QCoeFepInputContext::ReportAknEdStateEvent(MAknEdStateObserver::EAknEdwinStateEvent aEventType)
+{
+ QT_TRAP_THROWING(m_fepState->ReportAknEdStateEventL(QT_EAknCursorPositionChanged));
+}
+
void QCoeFepInputContext::update()
{
updateHints(false);
@@ -112,7 +117,7 @@ void QCoeFepInputContext::update()
// Don't be fooled (as I was) by the name of this enumeration.
// What it really does is tell the virtual keyboard UI that the text has been
// updated and it should be reflected in the internal display of the VK.
- m_fepState->ReportAknEdStateEventL(QT_EAknCursorPositionChanged);
+ ReportAknEdStateEvent(QT_EAknCursorPositionChanged);
}
void QCoeFepInputContext::setFocusWidget(QWidget *w)
@@ -394,7 +399,7 @@ void QCoeFepInputContext::applyHints(Qt::InputMethodHints hints)
flags = EAknEditorAllInputModes;
}
m_fepState->SetPermittedInputModes(flags);
- m_fepState->ReportAknEdStateEventL(MAknEdStateObserver::EAknEdwinStateInputModeUpdate);
+ ReportAknEdStateEvent(MAknEdStateObserver::EAknEdwinStateInputModeUpdate);
if (hints & ImhPreferLowercase) {
m_fepState->SetDefaultCase(EAknEditorLowerCase);
@@ -423,7 +428,7 @@ void QCoeFepInputContext::applyHints(Qt::InputMethodHints hints)
}
}
m_fepState->SetPermittedCases(flags);
- m_fepState->ReportAknEdStateEventL(MAknEdStateObserver::EAknEdwinStateCaseModeUpdate);
+ ReportAknEdStateEvent(MAknEdStateObserver::EAknEdwinStateCaseModeUpdate);
flags = 0;
if (hints & ImhUppercaseOnly && !(hints & ImhLowercaseOnly)
@@ -435,7 +440,7 @@ void QCoeFepInputContext::applyHints(Qt::InputMethodHints hints)
flags |= EAknEditorFlagNoT9;
}
m_fepState->SetFlags(flags);
- m_fepState->ReportAknEdStateEventL(MAknEdStateObserver::EAknEdwinStateFlagsUpdate);
+ ReportAknEdStateEvent(MAknEdStateObserver::EAknEdwinStateFlagsUpdate);
if (hints & ImhFormattedNumbersOnly) {
flags = EAknEditorCalculatorNumberModeKeymap;
@@ -525,7 +530,7 @@ void QCoeFepInputContext::StartFepInlineEditL(const TDesC& aInitialInlineText,
m_cursorVisibility = aCursorVisibility ? 1 : 0;
m_inlinePosition = aPositionOfInsertionPointInInlineText;
- m_preeditString = qt_TDesC2QStringL(aInitialInlineText);
+ m_preeditString = qt_TDesC2QString(aInitialInlineText);
m_formatRetriever = &aInlineTextFormatRetriever;
m_pointerHandler = &aPointerEventHandlerDuringInlineEdit;
@@ -555,7 +560,7 @@ void QCoeFepInputContext::UpdateFepInlineTextL(const TDesC& aNewInlineText,
m_inlinePosition,
m_cursorVisibility,
QVariant()));
- m_preeditString = qt_TDesC2QStringL(aNewInlineText);
+ m_preeditString = qt_TDesC2QString(aNewInlineText);
QInputMethodEvent event(m_preeditString, attributes);
sendEvent(event);
}
diff --git a/src/gui/inputmethod/qinputcontext.h b/src/gui/inputmethod/qinputcontext.h
index e4e5f9d9f3..87112b5682 100644
--- a/src/gui/inputmethod/qinputcontext.h
+++ b/src/gui/inputmethod/qinputcontext.h
@@ -83,7 +83,7 @@ class QInputContextPrivate;
class Q_GUI_EXPORT QInputContext : public QObject
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QInputContext)
+ Q_DECLARE_SCOPED_PRIVATE(QInputContext)
public:
explicit QInputContext(QObject* parent = 0);
virtual ~QInputContext();
diff --git a/src/gui/inputmethod/qmacinputcontext_p.h b/src/gui/inputmethod/qmacinputcontext_p.h
index 4fcba9a890..69ac3e87de 100644
--- a/src/gui/inputmethod/qmacinputcontext_p.h
+++ b/src/gui/inputmethod/qmacinputcontext_p.h
@@ -61,7 +61,7 @@ QT_BEGIN_NAMESPACE
class Q_GUI_EXPORT QMacInputContext : public QInputContext
{
Q_OBJECT
- //Q_DECLARE_PRIVATE(QMacInputContext)
+ //Q_DECLARE_SCOPED_PRIVATE(QMacInputContext)
void createTextDocument();
public:
explicit QMacInputContext(QObject* parent = 0);
diff --git a/src/gui/itemviews/qabstractitemview.h b/src/gui/itemviews/qabstractitemview.h
index da6f0ea7dc..4f2aa1d29b 100644
--- a/src/gui/itemviews/qabstractitemview.h
+++ b/src/gui/itemviews/qabstractitemview.h
@@ -345,7 +345,7 @@ protected:
#endif
private:
- Q_DECLARE_PRIVATE(QAbstractItemView)
+ Q_DECLARE_SCOPED_PRIVATE(QAbstractItemView)
Q_DISABLE_COPY(QAbstractItemView)
Q_PRIVATE_SLOT(d_func(), void _q_columnsAboutToBeRemoved(const QModelIndex&, int, int))
Q_PRIVATE_SLOT(d_func(), void _q_columnsRemoved(const QModelIndex&, int, int))
diff --git a/src/gui/itemviews/qabstractproxymodel.h b/src/gui/itemviews/qabstractproxymodel.h
index 8a703da5e6..356d923304 100644
--- a/src/gui/itemviews/qabstractproxymodel.h
+++ b/src/gui/itemviews/qabstractproxymodel.h
@@ -87,7 +87,7 @@ protected:
QAbstractProxyModel(QAbstractProxyModelPrivate &, QObject *parent);
private:
- Q_DECLARE_PRIVATE(QAbstractProxyModel)
+ Q_DECLARE_SCOPED_PRIVATE(QAbstractProxyModel)
Q_DISABLE_COPY(QAbstractProxyModel)
Q_PRIVATE_SLOT(d_func(), void _q_sourceModelDestroyed())
};
diff --git a/src/gui/itemviews/qcolumnview.h b/src/gui/itemviews/qcolumnview.h
index f8697e9a41..df5b84e0fe 100644
--- a/src/gui/itemviews/qcolumnview.h
+++ b/src/gui/itemviews/qcolumnview.h
@@ -106,7 +106,7 @@ protected:
void initializeColumn(QAbstractItemView *column) const;
private:
- Q_DECLARE_PRIVATE(QColumnView)
+ Q_DECLARE_SCOPED_PRIVATE(QColumnView)
Q_DISABLE_COPY(QColumnView)
Q_PRIVATE_SLOT(d_func(), void _q_gripMoved(int))
Q_PRIVATE_SLOT(d_func(), void _q_changeCurrentColumn())
diff --git a/src/gui/itemviews/qcolumnviewgrip_p.h b/src/gui/itemviews/qcolumnviewgrip_p.h
index 4dc35ec2f6..8e670e97f8 100644
--- a/src/gui/itemviews/qcolumnviewgrip_p.h
+++ b/src/gui/itemviews/qcolumnviewgrip_p.h
@@ -82,7 +82,7 @@ protected:
void mousePressEvent(QMouseEvent *event);
private:
- Q_DECLARE_PRIVATE(QColumnViewGrip)
+ Q_DECLARE_SCOPED_PRIVATE(QColumnViewGrip)
Q_DISABLE_COPY(QColumnViewGrip)
};
diff --git a/src/gui/itemviews/qdatawidgetmapper.h b/src/gui/itemviews/qdatawidgetmapper.h
index 2df7b69a24..2773b59e05 100644
--- a/src/gui/itemviews/qdatawidgetmapper.h
+++ b/src/gui/itemviews/qdatawidgetmapper.h
@@ -111,7 +111,7 @@ Q_SIGNALS:
void currentIndexChanged(int index);
private:
- Q_DECLARE_PRIVATE(QDataWidgetMapper)
+ Q_DECLARE_SCOPED_PRIVATE(QDataWidgetMapper)
Q_DISABLE_COPY(QDataWidgetMapper)
Q_PRIVATE_SLOT(d_func(), void _q_dataChanged(const QModelIndex &, const QModelIndex &))
Q_PRIVATE_SLOT(d_func(), void _q_commitData(QWidget *))
diff --git a/src/gui/itemviews/qdirmodel.h b/src/gui/itemviews/qdirmodel.h
index 719d5518ff..1f28cc9594 100644
--- a/src/gui/itemviews/qdirmodel.h
+++ b/src/gui/itemviews/qdirmodel.h
@@ -146,7 +146,7 @@ protected:
friend class QFileDialogPrivate;
private:
- Q_DECLARE_PRIVATE(QDirModel)
+ Q_DECLARE_SCOPED_PRIVATE(QDirModel)
Q_DISABLE_COPY(QDirModel)
Q_PRIVATE_SLOT(d_func(), void _q_refresh())
};
diff --git a/src/gui/itemviews/qfileiconprovider.h b/src/gui/itemviews/qfileiconprovider.h
index 165e30f820..dd1beddeb1 100644
--- a/src/gui/itemviews/qfileiconprovider.h
+++ b/src/gui/itemviews/qfileiconprovider.h
@@ -67,7 +67,7 @@ public:
virtual QString type(const QFileInfo &info) const;
private:
- Q_DECLARE_PRIVATE(QFileIconProvider)
+ Q_DECLARE_SCOPED_PRIVATE(QFileIconProvider)
QScopedPointer<QFileIconProviderPrivate> d_ptr;
Q_DISABLE_COPY(QFileIconProvider)
};
diff --git a/src/gui/itemviews/qheaderview.h b/src/gui/itemviews/qheaderview.h
index 3a66c9a54c..0690fa07a8 100644
--- a/src/gui/itemviews/qheaderview.h
+++ b/src/gui/itemviews/qheaderview.h
@@ -228,7 +228,7 @@ protected:
private:
Q_PRIVATE_SLOT(d_func(), void _q_sectionsRemoved(const QModelIndex &parent, int logicalFirst, int logicalLast))
Q_PRIVATE_SLOT(d_func(), void _q_layoutAboutToBeChanged())
- Q_DECLARE_PRIVATE(QHeaderView)
+ Q_DECLARE_SCOPED_PRIVATE(QHeaderView)
Q_DISABLE_COPY(QHeaderView)
};
diff --git a/src/gui/itemviews/qitemdelegate.h b/src/gui/itemviews/qitemdelegate.h
index d46481c8b4..a6f0ba18a4 100644
--- a/src/gui/itemviews/qitemdelegate.h
+++ b/src/gui/itemviews/qitemdelegate.h
@@ -126,7 +126,7 @@ protected:
const QFont &font, const QString &text) const;
private:
- Q_DECLARE_PRIVATE(QItemDelegate)
+ Q_DECLARE_SCOPED_PRIVATE(QItemDelegate)
Q_DISABLE_COPY(QItemDelegate)
Q_PRIVATE_SLOT(d_func(), void _q_commitDataAndCloseEditor(QWidget*))
diff --git a/src/gui/itemviews/qitemselectionmodel.h b/src/gui/itemviews/qitemselectionmodel.h
index e6a99a6a3f..bc9f61c6df 100644
--- a/src/gui/itemviews/qitemselectionmodel.h
+++ b/src/gui/itemviews/qitemselectionmodel.h
@@ -125,7 +125,7 @@ class QItemSelectionModelPrivate;
class Q_GUI_EXPORT QItemSelectionModel : public QObject
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QItemSelectionModel)
+ Q_DECLARE_SCOPED_PRIVATE(QItemSelectionModel)
Q_FLAGS(SelectionFlags)
public:
diff --git a/src/gui/itemviews/qlistview.h b/src/gui/itemviews/qlistview.h
index 75dff4020b..a0984270fd 100644
--- a/src/gui/itemviews/qlistview.h
+++ b/src/gui/itemviews/qlistview.h
@@ -190,7 +190,7 @@ private:
friend class QAccessibleItemView;
int visualIndex(const QModelIndex &index) const;
- Q_DECLARE_PRIVATE(QListView)
+ Q_DECLARE_SCOPED_PRIVATE(QListView)
Q_DISABLE_COPY(QListView)
};
diff --git a/src/gui/itemviews/qlistwidget.h b/src/gui/itemviews/qlistwidget.h
index afcc3319cf..d2f2f06f57 100644
--- a/src/gui/itemviews/qlistwidget.h
+++ b/src/gui/itemviews/qlistwidget.h
@@ -291,7 +291,7 @@ private:
void setModel(QAbstractItemModel *model);
Qt::SortOrder sortOrder() const;
- Q_DECLARE_PRIVATE(QListWidget)
+ Q_DECLARE_SCOPED_PRIVATE(QListWidget)
Q_DISABLE_COPY(QListWidget)
Q_PRIVATE_SLOT(d_func(), void _q_emitItemPressed(const QModelIndex &index))
diff --git a/src/gui/itemviews/qproxymodel.h b/src/gui/itemviews/qproxymodel.h
index 62cf33e8a8..420753ccdd 100644
--- a/src/gui/itemviews/qproxymodel.h
+++ b/src/gui/itemviews/qproxymodel.h
@@ -119,7 +119,7 @@ protected:
void disconnectFromModel(const QAbstractItemModel *model) const;
private:
- Q_DECLARE_PRIVATE(QProxyModel)
+ Q_DECLARE_SCOPED_PRIVATE(QProxyModel)
Q_DISABLE_COPY(QProxyModel)
Q_PRIVATE_SLOT(d_func(), void _q_sourceDataChanged(const QModelIndex&,const QModelIndex&))
diff --git a/src/gui/itemviews/qsortfilterproxymodel.h b/src/gui/itemviews/qsortfilterproxymodel.h
index 0bd084eccf..b1795591c2 100644
--- a/src/gui/itemviews/qsortfilterproxymodel.h
+++ b/src/gui/itemviews/qsortfilterproxymodel.h
@@ -172,7 +172,7 @@ public:
QStringList mimeTypes() const;
Qt::DropActions supportedDropActions() const;
private:
- Q_DECLARE_PRIVATE(QSortFilterProxyModel)
+ Q_DECLARE_SCOPED_PRIVATE(QSortFilterProxyModel)
Q_DISABLE_COPY(QSortFilterProxyModel)
Q_PRIVATE_SLOT(d_func(), void _q_sourceDataChanged(const QModelIndex &source_top_left, const QModelIndex &source_bottom_right))
diff --git a/src/gui/itemviews/qstandarditemmodel.h b/src/gui/itemviews/qstandarditemmodel.h
index c470b80727..7e76a4ae87 100644
--- a/src/gui/itemviews/qstandarditemmodel.h
+++ b/src/gui/itemviews/qstandarditemmodel.h
@@ -245,7 +245,7 @@ protected:
void emitDataChanged();
private:
- Q_DECLARE_PRIVATE(QStandardItem)
+ Q_DECLARE_SCOPED_PRIVATE(QStandardItem)
friend class QStandardItemModelPrivate;
friend class QStandardItemModel;
};
@@ -422,7 +422,7 @@ private:
friend class QStandardItemPrivate;
friend class QStandardItem;
Q_DISABLE_COPY(QStandardItemModel)
- Q_DECLARE_PRIVATE(QStandardItemModel)
+ Q_DECLARE_SCOPED_PRIVATE(QStandardItemModel)
Q_PRIVATE_SLOT(d_func(), void _q_emitItemChanged(const QModelIndex &topLeft,
const QModelIndex &bottomRight))
diff --git a/src/gui/itemviews/qstyleditemdelegate.h b/src/gui/itemviews/qstyleditemdelegate.h
index ccb10249bc..2f313878a3 100644
--- a/src/gui/itemviews/qstyleditemdelegate.h
+++ b/src/gui/itemviews/qstyleditemdelegate.h
@@ -101,7 +101,7 @@ protected:
const QStyleOptionViewItem &option, const QModelIndex &index);
private:
- Q_DECLARE_PRIVATE(QStyledItemDelegate)
+ Q_DECLARE_SCOPED_PRIVATE(QStyledItemDelegate)
Q_DISABLE_COPY(QStyledItemDelegate)
Q_PRIVATE_SLOT(d_func(), void _q_commitDataAndCloseEditor(QWidget*))
diff --git a/src/gui/itemviews/qtableview.h b/src/gui/itemviews/qtableview.h
index c09186cbc0..7e4ba54e07 100644
--- a/src/gui/itemviews/qtableview.h
+++ b/src/gui/itemviews/qtableview.h
@@ -178,7 +178,7 @@ private:
friend class QAccessibleItemView;
int visualIndex(const QModelIndex &index) const;
- Q_DECLARE_PRIVATE(QTableView)
+ Q_DECLARE_SCOPED_PRIVATE(QTableView)
Q_DISABLE_COPY(QTableView)
Q_PRIVATE_SLOT(d_func(), void _q_selectRow(int))
Q_PRIVATE_SLOT(d_func(), void _q_selectColumn(int))
diff --git a/src/gui/itemviews/qtablewidget.h b/src/gui/itemviews/qtablewidget.h
index 6c25ba0f96..1963df802a 100644
--- a/src/gui/itemviews/qtablewidget.h
+++ b/src/gui/itemviews/qtablewidget.h
@@ -336,7 +336,7 @@ protected:
private:
void setModel(QAbstractItemModel *model);
- Q_DECLARE_PRIVATE(QTableWidget)
+ Q_DECLARE_SCOPED_PRIVATE(QTableWidget)
Q_DISABLE_COPY(QTableWidget)
Q_PRIVATE_SLOT(d_func(), void _q_emitItemPressed(const QModelIndex &index))
diff --git a/src/gui/itemviews/qtreeview.h b/src/gui/itemviews/qtreeview.h
index 4411781799..876bc12e20 100644
--- a/src/gui/itemviews/qtreeview.h
+++ b/src/gui/itemviews/qtreeview.h
@@ -221,7 +221,7 @@ private:
friend class QAccessibleItemView;
int visualIndex(const QModelIndex &index) const;
- Q_DECLARE_PRIVATE(QTreeView)
+ Q_DECLARE_SCOPED_PRIVATE(QTreeView)
Q_DISABLE_COPY(QTreeView)
#ifndef QT_NO_ANIMATION
Q_PRIVATE_SLOT(d_func(), void _q_endAnimatedOperation())
diff --git a/src/gui/itemviews/qtreewidget.h b/src/gui/itemviews/qtreewidget.h
index 32667253a6..b640a7a577 100644
--- a/src/gui/itemviews/qtreewidget.h
+++ b/src/gui/itemviews/qtreewidget.h
@@ -367,7 +367,7 @@ protected:
private:
void setModel(QAbstractItemModel *model);
- Q_DECLARE_PRIVATE(QTreeWidget)
+ Q_DECLARE_SCOPED_PRIVATE(QTreeWidget)
Q_DISABLE_COPY(QTreeWidget)
Q_PRIVATE_SLOT(d_func(), void _q_emitItemPressed(const QModelIndex &index))
diff --git a/src/gui/itemviews/qtreewidget_p.h b/src/gui/itemviews/qtreewidget_p.h
index 145916ac9c..6d62062825 100644
--- a/src/gui/itemviews/qtreewidget_p.h
+++ b/src/gui/itemviews/qtreewidget_p.h
@@ -162,7 +162,7 @@ private:
bool isChanging() const;
private:
- Q_DECLARE_PRIVATE(QTreeModel)
+ Q_DECLARE_SCOPED_PRIVATE(QTreeModel)
public:
struct SkipSorting
{
diff --git a/src/gui/itemviews/qtreewidgetitemiterator.h b/src/gui/itemviews/qtreewidgetitemiterator.h
index eff9fdbbdc..ce0b610ea4 100644
--- a/src/gui/itemviews/qtreewidgetitemiterator.h
+++ b/src/gui/itemviews/qtreewidgetitemiterator.h
@@ -109,7 +109,7 @@ private:
QScopedPointer<QTreeWidgetItemIteratorPrivate> d_ptr;
QTreeWidgetItem *current;
IteratorFlags flags;
- Q_DECLARE_PRIVATE(QTreeWidgetItemIterator)
+ Q_DECLARE_SCOPED_PRIVATE(QTreeWidgetItemIterator)
};
inline const QTreeWidgetItemIterator QTreeWidgetItemIterator::operator++(int)
diff --git a/src/gui/kernel/kernel.pri b/src/gui/kernel/kernel.pri
index 530b14694c..1766ecda11 100644
--- a/src/gui/kernel/kernel.pri
+++ b/src/gui/kernel/kernel.pri
@@ -107,7 +107,7 @@ symbian {
kernel/qclipboard_s60.cpp\
kernel/qdnd_s60.cpp \
kernel/qsound_s60.cpp
-
+
HEADERS += \
kernel/qt_s60_p.h \
kernel/qeventdispatcher_s60_p.h
@@ -191,7 +191,7 @@ embedded {
qcocoaview_mac_p.h \
qcocoaapplication_mac_p.h \
qcocoaapplicationdelegate_mac_p.h \
- qmultitouch_mac_p.h
+ qmultitouch_mac_p.h
OBJECTIVE_SOURCES += \
kernel/qcursor_mac.mm \
@@ -209,7 +209,7 @@ embedded {
kernel/qt_cocoa_helpers_mac.mm \
kernel/qdesktopwidget_mac.mm \
kernel/qeventdispatcher_mac.mm \
- kernel/qcocoawindowcustomthemeframe_mac.mm \
+ kernel/qcocoawindowcustomthemeframe_mac.mm \
kernel/qmultitouch_mac.mm \
HEADERS += \
@@ -218,10 +218,10 @@ embedded {
kernel/qcocoaapplicationdelegate_mac_p.h \
kernel/qeventdispatcher_mac_p.h
- MENU_NIB.files = mac/qt_menu.nib
- MENU_NIB.path = Resources
+ MENU_NIB.files = mac/qt_menu.nib
+ MENU_NIB.path = Resources
MENU_NIB.version = Versions
- QMAKE_BUNDLE_DATA += MENU_NIB
+ QMAKE_BUNDLE_DATA += MENU_NIB
RESOURCES += mac/macresources.qrc
LIBS += -framework AppKit
diff --git a/src/gui/kernel/qaction.cpp b/src/gui/kernel/qaction.cpp
index afe6269536..53cbc64e02 100644
--- a/src/gui/kernel/qaction.cpp
+++ b/src/gui/kernel/qaction.cpp
@@ -1414,7 +1414,7 @@ QAction::MenuRole QAction::menuRole() const
This indicates what softkey action this action is. Usually used on mobile
platforms to map QActions to hardware keys.
-
+
The softkey role can be changed any time.
*/
void QAction::setSoftKeyRole(SoftKeyRole softKeyRole)
diff --git a/src/gui/kernel/qaction.h b/src/gui/kernel/qaction.h
index 68f88c5512..ef32a339bc 100644
--- a/src/gui/kernel/qaction.h
+++ b/src/gui/kernel/qaction.h
@@ -64,7 +64,7 @@ class QGraphicsWidget;
class Q_GUI_EXPORT QAction : public QObject
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QAction)
+ Q_DECLARE_SCOPED_PRIVATE(QAction)
Q_ENUMS(MenuRole)
Q_ENUMS(SoftKeyRole)
diff --git a/src/gui/kernel/qactiongroup.h b/src/gui/kernel/qactiongroup.h
index e42c2e51a4..07bdbdaf16 100644
--- a/src/gui/kernel/qactiongroup.h
+++ b/src/gui/kernel/qactiongroup.h
@@ -57,7 +57,7 @@ class QActionGroupPrivate;
class Q_GUI_EXPORT QActionGroup : public QObject
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QActionGroup)
+ Q_DECLARE_SCOPED_PRIVATE(QActionGroup)
Q_PROPERTY(bool exclusive READ isExclusive WRITE setExclusive)
Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled)
diff --git a/src/gui/kernel/qapplication.cpp b/src/gui/kernel/qapplication.cpp
index 7acba93415..7aeab39645 100644
--- a/src/gui/kernel/qapplication.cpp
+++ b/src/gui/kernel/qapplication.cpp
@@ -850,7 +850,7 @@ extern int qUnregisterGuiStateMachine();
void QApplicationPrivate::initialize()
{
QWidgetPrivate::mapper = new QWidgetMapper;
- QWidgetPrivate::uncreatedWidgets = new QWidgetSet;
+ QWidgetPrivate::allWidgets = new QWidgetSet;
if (qt_appType != QApplication::Tty)
(void) QApplication::style(); // trigger creation of application style
// trigger registering of QVariant's GUI types
@@ -994,23 +994,13 @@ QApplication::~QApplication()
qt_clipboard = 0;
#endif
- // delete widget mapper
- if (QWidgetPrivate::mapper) {
- QWidgetMapper * myMapper = QWidgetPrivate::mapper;
- QWidgetPrivate::mapper = 0;
- for (QWidgetMapper::ConstIterator it = myMapper->constBegin();
- it != myMapper->constEnd(); ++it) {
- register QWidget *w = *it;
- if (!w->parent()) // window
- w->destroy(true, true);
- }
- delete myMapper;
- }
+ delete QWidgetPrivate::mapper;
+ QWidgetPrivate::mapper = 0;
- // delete uncreated widgets
- if (QWidgetPrivate::uncreatedWidgets) {
- QWidgetSet *mySet = QWidgetPrivate::uncreatedWidgets;
- QWidgetPrivate::uncreatedWidgets = 0;
+ // delete all widgets
+ if (QWidgetPrivate::allWidgets) {
+ QWidgetSet *mySet = QWidgetPrivate::allWidgets;
+ QWidgetPrivate::allWidgets = 0;
for (QWidgetSet::ConstIterator it = mySet->constBegin(); it != mySet->constEnd(); ++it) {
register QWidget *w = *it;
if (!w->parent()) // window
@@ -2036,12 +2026,9 @@ QWidgetList QApplication::topLevelWidgets()
QWidgetList QApplication::allWidgets()
{
- QWidgetList list;
- if (QWidgetPrivate::mapper)
- list += QWidgetPrivate::mapper->values();
- if (QWidgetPrivate::uncreatedWidgets)
- list += QWidgetPrivate::uncreatedWidgets->toList();
- return list;
+ if (QWidgetPrivate::allWidgets)
+ return QWidgetPrivate::allWidgets->toList();
+ return QWidgetList();
}
/*!
diff --git a/src/gui/kernel/qapplication.h b/src/gui/kernel/qapplication.h
index fcb3a7ce38..88a01feb88 100644
--- a/src/gui/kernel/qapplication.h
+++ b/src/gui/kernel/qapplication.h
@@ -363,7 +363,7 @@ public:
private:
Q_DISABLE_COPY(QApplication)
- Q_DECLARE_PRIVATE(QApplication)
+ Q_DECLARE_SCOPED_PRIVATE(QApplication)
friend class QGraphicsWidget;
friend class QGraphicsScene;
diff --git a/src/gui/kernel/qapplication_qws.cpp b/src/gui/kernel/qapplication_qws.cpp
index 0f41025538..e4e79518ed 100644
--- a/src/gui/kernel/qapplication_qws.cpp
+++ b/src/gui/kernel/qapplication_qws.cpp
@@ -680,7 +680,7 @@ void QWSDisplay::Data::sendSynchronousCommand(QWSCommand & cmd)
int QWSDisplay::Data::takeId()
{
int unusedIdCount = unused_identifiers.count();
- if (unusedIdCount == 10)
+ if (unusedIdCount <= 10)
create(15);
if (unusedIdCount == 0) {
create(1); // Make sure we have an incoming id to wait for, just in case we're recursive
@@ -3773,4 +3773,14 @@ void QApplicationPrivate::initializeMultitouch_sys()
void QApplicationPrivate::cleanupMultitouch_sys()
{ }
+/* \internal
+ This is used to clean up the qws server
+ in case the QApplication constructor threw an exception
+*/
+QWSServerCleaner::~QWSServerCleaner()
+{
+ if (qwsServer && qws_single_process)
+ QWSServer::closedown();
+}
+
QT_END_NAMESPACE
diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp
index d47747f039..c831dadf0f 100644
--- a/src/gui/kernel/qapplication_s60.cpp
+++ b/src/gui/kernel/qapplication_s60.cpp
@@ -76,13 +76,18 @@ QT_BEGIN_NAMESPACE
static bool appNoGrab = false; // Grabbing enabled
#endif
-Q_GUI_EXPORT QS60Data *qt_s60Data = 0;
+Q_GLOBAL_STATIC(QS60Data, qt_s60Data);
extern bool qt_sendSpontaneousEvent(QObject*,QEvent*);
extern QDesktopWidget *qt_desktopWidget; // qapplication.cpp
QWidget *qt_button_down = 0; // widget got last button-down
+QS60Data* qGlobalS60Data()
+{
+ return qt_s60Data();
+}
+
bool qt_nograb() // application no-grab option
{
#if defined(QT_DEBUG)
@@ -119,7 +124,7 @@ private:
QS60Beep::~QS60Beep()
{
- delete iToneUtil;
+ delete iToneUtil;
}
QS60Beep* QS60Beep::NewL(TInt aFrequency, TTimeIntervalMicroSeconds aDuration)
@@ -148,7 +153,7 @@ void QS60Beep::Play()
iState=EBeepPrepared;
}
}
-
+
iToneUtil->Play();
iState=EBeepPlaying;
}
@@ -290,7 +295,7 @@ void QLongTapTimer::PointerEventL(const TPointerEvent& event)
Cancel();
m_event = event;
if (event.iType == TPointerEvent::EButton1Down)
- {
+ {
m_pressedCoordinates = QPoint(event.iPosition.iX,event.iPosition.iY);
// must be same as KLongTapDelay in aknlongtapdetector.h
After(800000);
@@ -361,7 +366,7 @@ void QSymbianControl::HandlePointerEventL(const TPointerEvent& pEvent)
}
if (type == QMouseEvent::None)
return;
-
+
// store events for later sending/saving
QWidget *alienWidget;
typedef QPair<QWidget*,QMouseEvent> Event;
@@ -370,7 +375,7 @@ void QSymbianControl::HandlePointerEventL(const TPointerEvent& pEvent)
QPoint widgetPos = QPoint(pEvent.iPosition.iX, pEvent.iPosition.iY);
TPoint controlScreenPos = PositionRelativeToScreen();
QPoint globalPos = QPoint(controlScreenPos.iX, controlScreenPos.iY) + widgetPos;
-
+
if (type == QEvent::MouseButtonPress || type == QEvent::MouseButtonDblClick)
{
// get the button press target
@@ -401,7 +406,7 @@ void QSymbianControl::HandlePointerEventL(const TPointerEvent& pEvent)
events.append(Event(S60->lastPointerEventTarget,mEventLeave));
}
QMouseEvent mEventEnter(QEvent::Enter, alienWidget->mapFromGlobal(globalPos), globalPos,
- button, QApplicationPrivate::mouse_buttons, mapToQtModifiers(pEvent.iModifiers));
+ button, QApplicationPrivate::mouse_buttons, mapToQtModifiers(pEvent.iModifiers));
events.append(Event(alienWidget,mEventEnter));
}
@@ -441,7 +446,7 @@ void QSymbianControl::sendMouseEvent(QWidget *widget, QMouseEvent *mEvent)
TKeyResponse QSymbianControl::OfferKeyEventL(const TKeyEvent& keyEvent, TEventCode type)
{
TKeyResponse r = EKeyWasNotConsumed;
- QT_TRANSLATE_EXCEPTION_TO_SYMBIAN_LEAVE(r = OfferKeyEvent(keyEvent, type));
+ QT_TRYCATCH_LEAVING(r = OfferKeyEvent(keyEvent, type));
return r;
}
@@ -667,14 +672,14 @@ void QSymbianControl::HandleResourceChange(int resourceType)
{
switch (resourceType) {
case KInternalStatusPaneChange:
- qwidget->d_func()->setWindowIcon_sys(true);
- break;
+ qwidget->d_func()->setWindowIcon_sys(true);
+ break;
case KUidValueCoeFontChangeEvent:
// font change event
break;
#ifdef Q_WS_S60
case KEikDynamicLayoutVariantSwitch:
- {
+ {
if (qwidget->isFullScreen()) {
SetExtentToWholeScreen();
} else if (qwidget->isMaximized()) {
@@ -706,8 +711,6 @@ TTypeUid::Ptr QSymbianControl::MopSupplyObject(TTypeUid id)
void qt_init(QApplicationPrivate * /* priv */, int)
{
- S60 = new QS60Data;
-
#ifdef QT_NO_DEBUG
if (!qgetenv("QT_S60_AUTO_FLUSH_WSERV").isEmpty())
#endif
@@ -723,12 +726,6 @@ void qt_init(QApplicationPrivate * /* priv */, int)
TSecureId securId = me.SecureId();
S60->uid = securId.operator TUid();
- // New code to configure the window group name such that window server knows the associated application's UID
- CApaWindowGroupName *wgn = CApaWindowGroupName::NewL(S60->wsSession());
- wgn->SetAppUid(S60->uid);
- User::LeaveIfError(wgn->SetWindowGroupName((S60->windowGroup())));
- delete wgn;
-
/*
### Commented out for now as parameter handling not needed in SOS(yet). Code below will break testlib with -o flag
int argc = priv->argc;
@@ -947,10 +944,10 @@ void QApplication::beep()
QS60Beep* beep=NULL;
TRAPD(err, beep=QS60Beep::NewL(frequency, duration));
if(!err) {
- beep->Play();
+ beep->Play();
}
delete beep;
- beep=NULL;
+ beep=NULL;
}
int QApplication::s60ProcessEvent(TWsEvent *event)
@@ -1084,8 +1081,8 @@ void QApplication::symbianResourceChange(int type)
case KEikDynamicLayoutVariantSwitch:
{
if (S60)
- S60->updateScreenSize();
-
+ S60->updateScreenSize();
+
#ifndef QT_NO_STYLE_S60
QS60Style *s60Style = 0;
@@ -1099,7 +1096,7 @@ void QApplication::symbianResourceChange(int type)
if (s60Style)
s60Style->handleDynamicLayoutVariantSwitch();
-#endif
+#endif
}
break;
@@ -1107,7 +1104,7 @@ void QApplication::symbianResourceChange(int type)
case KAknsMessageSkinChange:
if (QS60Style *s60Style = qobject_cast<QS60Style*>(QApplication::style()))
s60Style->handleSkinChange();
- break;
+ break;
#endif
#endif // Q_WS_S60
default:
@@ -1178,5 +1175,3 @@ void QSessionManager::cancel()
}
#endif //QT_NO_SESSIONMANAGER
QT_END_NAMESPACE
-
-
diff --git a/src/gui/kernel/qapplication_win.cpp b/src/gui/kernel/qapplication_win.cpp
index d5c820c21d..8eeac65046 100644
--- a/src/gui/kernel/qapplication_win.cpp
+++ b/src/gui/kernel/qapplication_win.cpp
@@ -1098,7 +1098,7 @@ static void qWinProcessConfigRequests() // perform requests in qu
class QGuiEventDispatcherWin32 : public QEventDispatcherWin32
{
- Q_DECLARE_PRIVATE(QEventDispatcherWin32)
+ Q_DECLARE_SCOPED_PRIVATE(QEventDispatcherWin32)
public:
QGuiEventDispatcherWin32(QObject *parent = 0);
bool processEvents(QEventLoop::ProcessEventsFlags flags);
diff --git a/src/gui/kernel/qboxlayout.cpp b/src/gui/kernel/qboxlayout.cpp
index 23d20ff9b1..a7802afac1 100644
--- a/src/gui/kernel/qboxlayout.cpp
+++ b/src/gui/kernel/qboxlayout.cpp
@@ -925,9 +925,15 @@ void QBoxLayout::insertSpacing(int index, int size)
else
b = QLayoutPrivate::createSpacerItem(this, 0, size, QSizePolicy::Minimum, QSizePolicy::Fixed);
- QBoxLayoutItem *it = new QBoxLayoutItem(b);
- it->magic = true;
- d->list.insert(index, it);
+ QT_TRY {
+ QBoxLayoutItem *it = new QBoxLayoutItem(b);
+ it->magic = true;
+ d->list.insert(index, it);
+
+ } QT_CATCH(...) {
+ delete b;
+ QT_RETHROW;
+ }
invalidate();
}
@@ -1027,8 +1033,21 @@ void QBoxLayout::insertWidget(int index, QWidget *widget, int stretch,
index = d->list.count();
QWidgetItem *b = QLayoutPrivate::createWidgetItem(this, widget);
b->setAlignment(alignment);
- QBoxLayoutItem *it = new QBoxLayoutItem(b, stretch);
- d->list.insert(index, it);
+
+ QBoxLayoutItem *it;
+ QT_TRY{
+ it = new QBoxLayoutItem(b, stretch);
+ } QT_CATCH(...) {
+ delete b;
+ QT_RETHROW;
+ }
+
+ QT_TRY{
+ d->list.insert(index, it);
+ } QT_CATCH(...) {
+ delete it;
+ QT_RETHROW;
+ }
invalidate();
}
diff --git a/src/gui/kernel/qboxlayout.h b/src/gui/kernel/qboxlayout.h
index f463c31de9..c399b8d628 100644
--- a/src/gui/kernel/qboxlayout.h
+++ b/src/gui/kernel/qboxlayout.h
@@ -60,7 +60,7 @@ class QBoxLayoutPrivate;
class Q_GUI_EXPORT QBoxLayout : public QLayout
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QBoxLayout)
+ Q_DECLARE_SCOPED_PRIVATE(QBoxLayout)
public:
enum Direction { LeftToRight, RightToLeft, TopToBottom, BottomToTop,
Down = TopToBottom, Up = BottomToTop };
diff --git a/src/gui/kernel/qclipboard.h b/src/gui/kernel/qclipboard.h
index 82418129db..68fbf3332b 100644
--- a/src/gui/kernel/qclipboard.h
+++ b/src/gui/kernel/qclipboard.h
@@ -62,7 +62,7 @@ class QClipboardPrivate;
class Q_GUI_EXPORT QClipboard : public QObject
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QClipboard)
+ Q_DECLARE_SCOPED_PRIVATE(QClipboard)
private:
QClipboard(QObject *parent);
~QClipboard();
diff --git a/src/gui/kernel/qclipboard_s60.cpp b/src/gui/kernel/qclipboard_s60.cpp
index db5e7f3ae0..5536438fda 100644
--- a/src/gui/kernel/qclipboard_s60.cpp
+++ b/src/gui/kernel/qclipboard_s60.cpp
@@ -76,10 +76,10 @@ public:
QMimeData* source()
{ return src; }
bool connected()
- { return connection; }
+ { return connection; }
void clear();
RFs fsSession();
-
+
private:
QMimeData* src;
@@ -134,7 +134,7 @@ static QClipboardData *clipboardData()
delete internalCbData;
internalCbData = 0;
}
- else
+ else
{
qAddPostRoutine(cleanupClipboardData);
}
@@ -143,8 +143,10 @@ static QClipboardData *clipboardData()
return internalCbData;
}
-void writeToStream(const QMimeData* aData, RWriteStream& aStream)
+void writeToStreamLX(const QMimeData* aData, RWriteStream& aStream)
{
+ // This function both leaves and throws exceptions. There must be no destructor
+ // dependencies between cleanup styles, and no cleanup stack dependencies on stacked objects.
QStringList headers = aData->formats();
aStream << TCardinality(headers.count());
for (QStringList::const_iterator iter= headers.constBegin();iter != headers.constEnd();iter++)
@@ -159,13 +161,15 @@ void writeToStream(const QMimeData* aData, RWriteStream& aStream)
aStream << TCardinality(ba.size());
aStream.WriteL(reinterpret_cast<const uchar*>(ba.constData()),ba.size());
CleanupStack::PopAndDestroy(stringData);
- }
+ }
}
-void readFromStream(QMimeData* aData,RReadStream& aStream)
+void readFromStreamLX(QMimeData* aData,RReadStream& aStream)
{
+ // This function both leaves and throws exceptions. There must be no destructor
+ // dependencies between cleanup styles, and no cleanup stack dependencies on stacked objects.
TCardinality mimeTypeCount;
- aStream >> mimeTypeCount;
+ aStream >> mimeTypeCount;
for (int i = 0; i< mimeTypeCount;i++)
{
// mime type
@@ -173,6 +177,7 @@ void readFromStream(QMimeData* aData,RReadStream& aStream)
aStream >> mimeTypeSize;
HBufC* mimeTypeBuf = HBufC::NewLC(aStream,mimeTypeSize);
QString mimeType = QString::fromUtf16(mimeTypeBuf->Des().Ptr(),mimeTypeBuf->Length());
+ CleanupStack::PopAndDestroy(mimeTypeBuf);
// mime data
TCardinality dataSize;
aStream >> dataSize;
@@ -182,8 +187,6 @@ void readFromStream(QMimeData* aData,RReadStream& aStream)
ba.data_ptr()->size = dataSize;
qDebug() << "paste from clipboard mime: " << mimeType << " data: " << ba;
aData->setData(mimeType,ba);
- CleanupStack::PopAndDestroy(mimeTypeBuf);
-
}
}
@@ -210,14 +213,14 @@ const QMimeData* QClipboard::mimeData(Mode mode) const
RStoreReadStream stream;
TStreamId stid = (cb->StreamDictionary()).At(KQtCbDataStream);
stream.OpenLC(cb->Store(),stid);
- readFromStream(d->source(),stream);
+ QT_TRYCATCH_LEAVING(readFromStreamLX(d->source(),stream));
CleanupStack::PopAndDestroy(2,cb);
return d->source();
});
if (err != KErrNone){
qDebug()<< "clipboard is empty/err: " << err;
}
-
+
}
return 0;
}
@@ -235,7 +238,7 @@ void QClipboard::setMimeData(QMimeData* src, Mode mode)
CClipboard* cb = CClipboard::NewForWritingLC(fs);
RStoreWriteStream stream;
TStreamId stid = stream.CreateLC(cb->Store());
- writeToStream(src,stream);
+ QT_TRYCATCH_LEAVING(writeToStreamLX(src,stream));
d->setSource(src);
stream.CommitL();
(cb->StreamDictionary()).AssignL(KQtCbDataStream,stid);
@@ -246,7 +249,7 @@ void QClipboard::setMimeData(QMimeData* src, Mode mode)
qDebug()<< "clipboard write err :" << err;
}
}
- emitChanged(QClipboard::Clipboard);
+ emitChanged(QClipboard::Clipboard);
}
bool QClipboard::supportsMode(Mode mode) const
diff --git a/src/gui/kernel/qdesktopwidget.h b/src/gui/kernel/qdesktopwidget.h
index a21ae9d739..785f6c4db5 100644
--- a/src/gui/kernel/qdesktopwidget.h
+++ b/src/gui/kernel/qdesktopwidget.h
@@ -96,7 +96,7 @@ protected:
private:
Q_DISABLE_COPY(QDesktopWidget)
- Q_DECLARE_PRIVATE(QDesktopWidget)
+ Q_DECLARE_SCOPED_PRIVATE(QDesktopWidget)
friend class QApplication;
friend class QApplicationPrivate;
diff --git a/src/gui/kernel/qdesktopwidget_x11.cpp b/src/gui/kernel/qdesktopwidget_x11.cpp
index 1555fc034d..5bc4c0c25e 100644
--- a/src/gui/kernel/qdesktopwidget_x11.cpp
+++ b/src/gui/kernel/qdesktopwidget_x11.cpp
@@ -197,7 +197,7 @@ void QDesktopWidgetPrivate::init()
if (screens) {
// leaks QWidget* pointers on purpose, can't delete them as pointer escapes
- screens = (QWidget**) realloc(screens, j * sizeof(QWidget*));
+ screens = q_check_ptr((QWidget**) realloc(screens, j * sizeof(QWidget*)));
if (j > screenCount)
memset(&screens[screenCount], 0, (j-screenCount) * sizeof(QWidget*));
}
diff --git a/src/gui/kernel/qdnd_s60.cpp b/src/gui/kernel/qdnd_s60.cpp
index c459f8f04f..c7656b0f1d 100644
--- a/src/gui/kernel/qdnd_s60.cpp
+++ b/src/gui/kernel/qdnd_s60.cpp
@@ -94,8 +94,8 @@ class QShapedPixmapWidget
public:
QShapedPixmapWidget(RWsSession aWsSession,RWindowTreeNode* aNode)
{
- sprite = RWsSprite(aWsSession);
- cursorSprite.iBitmap = 0;
+ sprite = RWsSprite(aWsSession);
+ cursorSprite.iBitmap = 0;
cursorSprite.iMaskBitmap = 0;
cursorSprite.iInvertMask = EFalse;
cursorSprite.iOffset = TPoint(0,0);
@@ -127,8 +127,8 @@ public:
//### heaplock centralized.
QImage temp = pm.toImage();
QSize size = pm.size();
- temp.bits();
- CFbsBitmap *curbm = new (ELeave) CFbsBitmap();
+ temp.bits();
+ CFbsBitmap *curbm = q_check_ptr(new CFbsBitmap()); // CBase derived object needs check on new
curbm->Create(TSize(size.width(),size.height()),EColor16MA);
curbm->LockHeap(ETrue);
memcpy((uchar*)curbm->DataAddress(),temp.bits(),temp.numBytes());
@@ -188,7 +188,7 @@ bool QDragManager::eventFilter(QObject *o, QEvent *e)
switch(e->type()) {
case QEvent::MouseButtonPress:
{
- }
+ }
case QEvent::MouseMove:
{
if (!object) { //#### this should not happen
@@ -211,7 +211,7 @@ bool QDragManager::eventFilter(QObject *o, QEvent *e)
if (!cw)
return true;
TPoint windowPos = cw->effectiveWinId()->PositionRelativeToScreen();
- qt_symbian_dnd_deco->sprite.SetPosition(TPoint(me->globalX()- windowPos.iX,me->globalY()- windowPos.iY));
+ qt_symbian_dnd_deco->sprite.SetPosition(TPoint(me->globalX()- windowPos.iX,me->globalY()- windowPos.iY));
while (cw && !cw->acceptDrops() && !cw->isWindow())
cw = cw->parentWidget();
@@ -318,7 +318,7 @@ Qt::DropAction QDragManager::drag(QDrag *o)
object->d_func()->target = 0;
TPoint windowPos = source()->effectiveWinId()->PositionRelativeToScreen();
qt_symbian_dnd_deco->sprite.SetPosition(TPoint(QCursor::pos().x()- windowPos.iX ,QCursor::pos().y() - windowPos.iY));
-
+
QPoint hotspot = drag_object->hotSpot();
qt_symbian_dnd_deco->cursorSprite.iOffset = TPoint(- hotspot.x(),- hotspot.y());
qt_symbian_dnd_deco->sprite.UpdateMember(0,qt_symbian_dnd_deco->cursorSprite);
diff --git a/src/gui/kernel/qdnd_x11.cpp b/src/gui/kernel/qdnd_x11.cpp
index 7b445ea7fa..410d1a9ce5 100644
--- a/src/gui/kernel/qdnd_x11.cpp
+++ b/src/gui/kernel/qdnd_x11.cpp
@@ -316,7 +316,7 @@ static XdndData xdnd_data = { 0, 0 };
class QExtraWidget : public QWidget
{
- Q_DECLARE_PRIVATE(QWidget)
+ Q_DECLARE_SCOPED_PRIVATE(QWidget)
public:
inline QWExtra* extraData();
inline QTLWExtra* topData();
diff --git a/src/gui/kernel/qdrag.h b/src/gui/kernel/qdrag.h
index b49d82aeaf..7e54b51330 100644
--- a/src/gui/kernel/qdrag.h
+++ b/src/gui/kernel/qdrag.h
@@ -61,7 +61,7 @@ class QDragManager;
class Q_GUI_EXPORT QDrag : public QObject
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QDrag)
+ Q_DECLARE_SCOPED_PRIVATE(QDrag)
public:
explicit QDrag(QWidget *dragSource);
~QDrag();
diff --git a/src/gui/kernel/qeventdispatcher_glib_qws_p.h b/src/gui/kernel/qeventdispatcher_glib_qws_p.h
index 826661e3c2..f0751bed14 100644
--- a/src/gui/kernel/qeventdispatcher_glib_qws_p.h
+++ b/src/gui/kernel/qeventdispatcher_glib_qws_p.h
@@ -62,7 +62,7 @@ class QWSEventDispatcherGlibPrivate;
class QWSEventDispatcherGlib : public QEventDispatcherGlib
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QWSEventDispatcherGlib)
+ Q_DECLARE_SCOPED_PRIVATE(QWSEventDispatcherGlib)
public:
explicit QWSEventDispatcherGlib(QObject *parent = 0);
diff --git a/src/gui/kernel/qeventdispatcher_mac_p.h b/src/gui/kernel/qeventdispatcher_mac_p.h
index 88663c63be..1986c4c8dc 100644
--- a/src/gui/kernel/qeventdispatcher_mac_p.h
+++ b/src/gui/kernel/qeventdispatcher_mac_p.h
@@ -108,7 +108,7 @@ class QEventDispatcherMacPrivate;
class QEventDispatcherMac : public QAbstractEventDispatcher
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QEventDispatcherMac)
+ Q_DECLARE_SCOPED_PRIVATE(QEventDispatcherMac)
public:
explicit QEventDispatcherMac(QObject *parent = 0);
diff --git a/src/gui/kernel/qeventdispatcher_qws_p.h b/src/gui/kernel/qeventdispatcher_qws_p.h
index b83fa1092c..982ed58c41 100644
--- a/src/gui/kernel/qeventdispatcher_qws_p.h
+++ b/src/gui/kernel/qeventdispatcher_qws_p.h
@@ -62,7 +62,7 @@ class QEventDispatcherQWSPrivate;
class QEventDispatcherQWS : public QEventDispatcherUNIX
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QEventDispatcherQWS)
+ Q_DECLARE_SCOPED_PRIVATE(QEventDispatcherQWS)
public:
explicit QEventDispatcherQWS(QObject *parent = 0);
diff --git a/src/gui/kernel/qeventdispatcher_s60.cpp b/src/gui/kernel/qeventdispatcher_s60.cpp
index 51878df447..2fea8a4476 100644
--- a/src/gui/kernel/qeventdispatcher_s60.cpp
+++ b/src/gui/kernel/qeventdispatcher_s60.cpp
@@ -76,7 +76,7 @@ bool QEventDispatcherS60::processEvents ( QEventLoop::ProcessEventsFlags flags )
m_noInputEvents = oldNoInputEventsValue;
} QT_CATCH (const std::exception& ex) {
#ifndef QT_NO_EXCEPTIONS
- CActiveScheduler::Current()->Error(qt_translateExceptionToSymbianError(ex));
+ CActiveScheduler::Current()->Error(qt_exception2SymbianError(ex));
#endif
}
diff --git a/src/gui/kernel/qeventdispatcher_x11_p.h b/src/gui/kernel/qeventdispatcher_x11_p.h
index 9a54c368fe..b4c553d70a 100644
--- a/src/gui/kernel/qeventdispatcher_x11_p.h
+++ b/src/gui/kernel/qeventdispatcher_x11_p.h
@@ -62,7 +62,7 @@ class QEventDispatcherX11Private;
class QEventDispatcherX11 : public QEventDispatcherUNIX
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QEventDispatcherX11)
+ Q_DECLARE_SCOPED_PRIVATE(QEventDispatcherX11)
public:
explicit QEventDispatcherX11(QObject *parent = 0);
diff --git a/src/gui/kernel/qformlayout.h b/src/gui/kernel/qformlayout.h
index b560e850be..0143711c45 100644
--- a/src/gui/kernel/qformlayout.h
+++ b/src/gui/kernel/qformlayout.h
@@ -56,7 +56,7 @@ class Q_GUI_EXPORT QFormLayout : public QLayout
{
Q_OBJECT
Q_ENUMS(FormStyle FieldGrowthPolicy RowWrapPolicy ItemRole)
- Q_DECLARE_PRIVATE(QFormLayout)
+ Q_DECLARE_SCOPED_PRIVATE(QFormLayout)
Q_PROPERTY(FieldGrowthPolicy fieldGrowthPolicy READ fieldGrowthPolicy WRITE setFieldGrowthPolicy RESET resetFieldGrowthPolicy)
Q_PROPERTY(RowWrapPolicy rowWrapPolicy READ rowWrapPolicy WRITE setRowWrapPolicy RESET resetRowWrapPolicy)
Q_PROPERTY(Qt::Alignment labelAlignment READ labelAlignment WRITE setLabelAlignment RESET resetLabelAlignment)
diff --git a/src/gui/kernel/qgesture.h b/src/gui/kernel/qgesture.h
index 1cd9caeaa0..8390d11c19 100644
--- a/src/gui/kernel/qgesture.h
+++ b/src/gui/kernel/qgesture.h
@@ -60,7 +60,7 @@ class QGesturePrivate;
class Q_GUI_EXPORT QGesture : public QObject
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QGesture)
+ Q_DECLARE_SCOPED_PRIVATE(QGesture)
Q_PROPERTY(Qt::GestureState state READ state)
diff --git a/src/gui/kernel/qgridlayout.h b/src/gui/kernel/qgridlayout.h
index 89a04a4e7f..2b5299eed4 100644
--- a/src/gui/kernel/qgridlayout.h
+++ b/src/gui/kernel/qgridlayout.h
@@ -60,7 +60,7 @@ class QGridLayoutPrivate;
class Q_GUI_EXPORT QGridLayout : public QLayout
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QGridLayout)
+ Q_DECLARE_SCOPED_PRIVATE(QGridLayout)
QDOC_PROPERTY(int horizontalSpacing READ horizontalSpacing WRITE setHorizontalSpacing)
QDOC_PROPERTY(int verticalSpacing READ verticalSpacing WRITE setVerticalSpacing)
diff --git a/src/gui/kernel/qguieventdispatcher_glib_p.h b/src/gui/kernel/qguieventdispatcher_glib_p.h
index 65d233e89e..8543836c7c 100644
--- a/src/gui/kernel/qguieventdispatcher_glib_p.h
+++ b/src/gui/kernel/qguieventdispatcher_glib_p.h
@@ -62,7 +62,7 @@ class QGuiEventDispatcherGlibPrivate;
class QGuiEventDispatcherGlib : public QEventDispatcherGlib
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QGuiEventDispatcherGlib)
+ Q_DECLARE_SCOPED_PRIVATE(QGuiEventDispatcherGlib)
public:
explicit QGuiEventDispatcherGlib(QObject *parent = 0);
diff --git a/src/gui/kernel/qkeymapper_mac.cpp b/src/gui/kernel/qkeymapper_mac.cpp
index 8eee665437..ad293bd10b 100644
--- a/src/gui/kernel/qkeymapper_mac.cpp
+++ b/src/gui/kernel/qkeymapper_mac.cpp
@@ -563,7 +563,7 @@ QKeyMapperPrivate::QKeyMapperPrivate()
QKeyMapperPrivate::~QKeyMapperPrivate()
{
- clearMappings();
+ deleteLayouts();
}
bool
@@ -658,7 +658,7 @@ QKeyMapperPrivate::updateKeyboard()
}
void
-QKeyMapperPrivate::clearMappings()
+QKeyMapperPrivate::deleteLayouts()
{
keyboard_mode = NullMode;
for (int i = 0; i < 255; ++i) {
@@ -667,6 +667,12 @@ QKeyMapperPrivate::clearMappings()
keyLayout[i] = 0;
}
}
+}
+
+void
+QKeyMapperPrivate::clearMappings()
+{
+ deleteLayouts();
updateKeyboard();
}
diff --git a/src/gui/kernel/qkeymapper_p.h b/src/gui/kernel/qkeymapper_p.h
index ba1fcfeadb..6c12b0fa40 100644
--- a/src/gui/kernel/qkeymapper_p.h
+++ b/src/gui/kernel/qkeymapper_p.h
@@ -85,7 +85,7 @@ public:
private:
friend QKeyMapperPrivate *qt_keymapper_private();
- Q_DECLARE_PRIVATE(QKeyMapper)
+ Q_DECLARE_SCOPED_PRIVATE(QKeyMapper)
Q_DISABLE_COPY(QKeyMapper)
};
@@ -161,6 +161,7 @@ public:
bool translateKeyEvent(QWidget *receiver, const MSG &msg, bool grab);
void updatePossibleKeyCodes(unsigned char *kbdBuffer, quint32 scancode, quint32 vk_key);
bool isADeadKey(unsigned int vk_key, unsigned int modifiers);
+ void deleteLayouts();
KeyboardLayoutItem *keyLayout[256];
@@ -189,6 +190,7 @@ public:
bool updateKeyboard();
void updateKeyMap(EventHandlerCallRef, EventRef, void *);
bool translateKeyEvent(QWidget *, EventHandlerCallRef, EventRef, void *, bool);
+ void deleteLayouts();
enum { NullMode, UnicodeMode, OtherMode } keyboard_mode;
union {
diff --git a/src/gui/kernel/qkeymapper_win.cpp b/src/gui/kernel/qkeymapper_win.cpp
index 0998631f42..bd55411ef5 100644
--- a/src/gui/kernel/qkeymapper_win.cpp
+++ b/src/gui/kernel/qkeymapper_win.cpp
@@ -582,10 +582,10 @@ QKeyMapperPrivate::QKeyMapperPrivate()
QKeyMapperPrivate::~QKeyMapperPrivate()
{
- clearMappings();
+ deleteLayouts();
}
-void QKeyMapperPrivate::clearMappings()
+void QKeyMapperPrivate::deleteLayouts()
{
for (int i = 0; i < 255; ++i) {
if (keyLayout[i]) {
@@ -593,6 +593,11 @@ void QKeyMapperPrivate::clearMappings()
keyLayout[i] = 0;
}
}
+}
+
+void QKeyMapperPrivate::clearMappings()
+{
+ deleteLayouts();
/* MAKELCID()'s first argument is a WORD, and GetKeyboardLayout()
* returns a DWORD. */
diff --git a/src/gui/kernel/qkeysequence.cpp b/src/gui/kernel/qkeysequence.cpp
index 6563dae57a..e2a5b2766b 100644
--- a/src/gui/kernel/qkeysequence.cpp
+++ b/src/gui/kernel/qkeysequence.cpp
@@ -753,7 +753,9 @@ QKeySequence::QKeySequence(StandardKey key)
*/
QKeySequence::QKeySequence()
{
- d = new QKeySequencePrivate();
+ static QKeySequencePrivate shared_empty;
+ d = &shared_empty;
+ d->ref.ref();
}
/*!
diff --git a/src/gui/kernel/qlayout.h b/src/gui/kernel/qlayout.h
index 4f46c1d894..ec95ca8cb2 100644
--- a/src/gui/kernel/qlayout.h
+++ b/src/gui/kernel/qlayout.h
@@ -89,7 +89,7 @@ class QLayoutPrivate;
class Q_GUI_EXPORT QLayout : public QObject, public QLayoutItem
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QLayout)
+ Q_DECLARE_SCOPED_PRIVATE(QLayout)
Q_ENUMS(SizeConstraint)
Q_PROPERTY(int margin READ margin WRITE setMargin)
diff --git a/src/gui/kernel/qsessionmanager.h b/src/gui/kernel/qsessionmanager.h
index f27dbaa8bd..0a55d0ca13 100644
--- a/src/gui/kernel/qsessionmanager.h
+++ b/src/gui/kernel/qsessionmanager.h
@@ -60,7 +60,7 @@ class QSessionManagerPrivate;
class Q_GUI_EXPORT QSessionManager : public QObject
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QSessionManager)
+ Q_DECLARE_SCOPED_PRIVATE(QSessionManager)
QSessionManager(QApplication *app, QString &id, QString &key);
~QSessionManager();
public:
diff --git a/src/gui/kernel/qshortcut.h b/src/gui/kernel/qshortcut.h
index c81ce7cdc5..7b79faacda 100644
--- a/src/gui/kernel/qshortcut.h
+++ b/src/gui/kernel/qshortcut.h
@@ -57,7 +57,7 @@ class QShortcutPrivate;
class Q_GUI_EXPORT QShortcut : public QObject
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QShortcut)
+ Q_DECLARE_SCOPED_PRIVATE(QShortcut)
Q_PROPERTY(QKeySequence key READ key WRITE setKey)
Q_PROPERTY(QString whatsThis READ whatsThis WRITE setWhatsThis)
Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled)
diff --git a/src/gui/kernel/qshortcutmap_p.h b/src/gui/kernel/qshortcutmap_p.h
index 8962ac7d27..53a39ec487 100644
--- a/src/gui/kernel/qshortcutmap_p.h
+++ b/src/gui/kernel/qshortcutmap_p.h
@@ -74,7 +74,7 @@ class QObject;
class QShortcutMap
{
- Q_DECLARE_PRIVATE(QShortcutMap)
+ Q_DECLARE_SCOPED_PRIVATE(QShortcutMap)
public:
QShortcutMap();
~QShortcutMap();
diff --git a/src/gui/kernel/qsound.h b/src/gui/kernel/qsound.h
index 22cfdde335..eeef0474ac 100644
--- a/src/gui/kernel/qsound.h
+++ b/src/gui/kernel/qsound.h
@@ -82,7 +82,7 @@ public:
static inline QT3_SUPPORT bool available() { return isAvailable(); }
#endif
private:
- Q_DECLARE_PRIVATE(QSound)
+ Q_DECLARE_SCOPED_PRIVATE(QSound)
friend class QAuServer;
};
diff --git a/src/gui/kernel/qsound_s60.cpp b/src/gui/kernel/qsound_s60.cpp
index c9eedf5b9c..75458ec34d 100644
--- a/src/gui/kernel/qsound_s60.cpp
+++ b/src/gui/kernel/qsound_s60.cpp
@@ -65,22 +65,22 @@ public:
void play();
void stop();
-
+
inline QSound* sound() const { return m_sound; }
-
+
public: // from MMdaAudioPlayerCallback
void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration);
- void MapcPlayComplete(TInt aError);
+ void MapcPlayComplete(TInt aError);
private:
QSound *m_sound;
- QAuServerS60 *m_server;
+ QAuServerS60 *m_server;
bool m_prepared;
- bool m_playCalled;
- CMdaAudioPlayerUtility* m_playUtility;
+ bool m_playCalled;
+ CMdaAudioPlayerUtility* m_playUtility;
};
-
+
class QAuServerS60 : public QAuServer
{
public:
@@ -103,11 +103,11 @@ public:
}
bool okay() { return true; }
-
+
protected:
- void playCompleted(QAuBucketS60* bucket, int error)
+ void playCompleted(QAuBucketS60* bucket, int error)
{
- QSound *sound = bucket->sound();
+ QSound *sound = bucket->sound();
if(!error) {
// We need to handle repeats by ourselves, since with Symbian API we don't
// know how many loops have been played when user asks it
@@ -119,14 +119,14 @@ protected:
// in order that QSound::isFinished will return true;
while(decLoop(sound)) {}
}
- }
+ }
protected:
QAuBucketS60* bucket( QSound *s )
{
return (QAuBucketS60*)QAuServer::bucket( s );
}
-
+
friend class QAuBucketS60;
};
@@ -160,32 +160,32 @@ void QAuBucketS60::play()
{
if(m_prepared) {
// OpenFileL call is completed we can start playing immediately
- m_playUtility->Play();
+ m_playUtility->Play();
} else {
m_playCalled = true;
}
-
+
}
void QAuBucketS60::stop()
{
m_playCalled = false;
- m_playUtility->Stop();
+ m_playUtility->Stop();
}
void QAuBucketS60::MapcPlayComplete(TInt aError)
{
m_server->playCompleted(this, aError);
}
-
-void QAuBucketS60::MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& /*aDuration*/)
+
+void QAuBucketS60::MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& /*aDuration*/)
{
if(aError) {
m_server->playCompleted(this, aError);
} else {
- m_prepared = true;
+ m_prepared = true;
if(m_playCalled){
- play();
+ play();
}
}
}
@@ -196,7 +196,7 @@ QAuBucketS60::~QAuBucketS60()
m_playUtility->Stop();
m_playUtility->Close();
}
-
+
delete m_playUtility;
}
diff --git a/src/gui/kernel/qstackedlayout.h b/src/gui/kernel/qstackedlayout.h
index d14b2abc35..ab215fa40d 100644
--- a/src/gui/kernel/qstackedlayout.h
+++ b/src/gui/kernel/qstackedlayout.h
@@ -55,7 +55,7 @@ class QStackedLayoutPrivate;
class Q_GUI_EXPORT QStackedLayout : public QLayout
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QStackedLayout)
+ Q_DECLARE_SCOPED_PRIVATE(QStackedLayout)
Q_ENUMS(StackingMode)
Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentChanged)
Q_PROPERTY(StackingMode stackingMode READ stackingMode WRITE setStackingMode)
diff --git a/src/gui/kernel/qt_s60_p.h b/src/gui/kernel/qt_s60_p.h
index bcbe48f62b..f6dd2e159c 100644
--- a/src/gui/kernel/qt_s60_p.h
+++ b/src/gui/kernel/qt_s60_p.h
@@ -73,18 +73,13 @@
#include <akncontext.h> // CAknContextPane
#include <eikspane.h> // CEikStatusPane
#endif
-
+
QT_BEGIN_NAMESPACE
-// Application internal HandleResourceChangeL events,
+// Application internal HandleResourceChangeL events,
// system evens seems to start with 0x10
const TInt KInternalStatusPaneChange = 0x50000000;
-struct QS60Data;
-extern QS60Data *qt_s60Data;
-
-#define S60 qt_s60Data
-
class QS60Data
{
public:
@@ -114,10 +109,13 @@ public:
#endif
};
+QS60Data* qGlobalS60Data();
+#define S60 qGlobalS60Data()
+
class QAbstractLongTapObserver
{
public:
- virtual void HandleLongTapEventL( const TPoint& aPenEventLocation,
+ virtual void HandleLongTapEventL( const TPoint& aPenEventLocation,
const TPoint& aPenEventScreenLocation ) = 0;
};
class QLongTapTimer;
@@ -241,7 +239,7 @@ inline CEikButtonGroupContainer* QS60Data::buttonGroupContainer()
static inline QFont qt_TFontSpec2QFontL(const TFontSpec &fontSpec)
{
return QFont(
- qt_TDesC2QStringL(fontSpec.iTypeface.iName),
+ qt_TDesC2QString(fontSpec.iTypeface.iName),
fontSpec.iHeight / KTwipsPerPoint,
fontSpec.iFontStyle.StrokeWeight() == EStrokeWeightNormal ? QFont::Normal : QFont::Bold,
fontSpec.iFontStyle.Posture() == EPostureItalic
diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp
index d7c89a6f32..e990358ccf 100644
--- a/src/gui/kernel/qwidget.cpp
+++ b/src/gui/kernel/qwidget.cpp
@@ -896,22 +896,22 @@ void QWidget::setAutoFillBackground(bool enabled)
\endlist
\sa QEvent, QPainter, QGridLayout, QBoxLayout
-
+
\section1 SoftKeys
\since 4.6
\preliminary
- Softkeys API is a platform independent way of mapping actions to (hardware)keys
+ Softkeys API is a platform independent way of mapping actions to (hardware)keys
and toolbars provided by the underlying platform.
-
- There are three major use cases supported. First one is a mobile device
+
+ There are three major use cases supported. First one is a mobile device
with keypad navigation and no touch ui. Second use case is a mobile
- device with touch ui. Third use case is desktop. For now the softkey API is
+ device with touch ui. Third use case is desktop. For now the softkey API is
only implemented for Series60.
-
- QActions are set to widget(s) via softkey API. Actions in focused widget are
+
+ QActions are set to widget(s) via softkey API. Actions in focused widget are
mapped to native toolbar or hardware keys. Even though the API allows to set
- any amount of widgets there might be physical restrictions to amount of
+ any amount of widgets there might be physical restrictions to amount of
softkeys that can be used by the device.
\o Series60: For series60 menu button is automatically mapped to left
@@ -919,11 +919,11 @@ void QWidget::setAutoFillBackground(bool enabled)
\sa softKeys()
\sa setSoftKey()
-
+
*/
-QWidgetMapper *QWidgetPrivate::mapper = 0; // widget with wid
-QWidgetSet *QWidgetPrivate::uncreatedWidgets = 0; // widgets with no wid
+QWidgetMapper *QWidgetPrivate::mapper = 0; // widget with wid
+QWidgetSet *QWidgetPrivate::allWidgets = 0; // widgets with no wid
/*****************************************************************************
@@ -969,7 +969,7 @@ struct QWidgetExceptionCleaner
static inline void cleanup(QWidget *that, QWidgetPrivate *d)
{
#ifndef QT_NO_EXCEPTIONS
- QWidgetPrivate::uncreatedWidgets->remove(that);
+ QWidgetPrivate::allWidgets->remove(that);
if (d->focus_next != that) {
if (d->focus_next)
d->focus_next->d_func()->focus_prev = d->focus_prev;
@@ -1121,8 +1121,8 @@ void QWidgetPrivate::init(QWidget *parentWidget, Qt::WindowFlags f)
if (QApplication::type() == QApplication::Tty)
qFatal("QWidget: Cannot create a QWidget when no GUI is being used");
- Q_ASSERT(uncreatedWidgets);
- uncreatedWidgets->insert(q);
+ Q_ASSERT(allWidgets);
+ allWidgets->insert(q);
QWidget *desktopWidget = 0;
if (parentWidget && parentWidget->windowType() == Qt::Desktop) {
@@ -1415,15 +1415,31 @@ QWidget::~QWidget()
}
#endif
- clearFocus();
+ QT_TRY {
+ clearFocus();
+ } QT_CATCH(...) {
+ // swallow this problem because we are in a destructor
+ }
d->setDirtyOpaqueRegion();
- if (isWindow() && isVisible() && internalWinId())
- d->close_helper(QWidgetPrivate::CloseNoEvent);
+ if (isWindow() && isVisible() && internalWinId()) {
+ QT_TRY {
+ d->close_helper(QWidgetPrivate::CloseNoEvent);
+ } QT_CATCH(...) {
+ // if we're out of memory, at least hide the window.
+ QT_TRY {
+ hide();
+ } QT_CATCH(...) {
+ // and if that also doesn't work, then give up
+ }
+ }
+ }
+
#if defined(Q_WS_WIN) || defined(Q_WS_X11)
- else if (!internalWinId() && isVisible())
+ else if (!internalWinId() && isVisible()) {
qApp->d_func()->sendSyntheticEnterLeave(this);
+ }
#endif
if (QWidgetBackingStore *bs = d->maybeBackingStore()) {
@@ -1449,12 +1465,15 @@ QWidget::~QWidget()
QApplication::removePostedEvents(this);
- destroy(); // platform-dependent cleanup
-
+ QT_TRY {
+ destroy(); // platform-dependent cleanup
+ } QT_CATCH(...) {
+ // if this fails we can't do anything about it but at least we are not allowed to throw.
+ }
--QWidgetPrivate::instanceCounter;
- if (QWidgetPrivate::uncreatedWidgets) // might have been deleted by ~QApplication
- QWidgetPrivate::uncreatedWidgets->remove(this);
+ if (QWidgetPrivate::allWidgets) // might have been deleted by ~QApplication
+ QWidgetPrivate::allWidgets->remove(this);
QEvent e(QEvent::Destroy);
QCoreApplication::sendEvent(this, &e);
@@ -1474,7 +1493,6 @@ void QWidgetPrivate::setWinId(WId id) // set widget identifier
bool userDesktopWidget = qt_desktopWidget != 0 && qt_desktopWidget != q && q->windowType() == Qt::Desktop;
if (mapper && data.winid && !userDesktopWidget) {
mapper->remove(data.winid);
- uncreatedWidgets->insert(q);
}
data.winid = id;
@@ -1483,7 +1501,6 @@ void QWidgetPrivate::setWinId(WId id) // set widget identifier
#endif
if (mapper && id && !userDesktopWidget) {
mapper->insert(data.winid, q);
- uncreatedWidgets->remove(q);
}
}
@@ -4681,8 +4698,9 @@ void QWidget::setCursor(const QCursor &cursor)
#endif
{
d->createExtra();
+ QCursor *newCursor = new QCursor(cursor);
delete d->extra->curs;
- d->extra->curs = new QCursor(cursor);
+ d->extra->curs = newCursor;
}
setAttribute(Qt::WA_SetCursor);
d->setCursor_sys(cursor);
@@ -5383,6 +5401,17 @@ QString QWidget::windowTitle() const
return QString();
}
+/*!
+ Returns a modified window title with the [*] place holder
+ replaced according to the rules described in QWidget::setWindowTitle
+
+ This function assumes that "[*]" can be quoted by another
+ "[*]", so it will replace two place holders by one and
+ a single last one by either "*" or nothing depending on
+ the modified flag.
+
+ \internal
+*/
QString qt_setWindowTitle_helperHelper(const QString &title, const QWidget *widget)
{
Q_ASSERT(widget);
@@ -5394,16 +5423,21 @@ QString qt_setWindowTitle_helperHelper(const QString &title, const QWidget *widg
QString cap = title;
#endif
- QString placeHolder(QLatin1String("[*]"));
+ if (cap.isEmpty())
+ return cap;
+
+ QLatin1String placeHolder("[*]");
+ int placeHolderLength = 3; // QLatin1String doesn't have length()
int index = cap.indexOf(placeHolder);
+ // here the magic begins
while (index != -1) {
- index += placeHolder.length();
+ index += placeHolderLength;
int count = 1;
while (cap.indexOf(placeHolder, index) == index) {
++count;
- index += placeHolder.length();
+ index += placeHolderLength;
}
if (count%2) { // odd number of [*] -> replace last one
@@ -5418,7 +5452,7 @@ QString qt_setWindowTitle_helperHelper(const QString &title, const QWidget *widg
index = cap.indexOf(placeHolder, index);
}
- cap.replace(QLatin1String("[*][*]"), QLatin1String("[*]"));
+ cap.replace(QLatin1String("[*][*]"), placeHolder);
return cap;
}
@@ -5756,7 +5790,7 @@ void QWidget::setFocus(Qt::FocusReason reason)
if (!isEnabled())
return;
-
+
QWidget *f = this;
while (f->d_func()->extra && f->d_func()->extra->focus_proxy)
f = f->d_func()->extra->focus_proxy;
@@ -11639,7 +11673,7 @@ void QWidget::clearMask()
/*!
\preliminary
\since 4.6
-
+
Returns the (possibly empty) list of this widget's softkeys.
Returned list cannot be changed. Softkeys should be added
and removed via method called setSoftKeys
@@ -11660,7 +11694,7 @@ const QList<QAction*>& QWidget::softKeys() const
/*!
\preliminary
\since 4.6
-
+
Sets the softkey \a softkey to this widget's list of softkeys,
Setting 0 as softkey will clear all the existing softkeys set
to the widget
diff --git a/src/gui/kernel/qwidget.h b/src/gui/kernel/qwidget.h
index c73f633775..c5c10b62db 100644
--- a/src/gui/kernel/qwidget.h
+++ b/src/gui/kernel/qwidget.h
@@ -142,7 +142,7 @@ class QWidgetPrivate;
class Q_GUI_EXPORT QWidget : public QObject, public QPaintDevice
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QWidget)
+ Q_DECLARE_SCOPED_PRIVATE(QWidget)
Q_PROPERTY(bool modal READ isModal)
Q_PROPERTY(Qt::WindowModality windowModality READ windowModality WRITE setWindowModality)
diff --git a/src/gui/kernel/qwidget_mac.mm b/src/gui/kernel/qwidget_mac.mm
index 78df09da06..070110d5a5 100644
--- a/src/gui/kernel/qwidget_mac.mm
+++ b/src/gui/kernel/qwidget_mac.mm
@@ -2556,7 +2556,11 @@ void QWidget::destroy(bool destroyWindow, bool destroySubWindows)
qt_mac_destructWindow(window);
}
}
- d->setWinId(0);
+ QT_TRY {
+ d->setWinId(0);
+ } QT_CATCH (const std::bad_alloc &) {
+ // swallow - destructors must not throw
+ }
}
}
diff --git a/src/gui/kernel/qwidget_p.h b/src/gui/kernel/qwidget_p.h
index 1d9689e9c0..1122154972 100644
--- a/src/gui/kernel/qwidget_p.h
+++ b/src/gui/kernel/qwidget_p.h
@@ -490,10 +490,11 @@ public:
QWidgetItemV2 *widgetItem;
QPaintEngine *extraPaintEngine;
mutable const QMetaObject *polished;
- // All widgets are initially added into the uncreatedWidgets set. Once
- // they receive a window id they are removed and added to the mapper
+ // All widgets are added into the allWidgets set. Once
+ // they receive a window id they are also added to the mapper.
+ // This should just ensure that all widgets are deleted by QApplication
static QWidgetMapper *mapper;
- static QWidgetSet *uncreatedWidgets;
+ static QWidgetSet *allWidgets;
#if !defined(QT_NO_IM)
QPointer<QInputContext> ic;
Qt::InputMethodHints imHints;
diff --git a/src/gui/kernel/qwidget_qws.cpp b/src/gui/kernel/qwidget_qws.cpp
index 4ded5cf691..eacf656047 100644
--- a/src/gui/kernel/qwidget_qws.cpp
+++ b/src/gui/kernel/qwidget_qws.cpp
@@ -298,11 +298,16 @@ void QWidget::destroy(bool destroyWindow, bool destroySubWindows)
d->hide_sys();
}
if (destroyWindow && isWindow()) {
- d->extra->topextra->backingStore->windowSurface->setGeometry(QRect());
+ if (d->extra && d->extra->topextra && d->extra->topextra->backingStore)
+ d->extra->topextra->backingStore->windowSurface->setGeometry(QRect());
qwsDisplay()->destroyRegion(internalWinId());
}
}
- d->setWinId(0);
+ QT_TRY {
+ d->setWinId(0);
+ } QT_CATCH (const std::bad_alloc &) {
+ // swallow - destructors must not throw
+ }
}
}
diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp
index 5b05e5521c..ddd2f4c543 100644
--- a/src/gui/kernel/qwidget_s60.cpp
+++ b/src/gui/kernel/qwidget_s60.cpp
@@ -89,7 +89,7 @@ void QWidgetPrivate::setSoftKeys_sys(const QList<QAction*> &softkeys)
return;
}
CEikButtonGroupContainer* nativeContainer = S60->buttonGroupContainer();
- nativeContainer->SetCommandSetL(R_AVKON_SOFTKEYS_EMPTY_WITH_IDS);
+ QT_TRAP_THROWING(nativeContainer->SetCommandSetL(R_AVKON_SOFTKEYS_EMPTY_WITH_IDS));
int position = -1;
int command;
@@ -137,12 +137,12 @@ void QWidgetPrivate::setSoftKeys_sys(const QList<QAction*> &softkeys)
if (position != -1) {
TPtrC text = qt_QString2TPtrC(softKeyAction->text());
- nativeContainer->SetCommandL(position, command, text);
+ QT_TRAP_THROWING(nativeContainer->SetCommandL(position, command, text));
}
}
if (needsExitButton)
- nativeContainer->SetCommandL(2, EAknSoftkeyExit, qt_QString2TPtrC(QObject::tr("Exit")));
+ QT_TRAP_THROWING(nativeContainer->SetCommandL(2, EAknSoftkeyExit, qt_QString2TPtrC(QObject::tr("Exit"))));
nativeContainer->DrawDeferred(); // 3.1 needs an extra invitation
#else
@@ -310,9 +310,17 @@ void QWidgetPrivate::create_sys(WId window, bool /* initializeWindow */, bool de
} else if (topLevel) {
if (!q->testAttribute(Qt::WA_Moved) && !q->testAttribute(Qt::WA_DontShowOnScreen))
data.crect.moveTopLeft(QPoint(clientRect.iTl.iX, clientRect.iTl.iY));
- QSymbianControl *control= new QSymbianControl(q);
- control->ConstructL(true,desktop);
+ QSymbianControl *control= q_check_ptr(new QSymbianControl(q));
+ QT_TRAP_THROWING(control->ConstructL(true,desktop));
if (!desktop) {
+ TInt stackingFlags;
+ if ((q->windowType() & Qt::Popup) == Qt::Popup) {
+ stackingFlags = ECoeStackFlagRefusesAllKeys | ECoeStackFlagRefusesFocus;
+ } else {
+ stackingFlags = ECoeStackFlagStandard;
+ }
+ control->ControlEnv()->AppUi()->AddToStackL(control, ECoeStackPriorityDefault, stackingFlags);
+
QTLWExtra *topExtra = topData();
topExtra->rwindow = control->DrawableWindow();
// Request mouse move events.
@@ -340,10 +348,19 @@ void QWidgetPrivate::create_sys(WId window, bool /* initializeWindow */, bool de
control->SetRect(TRect(TPoint(x, y), TSize(w, h)));
} else if (q->testAttribute(Qt::WA_NativeWindow) || paintOnScreen()) { // create native child widget
QSymbianControl *control = new QSymbianControl(q);
- control->ConstructL(!parentWidget);
+ QT_TRAP_THROWING(control->ConstructL(!parentWidget));
+
+ TInt stackingFlags;
+ if ((q->windowType() & Qt::Popup) == Qt::Popup) {
+ stackingFlags = ECoeStackFlagRefusesAllKeys | ECoeStackFlagRefusesFocus;
+ } else {
+ stackingFlags = ECoeStackFlagStandard;
+ }
+ control->ControlEnv()->AppUi()->AddToStackL(control, ECoeStackPriorityDefault, stackingFlags);
+
setWinId(control);
WId parentw = parentWidget->effectiveWinId();
- control->SetContainerWindowL(*parentw);
+ QT_TRAP_THROWING(control->SetContainerWindowL(*parentw));
q->setAttribute(Qt::WA_WState_Created);
int x, y, w, h;
@@ -378,17 +395,11 @@ void QWidgetPrivate::show_sys()
WId id = q->internalWinId();
if (!extra->topextra->activated) {
- id->ActivateL();
+ QT_TRAP_THROWING(id->ActivateL());
extra->topextra->activated = 1;
}
- TInt stackingFlags;
- if ((q->windowType() & Qt::Popup) == Qt::Popup) {
- stackingFlags = ECoeStackFlagRefusesAllKeys | ECoeStackFlagRefusesFocus;
- } else {
- stackingFlags = ECoeStackFlagStandard;
- }
- id->ControlEnv()->AppUi()->AddToStackL(id, ECoeStackPriorityDefault, stackingFlags);
id->MakeVisible(true);
+ id->SetFocus(true);
// Force setting of the icon after window is made visible,
// this is needed even WA_SetWindowIcon is not set, as in that case we need
@@ -406,10 +417,9 @@ void QWidgetPrivate::hide_sys()
deactivateWidgetCleanup();
WId id = q->internalWinId();
if (q->isWindow() && id) {
- if(id->IsFocused()) // Avoid unnecessry calls to FocusChanged()
+ if(id->IsFocused()) // Avoid unnecessary calls to FocusChanged()
id->SetFocus(false);
id->MakeVisible(false);
- id->ControlEnv()->AppUi()->RemoveFromStack(id);
if (QWidgetBackingStore *bs = maybeBackingStore())
bs->releaseBuffer();
} else {
@@ -544,7 +554,8 @@ void QWidgetPrivate::setParent_sys(QWidget *parent, Qt::WindowFlags f)
// destroyed when emitting the child remove event below. See QWorkspace.
if (wasCreated && old_winid) {
old_winid->MakeVisible(false);
- old_winid->ControlEnv()->AppUi()->RemoveFromStack(old_winid);
+ if(old_winid->IsFocused()) // Avoid unnecessary calls to FocusChanged()
+ old_winid->SetFocus(false);
old_winid->SetParent(0);
}
@@ -608,9 +619,9 @@ void QWidgetPrivate::s60UpdateIsOpaque()
}
}
-CFbsBitmap* qt_pixmapToNativeBitmapL(QPixmap pixmap, bool invert)
+CFbsBitmap* qt_pixmapToNativeBitmap(QPixmap pixmap, bool invert)
{
- CFbsBitmap* fbsBitmap = new(ELeave)CFbsBitmap;
+ CFbsBitmap* fbsBitmap = q_check_ptr(new CFbsBitmap); // CBase derived object needs check on new
TSize size(pixmap.size().width(), pixmap.size().height());
TDisplayMode mode(EColor16MU);
@@ -621,7 +632,7 @@ CFbsBitmap* qt_pixmapToNativeBitmapL(QPixmap pixmap, bool invert)
// Will fix later on when native pixmap is implemented
switch(pixmap.depth()) {
case 1:
- mode = EGray2;
+ mode = EGray2;
break;
case 4:
mode = EColor16;
@@ -646,12 +657,12 @@ CFbsBitmap* qt_pixmapToNativeBitmapL(QPixmap pixmap, bool invert)
break;
}
- User::LeaveIfError(fbsBitmap->Create(size, mode));
+ qt_throwIfError(fbsBitmap->Create(size, mode));
fbsBitmap->LockHeap();
QImage image = pixmap.toImage();
if(invert)
- image.invertPixels();
+ image.invertPixels();
int height = pixmap.size().height();
for(int i=0;i<height;i++ )
@@ -695,26 +706,26 @@ void QWidgetPrivate::setWindowIcon_sys(bool forceReset)
// Convert to CFbsBitmp
// TODO: When QPixmap is adapted to use native CFbsBitmap,
// it could be set directly to context pane
- CFbsBitmap* nBitmap = qt_pixmapToNativeBitmapL(pm, false);
- CFbsBitmap* nMask = qt_pixmapToNativeBitmapL(mask, true);
+ CFbsBitmap* nBitmap = qt_pixmapToNativeBitmap(pm, false);
+ CFbsBitmap* nMask = qt_pixmapToNativeBitmap(mask, true);
contextPane->SetPicture(nBitmap,nMask);
} else {
// Icon set to null -> set context pane picture to default
- contextPane->SetPictureToDefaultL();
+ QT_TRAP_THROWING(contextPane->SetPictureToDefaultL());
}
} else {
// Context pane does not exist, try setting small icon to title pane
TRect titlePaneRect;
TBool found = AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::ETitlePane, titlePaneRect );
- CAknTitlePane* titlePane = S60->titlePane();
+ CAknTitlePane* titlePane = S60->titlePane();
if (found && titlePane) { // We have title pane with valid metrics
- // The API to get title_pane graphics size is not public -> assume square space based
+ // The API to get title_pane graphics size is not public -> assume square space based
// on titlebar font height. CAknBitmap would be optimum, wihtout setting the size, since
// then title pane would automatically scale the bitmap. Unfortunately it is not public API
const CFont * font = AknLayoutUtils::FontFromId(EAknLogicalFontTitleFont);
TSize iconSize(font->HeightInPixels(), font->HeightInPixels());
-
+
QIcon icon = q->windowIcon();
if (!icon.isNull()) {
// Valid icon -> set it as an title pane small picture
@@ -729,8 +740,8 @@ void QWidgetPrivate::setWindowIcon_sys(bool forceReset)
// Convert to CFbsBitmp
// TODO: When QPixmap is adapted to use native CFbsBitmap,
// it could be set directly to context pane
- CFbsBitmap* nBitmap = qt_pixmapToNativeBitmapL(pm, false);
- CFbsBitmap* nMask = qt_pixmapToNativeBitmapL(mask, true);
+ CFbsBitmap* nBitmap = qt_pixmapToNativeBitmap(pm, false);
+ CFbsBitmap* nMask = qt_pixmapToNativeBitmap(mask, true);
titlePane->SetSmallPicture( nBitmap, nMask, ETrue );
} else {
@@ -739,7 +750,7 @@ void QWidgetPrivate::setWindowIcon_sys(bool forceReset)
}
}
}
-
+
#else
Q_UNUSED(forceReset)
#endif
@@ -752,8 +763,12 @@ void QWidgetPrivate::setWindowTitle_sys(const QString &caption)
if (q->isWindow()) {
Q_ASSERT(q->testAttribute(Qt::WA_WState_Created));
CAknTitlePane* titlePane = S60->titlePane();
- if(titlePane)
- titlePane->SetTextL(qt_QString2TPtrC(caption));
+ if(titlePane) {
+ if(caption.isEmpty())
+ titlePane->SetTextToDefaultL();
+ else
+ QT_TRAP_THROWING(titlePane->SetTextL(qt_QString2TPtrC(caption)));
+ }
}
#else
Q_UNUSED(caption)
@@ -1028,14 +1043,16 @@ void QWidget::setWindowState(Qt::WindowStates newstate)
if (newstate & Qt::WindowMinimized) {
if (isVisible()) {
WId id = effectiveWinId();
+ if(id->IsFocused()) // Avoid unnecessary calls to FocusChanged()
+ id->SetFocus(false);
id->MakeVisible(false);
- id->ControlEnv()->AppUi()->RemoveFromStack(id);
}
} else {
if (isVisible()) {
WId id = effectiveWinId();
id->MakeVisible(true);
- id->ControlEnv()->AppUi()->AddToStackL(id);
+ if(!id->IsFocused()) // Avoid unnecessary calls to FocusChanged()
+ id->SetFocus(true);
}
const QRect normalGeometry = geometry();
const QRect r = top->normalGeometry;
@@ -1100,11 +1117,17 @@ void QWidget::destroy(bool destroyWindow, bool destroySubWindows)
if (wid) {
QWidget *widget = QWidget::find(wid);
QApplication::setActiveWindow(widget);
+ // Reset global window title for focusing window
+ widget->d_func()->setWindowTitle_sys(widget->windowTitle());
}
}
- d->setWinId(0);
+ QT_TRY {
+ d->setWinId(0);
+ } QT_CATCH (const std::bad_alloc &) {
+ // swallow - destructors must not throw
+ }
}
}
diff --git a/src/gui/kernel/qwidget_win.cpp b/src/gui/kernel/qwidget_win.cpp
index b11b661d8e..d5ce40bfef 100644
--- a/src/gui/kernel/qwidget_win.cpp
+++ b/src/gui/kernel/qwidget_win.cpp
@@ -558,7 +558,11 @@ void QWidget::destroy(bool destroyWindow, bool destroySubWindows)
}
#endif
- d->setWinId(0);
+ QT_TRY {
+ d->setWinId(0);
+ } QT_CATCH (const std::bad_alloc &) {
+ // swallow - destructors must not throw
+ }
}
}
diff --git a/src/gui/kernel/qwidget_x11.cpp b/src/gui/kernel/qwidget_x11.cpp
index 2a3d2f34e2..2bb3626b7b 100644
--- a/src/gui/kernel/qwidget_x11.cpp
+++ b/src/gui/kernel/qwidget_x11.cpp
@@ -1008,7 +1008,11 @@ void QWidget::destroy(bool destroyWindow, bool destroySubWindows)
if (destroyWindow)
qt_XDestroyWindow(this, X11->display, data->winid);
}
- d->setWinId(0);
+ QT_TRY {
+ d->setWinId(0);
+ } QT_CATCH (const std::bad_alloc &) {
+ // swallow - destructors must not throw
+ }
extern void qPRCleanup(QWidget *widget); // from qapplication_x11.cpp
if (testAttribute(Qt::WA_WState_Reparented))
diff --git a/src/gui/kernel/qwidgetaction.h b/src/gui/kernel/qwidgetaction.h
index 4ec489edc9..a39b28166f 100644
--- a/src/gui/kernel/qwidgetaction.h
+++ b/src/gui/kernel/qwidgetaction.h
@@ -57,7 +57,7 @@ class QWidgetActionPrivate;
class Q_GUI_EXPORT QWidgetAction : public QAction
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QWidgetAction)
+ Q_DECLARE_SCOPED_PRIVATE(QWidgetAction)
public:
explicit QWidgetAction(QObject *parent);
diff --git a/src/gui/kernel/qx11embed_x11.cpp b/src/gui/kernel/qx11embed_x11.cpp
index 359434e026..cce28c43bc 100644
--- a/src/gui/kernel/qx11embed_x11.cpp
+++ b/src/gui/kernel/qx11embed_x11.cpp
@@ -270,7 +270,7 @@ const int XButtonRelease = ButtonRelease;
// need to to inspect window()'s embedded state.
class QHackWidget : public QWidget
{
- Q_DECLARE_PRIVATE(QWidget)
+ Q_DECLARE_SCOPED_PRIVATE(QWidget)
public:
QTLWExtra* topData() { return d_func()->topData(); }
};
diff --git a/src/gui/kernel/qx11embed_x11.h b/src/gui/kernel/qx11embed_x11.h
index 8659ed648d..0d67c23764 100644
--- a/src/gui/kernel/qx11embed_x11.h
+++ b/src/gui/kernel/qx11embed_x11.h
@@ -80,7 +80,7 @@ protected:
void resizeEvent(QResizeEvent *);
private:
- Q_DECLARE_PRIVATE(QX11EmbedWidget)
+ Q_DECLARE_SCOPED_PRIVATE(QX11EmbedWidget)
Q_DISABLE_COPY(QX11EmbedWidget)
};
@@ -121,7 +121,7 @@ protected:
bool event(QEvent *);
private:
- Q_DECLARE_PRIVATE(QX11EmbedContainer)
+ Q_DECLARE_SCOPED_PRIVATE(QX11EmbedContainer)
Q_DISABLE_COPY(QX11EmbedContainer)
};
diff --git a/src/gui/painting/painting.pri b/src/gui/painting/painting.pri
index 4121be6753..2f5b2d6cd7 100644
--- a/src/gui/painting/painting.pri
+++ b/src/gui/painting/painting.pri
@@ -229,7 +229,7 @@ contains(QMAKE_MAC_XARCH, no) {
win32-g++|!win32:!*-icc* {
mmx {
- mmx_compiler.commands = $$QMAKE_CXX -c -Winline
+ mmx_compiler.commands = $$QMAKE_CXX -c -Winline
mac {
mmx_compiler.commands += -Xarch_i386 -mmmx
@@ -371,7 +371,7 @@ symbian {
"SOURCE qblendfunctions_armv6_rvct.s" \
"SOURCE qdrawhelper_armv6_rvct.s" \
"$${LITERAL_HASH}endif"
-
+
MMP_RULES += armccIfdefBlock
QMAKE_CXXFLAGS.ARMCC *= -O3
}
diff --git a/src/gui/painting/qblendfunctions_armv6_rvct.s b/src/gui/painting/qblendfunctions_armv6_rvct.s
index 312bd074c7..64d5aa5693 100644
--- a/src/gui/painting/qblendfunctions_armv6_rvct.s
+++ b/src/gui/painting/qblendfunctions_armv6_rvct.s
@@ -54,13 +54,13 @@
ARM
PRESERVE8
- INCLUDE qdrawhelper_armv6_rvct.inc
+ INCLUDE qdrawhelper_armv6_rvct.inc
;-----------------------------------------------------------------------------
; qt_blend_rgb32_on_rgb32_arm
-;
-; @brief
+;
+; @brief
;
; @param dest Destination pixels (r0)
; @param dbpl Destination bytes per line (r1)
@@ -69,25 +69,25 @@
; @param w Width (s0 -> r4)
; @param h Height (s1 -> r5)
; @param const_alpha Constant alpha (s2 -> r6)
-;
+;
;---------------------------------------------------------------------------
qt_blend_rgb32_on_rgb32_armv6 Function
stmfd sp!, {r4-r12, r14}
-
+
; read arguments off the stack
add r8, sp, #10 * 4
ldmia r8, {r9-r11}
-
+
; Reorganize registers
-
+
mov r4, r10
mov r5, r1
mov r6, r3
-
+
mov r1, r2
mov r2, r9
mov r3, r11
-
+
; Now we have registers
; @param dest Destination pixels (r0)
; @param src Source pixels (r1)
@@ -96,53 +96,53 @@ qt_blend_rgb32_on_rgb32_armv6 Function
; @param h Height (r4)
; @param dbpl Destination bytes per line (r5)
; @param sbpl Source bytes per line (r6)
-
+
cmp r3, #256 ; test if we have fully opaque constant alpha value
bne rgb32_blend_const_alpha ; branch if not
-
+
rgb32_blend_loop
subs r4, r4, #1
bmi rgb32_blend_exit ; while(h--)
-
-rgb321 PixCpySafe r0, r1, r2
+
+rgb321 PixCpySafe r0, r1, r2
add r0, r0, r5 ; dest = dest + dbpl
- add r1, r1, r6 ; src = src + sbpl
+ add r1, r1, r6 ; src = src + sbpl
+
+ b rgb32_blend_loop
+
- b rgb32_blend_loop
-
-
rgb32_blend_const_alpha
;ldr r14, =ComponentHalf ; load 0x800080 to r14
mov r14, #0x800000
add r14, r14, #0x80
-
+
sub r3, r3, #1 ; const_alpha -= 1;
rgb32_blend_loop_const_alpha
subs r4, r4, #1
bmi rgb32_blend_exit ; while(h--)
-
+
rgb322 BlendRowSafe PixelSourceOverConstAlpha
add r0, r0, r5 ; dest = dest + dbpl
- add r1, r1, r6 ; src = src + sbpl
+ add r1, r1, r6 ; src = src + sbpl
b rgb32_blend_loop_const_alpha
-
-rgb32_blend_exit
-
+
+rgb32_blend_exit
+
ldmfd sp!, {r4-r12, pc} ; pop and return
-
-
-
+
+
+
;-----------------------------------------------------------------------------
; qt_blend_argb32_on_argb32_arm
-;
-; @brief
+;
+; @brief
;
; @param dest Destination pixels (r0)
; @param dbpl Destination bytes per line (r1)
@@ -151,25 +151,25 @@ rgb32_blend_exit
; @param w Width (s0 -> r4)
; @param h Height (s1 -> r5)
; @param const_alpha Constant alpha (s2 -> r6)
-;
+;
;---------------------------------------------------------------------------
qt_blend_argb32_on_argb32_armv6 Function
stmfd sp!, {r4-r12, r14}
-
+
; read arguments off the stack
add r8, sp, #10 * 4
ldmia r8, {r9-r11}
-
+
; Reorganize registers
-
+
mov r4, r10
mov r5, r1
mov r6, r3
-
+
mov r1, r2
mov r2, r9
mov r3, r11
-
+
; Now we have registers
; @param dest Destination pixels (r0)
; @param src Source pixels (r1)
@@ -178,14 +178,14 @@ qt_blend_argb32_on_argb32_armv6 Function
; @param h Height (r4)
; @param dbpl Destination bytes per line (r5)
; @param sbpl Source bytes per line (r6)
-
+
;ldr r14, =ComponentHalf ; load 0x800080 to r14
mov r14, #0x800000
add r14, r14, #0x80
-
+
cmp r3, #256 ; test if we have fully opaque constant alpha value
bne argb32_blend_const_alpha ; branch if not
-
+
argb32_blend_loop
subs r4, r4, #1
@@ -194,10 +194,10 @@ argb32_blend_loop
argb321 BlendRowSafe PixelSourceOver
add r0, r0, r5 ; dest = dest + dbpl
- add r1, r1, r6 ; src = src + sbpl
+ add r1, r1, r6 ; src = src + sbpl
b argb32_blend_loop
-
+
argb32_blend_const_alpha
sub r3, r3, #1 ; const_alpha -= 1;
@@ -206,18 +206,17 @@ argb32_blend_loop_const_alpha
subs r4, r4, #1
bmi argb32_blend_exit ; while(h--)
-
+
argb322 BlendRowSafe PixelSourceOverConstAlpha
add r0, r0, r5 ; dest = dest + dbpl
- add r1, r1, r6 ; src = src + sbpl
+ add r1, r1, r6 ; src = src + sbpl
b argb32_blend_loop_const_alpha
-
-argb32_blend_exit
-
+
+argb32_blend_exit
+
ldmfd sp!, {r4-r12, pc} ; pop and return
-
-
+
+
END ; File end
-
diff --git a/src/gui/painting/qbrush.cpp b/src/gui/painting/qbrush.cpp
index 519e02e885..97cbecc51c 100644
--- a/src/gui/painting/qbrush.cpp
+++ b/src/gui/painting/qbrush.cpp
@@ -230,7 +230,7 @@ struct QGradientBrushData : public QBrushData
QGradient gradient;
};
-struct QBrushDataPointerHandler
+struct QBrushDataPointerDeleter
{
static inline void deleteData(QBrushData *d)
{
@@ -254,12 +254,6 @@ struct QBrushDataPointerHandler
deleteData(d);
}
}
-
- static inline void reset(QBrushData *&d, QBrushData *other)
- {
- cleanup(d);
- d = other;
- }
};
/*!
@@ -580,7 +574,7 @@ QBrush::~QBrush()
void QBrush::cleanUp(QBrushData *x)
{
- QBrushDataPointerHandler::deleteData(x);
+ QBrushDataPointerDeleter::deleteData(x);
}
diff --git a/src/gui/painting/qbrush.h b/src/gui/painting/qbrush.h
index fdb3a8a41e..a9fbc7518a 100644
--- a/src/gui/painting/qbrush.h
+++ b/src/gui/painting/qbrush.h
@@ -71,7 +71,7 @@ struct QBrushData;
class QPixmap;
class QGradient;
class QVariant;
-struct QBrushDataPointerHandler;
+struct QBrushDataPointerDeleter;
class Q_GUI_EXPORT QBrush
{
@@ -137,7 +137,7 @@ private:
friend bool Q_GUI_EXPORT qHasPixmapTexture(const QBrush& brush);
void detach(Qt::BrushStyle newStyle);
void init(const QColor &color, Qt::BrushStyle bs);
- QScopedCustomPointer<QBrushData, QBrushDataPointerHandler> d;
+ QCustomScopedPointer<QBrushData, QBrushDataPointerDeleter> d;
void cleanUp(QBrushData *x);
public:
diff --git a/src/gui/painting/qcolormap_s60.cpp b/src/gui/painting/qcolormap_s60.cpp
index 1b585982e4..29d340fe0c 100644
--- a/src/gui/painting/qcolormap_s60.cpp
+++ b/src/gui/painting/qcolormap_s60.cpp
@@ -105,4 +105,3 @@ QColormap &QColormap::operator=(const QColormap &colormap)
{ qAtomicAssign(d, colormap.d); return *this; }
QT_END_NAMESPACE
-
diff --git a/src/gui/painting/qdrawhelper_armv6_rvct.inc b/src/gui/painting/qdrawhelper_armv6_rvct.inc
index b3e0605ddc..1cb316a26e 100644
--- a/src/gui/painting/qdrawhelper_armv6_rvct.inc
+++ b/src/gui/painting/qdrawhelper_armv6_rvct.inc
@@ -52,10 +52,10 @@
;-----------------------------------------------------------------------------
; Globals.
-; Earch marcro expects that caller has loaded 0x800080 to r14.
+; Earch marcro expects that caller has loaded 0x800080 to r14.
;-----------------------------------------------------------------------------
-ComponentHalf EQU 0x800080
+ComponentHalf EQU 0x800080
;-----------------------------------------------------------------------------
; ARM assembly implementations of accelerated graphics operations.
@@ -65,7 +65,7 @@ ComponentHalf EQU 0x800080
; - r0 = Target buffer pointer
; - r1 = Source buffer pointer
; - r2 = Length of the buffer to blend
-; - r3 = Constant alpha for source buffer
+; - r3 = Constant alpha for source buffer
;
;-----------------------------------------------------------------------------
@@ -78,8 +78,8 @@ $func Function
CODE32
$func
MEND
-
-
+
+
;-----------------------------------------------------------------------------
; Armv6 boosted implementation of BYTE_MUL(...) function found in qdrawhelper_p.h.
;
@@ -98,29 +98,29 @@ $func
; uint r8 = (x & 0xff00ff) * a + 0x800080
uxtb16 r8, $x ; r8 = r8 & 0x00FF00FF
mla r8, r8, $a, r14
-
+
; x = ((r >> 8) & 0xff00ff) * a + 0x800080
uxtb16 $x, $x, ror #8
mla $x, $x, $a, r14
-
+
; r8 = (r8 + ((r8 >> 8) & 0xff00ff) ) >> 8
; r8 &= 0xff00ff
uxtab16 r8, r8, r8, ror #8
uxtb16 r8, r8, ror #8
-
+
; x = x + ((x >>8) & 0xff00ff)
uxtab16 $x, $x, $x, ror #8
-
+
; x &= 0xff00ff00
; x |= r8
uxtb16 $x, $x, ror #8
orr $dst, r8, $x, lsl #8
-
+
MEND
-
+
;-----------------------------------------------------------------------------
-; Armv6 boosted implementation of INTERPOLATE_PIXEL_255(...) function found in
+; Armv6 boosted implementation of INTERPOLATE_PIXEL_255(...) function found in
; qdrawhelper_p.h.
;
; @param dst Destination register where to store the result
@@ -129,7 +129,7 @@ $func
; @param y Second value to multiply
; @param b Multiplicator byte for second value
; @param r14 Component half 0x800080
-;
+;
;
; @note Trashes x, r8, r14
;-----------------------------------------------------------------------------
@@ -143,40 +143,40 @@ $func
; uint r8 = (((x & 0xff00ff) * a) + 0x800080)
uxtb16 r8, $x ; r8 = r8 & 0x00FF00FF
mla r8, r8, $a, r14
-
+
; x = ((((x >> 8) & 0xff00ff) * a) + 0x800080)
uxtb16 $x, $x, ror #8
mla $x, $x, $a, r14
-
+
; Now we are trashing r14 to free it for other purposes
-
+
; uint r14 = (y & 0xff00ff) * b
uxtb16 r14, $y ; r14 = y & 0x00FF00FF
mul r14, r14, $b
-
+
; r8 = r8 + r14
add r8, r8, r14
-
+
; r8 = (r8 + ((r8 >> 8) & 0xff00ff) ) >> 8
; r8 &= 0xff00ff
uxtab16 r8, r8, r8, ror #8
uxtb16 r8, r8, ror #8
-
+
; r14 = ((y >> 8) & 0xff00ff) * b
uxtb16 r14, $y, ror #8 ; r14 = ((y >> 8) & 0xFF00FF)
mul r14, r14, $b
-
+
; x = x + r14
add $x, $x, r14
-
+
; x = x + ((x >>8) & 0xff00ff)
uxtab16 $x, $x, $x, ror #8
-
+
; x &= 0xff00ff00
; x |= r8
uxtb16 $x, $x, ror #8
orr $dst, r8, $x, lsl #8
-
+
MEND
;-----------------------------------------------------------------------------
@@ -184,19 +184,19 @@ $func
;-----------------------------------------------------------------------------
MACRO
$label Blend4Pixels $BlendPixel
-
- ; Blend first 4 pixels
-
+
+ ; Blend first 4 pixels
+
ldmia r1!, {r4-r7}
ldm r0, {r9-r12}
-
+
b4p1_$label $BlendPixel r9, r4, r3
b4p2_$label $BlendPixel r10, r5, r3
b4p3_$label $BlendPixel r11, r6, r3
b4p4_$label $BlendPixel r12, r7, r3
-
+
stmia r0!, {r9-r12}
-
+
MEND
;-----------------------------------------------------------------------------
@@ -204,43 +204,43 @@ b4p4_$label $BlendPixel r12, r7, r3
;-----------------------------------------------------------------------------
MACRO
$label Blend8Pixels $BlendPixel
-
+
b8p1_$label Blend4Pixels $BlendPixel
-b8p2_$label Blend4Pixels $BlendPixel
-
+b8p2_$label Blend4Pixels $BlendPixel
+
MEND
-
+
;-----------------------------------------------------------------------------
;
;-----------------------------------------------------------------------------
MACRO
$label Blend16Pixels $BlendPixel
-
+
b16p1_$label Blend8Pixels $BlendPixel
-b16p2_$label Blend8Pixels $BlendPixel
-
+b16p2_$label Blend8Pixels $BlendPixel
+
MEND
-
+
;-----------------------------------------------------------------------------
;
;-----------------------------------------------------------------------------
MACRO
$label Blend32Pixels $BlendPixel
-
+
b32p1_$label Blend16Pixels $BlendPixel
-b32p2_$label Blend16Pixels $BlendPixel
-
+b32p2_$label Blend16Pixels $BlendPixel
+
MEND
;-----------------------------------------------------------------------------
-; A macro for source over compositing one row of pixels and saving the results
+; A macro for source over compositing one row of pixels and saving the results
; to destination buffer.
;
; @param dest Destination buffer (r0)
; @param src Source buffer (r1)
; @param length Length (r2)
; @param const_alpha Constant alpha (r3)
-; @param r14 Component Half (0x800080) (r14)
+; @param r14 Component Half (0x800080) (r14)
;
; @note Advances r0, r1
; @note Trashes r2, r4-r12
@@ -260,73 +260,73 @@ brp1_$label Blend32Pixels $BlendPixel
b bloop_$label
b_remaining_$label
-
+
; Remaining 31 pixels
-
+
addmi r2, r2, #32
; Blend 16 pixels
tst r2, #16
beq b_remaining8_$label
-
+
brp2_$label Blend16Pixels $BlendPixel
-
-b_remaining8_$label
-
+
+b_remaining8_$label
+
; Blend 8 pixels
tst r2, #8
beq b_remaining4_$label
-
-brp3_$label Blend8Pixels $BlendPixel
-
-b_remaining4_$label
-
+
+brp3_$label Blend8Pixels $BlendPixel
+
+b_remaining4_$label
+
; Blend 4 pixels
tst r2, #4
beq b_remaining3_$label
-
-brp4_$label Blend4Pixels $BlendPixel
+
+brp4_$label Blend4Pixels $BlendPixel
b_remaining3_$label
; Remaining 3 pixels
-
+
tst r2, #2
beq b_last_$label
-
+
ldmia r1!, {r4-r5}
ldm r0, {r9-r10}
-
+
brp5_$label $BlendPixel r9, r4, r3
brp6_$label $BlendPixel r10, r5, r3
-
+
stmia r0!, {r9-r10}
b_last_$label
-
+
tst r2, #1
beq bexit_$label
-
+
ldr r4, [r1]
ldr r9, [r0]
bpl_$label $BlendPixel r9, r4, r3
-
+
str r9, [r0]
bexit_$label
MEND
-
+
;-----------------------------------------------------------------------------
-; A macro for source over compositing one row of pixels and saving the results
+; A macro for source over compositing one row of pixels and saving the results
; to destination buffer. Restores all registers.
;
; @param dest Destination buffer (r0)
; @param src Source buffer (r1)
; @param length Length (r2)
; @param const_alpha Constant alpha (r3)
-; @param r14 Component Half (0x800080) (r14)
+; @param r14 Component Half (0x800080) (r14)
;
; @note Advances r0, r1
; @note Trashes r2, r4-r12
@@ -336,16 +336,16 @@ $label BlendRowSafe $BlendPixel
stmfd sp!, {r0-r6} ; Preserves registers only up to r6
-brs_$label BlendRow $BlendPixel
+brs_$label BlendRow $BlendPixel
ldmfd sp!, {r0-r6}
- MEND
-
+ MEND
+
;-----------------------------------------------------------------------------
-; Pix Copy.
-; NOTE! Cache line size of ARM1136JF-S and ARM1136J-S is 32 bytes (8 pixels).
+; Pix Copy.
+; NOTE! Cache line size of ARM1136JF-S and ARM1136J-S is 32 bytes (8 pixels).
;
; @param dst Destination pixels (r0)
; @param src Source pixels (r1)
@@ -369,7 +369,7 @@ pcpy_loop_$label
pcpy_remaining_$label
; Copy up to 7 remaining pixels
-
+
; Copy 4 pixels
tst $len, #4
ldmneia $src!, {r3-r6}
@@ -384,9 +384,9 @@ pcpy_remaining_$label
strne r3, [$dst]
MEND
-
+
;-----------------------------------------------------------------------------
-; General Pix Copy. Maximum 8 pixels at time. Restores all registers.
+; General Pix Copy. Maximum 8 pixels at time. Restores all registers.
;
; @param dst Destination pixels (r0)
; @param src Source pixels (r1)
@@ -402,10 +402,10 @@ $label PixCpySafe $dst, $src, $len
pcs_$label PixCpy $dst, $src, $len
ldmfd sp!, {r0-r6} ; pop
-
+
MEND
-
-
+
+
;-----------------------------------------------------------------------------
; A macro for source over compositing one pixel and saving the result to
; dst register.
@@ -422,7 +422,7 @@ $label PixelSourceOver $dst, $src, $const_alpha
; Negate src and extract alpha
mvn $const_alpha, $src ; bitwise not
- uxtb $const_alpha, $const_alpha, ror #24 ; r3 = ((r3 & 0xFF000000) >> 24);
+ uxtb $const_alpha, $const_alpha, ror #24 ; r3 = ((r3 & 0xFF000000) >> 24);
;cmp $const_alpha, #255 ; test for full transparency ( negated )
;beq exit_$label
@@ -430,12 +430,12 @@ $label PixelSourceOver $dst, $src, $const_alpha
moveq $dst, $src
beq exit_$label
- ByteMul $dst, $dst, $const_alpha
+ ByteMul $dst, $dst, $const_alpha
add $dst, $src, $dst
-
+
exit_$label
MEND
-
+
;-----------------------------------------------------------------------------
; A macro for source over compositing one pixel and saving the result to
; dst register.
@@ -457,7 +457,7 @@ $label PixelSourceOverConstAlpha $dst, $src, $const_alpha
; Negate src and extract alpha
mvn $const_alpha, $src ; bitwise not
- uxtb $const_alpha, $const_alpha, ror #24 ; r3 = ((r3 & 0xFF000000) >> 24);
+ uxtb $const_alpha, $const_alpha, ror #24 ; r3 = ((r3 & 0xFF000000) >> 24);
ByteMul $dst, $dst, $const_alpha
@@ -466,8 +466,8 @@ $label PixelSourceOverConstAlpha $dst, $src, $const_alpha
; recover alpha
ldmfd sp!, {$const_alpha}
- MEND
-
+ MEND
+
;-----------------------------------------------------------------------------
; A macro for source over compositing one pixel and saving the result to
; a register.
@@ -491,6 +491,6 @@ $label PixelSourceConstAlpha $dst, $src, $const_alpha
; recover r2 and r14
ldmfd sp!, {r2, r14}
- MEND
-
+ MEND
+
END ; File end
diff --git a/src/gui/painting/qdrawhelper_armv6_rvct.s b/src/gui/painting/qdrawhelper_armv6_rvct.s
index 3ffe48b3e3..dd29f808e3 100644
--- a/src/gui/painting/qdrawhelper_armv6_rvct.s
+++ b/src/gui/painting/qdrawhelper_armv6_rvct.s
@@ -52,22 +52,22 @@
ARM
PRESERVE8
-
+
INCLUDE qdrawhelper_armv6_rvct.inc
-
+
;-----------------------------------------------------------------------------
; qt_memfill32_armv6
-;
+;
; @brief Not yet in use!
;
; @param dest Destination buffer (r0)
; @param value Value (r1)
; @param count Count (r2)
-;
+;
;---------------------------------------------------------------------------
qt_memfill32_armv6 Function
stmfd sp!, {r4-r12, r14}
-
+
mov r3, r1
mov r4, r1
mov r5, r1
@@ -75,7 +75,7 @@ qt_memfill32_armv6 Function
mov r7, r1
mov r8, r1
mov r9, r1
-
+
mfill_loop
; Fill 32 pixels per loop iteration
subs r2, r2, #32
@@ -88,16 +88,16 @@ mfill_loop
mfill_remaining
; Fill up to 31 remaining pixels
-
+
; Fill 16 pixels
tst r2, #16
stmneia r0!, {r1, r3, r4, r5, r6, r7, r8, r9}
stmneia r0!, {r1, r3, r4, r5, r6, r7, r8, r9}
-
+
; Fill 8 pixels
tst r2, #8
stmneia r0!, {r1, r3, r4, r5, r6, r7, r8, r9}
-
+
; Fill 4 pixels
tst r2, #4
stmneia r0!, {r1, r3, r4, r5}
@@ -109,31 +109,31 @@ mfill_remaining
; Fill last one
tst r2, #1
strne r1, [r0]
-
+
ldmfd sp!, {r4-r12, pc} ; pop and return
-
+
;-----------------------------------------------------------------------------
; comp_func_Source_arm
-;
-; @brief
+;
+; @brief
;
; @param dest Destination buffer (r0)
; @param src Source buffer (r1)
; @param length Length (r2)
; @param const_alpha Constant alpha (r3)
-;
+;
;---------------------------------------------------------------------------
comp_func_Source_armv6 Function
stmfd sp!, {r4-r12, r14}
-
+
cmp r3, #255 ; if(r3 == 255)
bne src2 ; branch if not
-
+
src1 PixCpy r0, r1, r2
ldmfd sp!, {r4-r12, pc} ; pop and return
-src2
+src2
;ldr r14, =ComponentHalf ; load 0x800080 to r14
mov r14, #0x800000
add r14, r14, #0x80
@@ -144,35 +144,34 @@ src22 BlendRow PixelSourceConstAlpha
;-----------------------------------------------------------------------------
; comp_func_SourceOver_arm
-;
-; @brief
+;
+; @brief
;
; @param dest Destination buffer (r0)
; @param src Source buffer (r1)
; @param length Length (r2)
; @param const_alpha Constant alpha (r3)
-;
+;
;---------------------------------------------------------------------------
comp_func_SourceOver_armv6 Function
stmfd sp!, {r4-r12, r14}
-
+
;ldr r14, =ComponentHalf ; load 0x800080 to r14
mov r14, #0x800000
add r14, r14, #0x80
-
+
cmp r3, #255 ; if(r3 == 255)
bne srcovr2 ; branch if not
-
+
srcovr1 BlendRow PixelSourceOver
-
+
ldmfd sp!, {r4-r12, pc} ; pop and return
srcovr2
-
+
srcovr22 BlendRow PixelSourceOverConstAlpha
ldmfd sp!, {r4-r12, pc} ; pop and return
-
- END ; File end
-
+
+ END ; File end
diff --git a/src/gui/painting/qgrayraster.c b/src/gui/painting/qgrayraster.c
index 6ab7055a68..7a7adcf1da 100644
--- a/src/gui/painting/qgrayraster.c
+++ b/src/gui/painting/qgrayraster.c
@@ -1882,6 +1882,10 @@
if (memory)
fprintf(stderr, "gray_raster_new(), memory ignored");
memory = malloc(sizeof(TRaster));
+ if (!memory) {
+ *araster = 0;
+ return ErrRaster_Memory_Overflow;
+ }
QT_FT_MEM_ZERO(memory, sizeof(TRaster));
*araster = (QT_FT_Raster) memory;
diff --git a/src/gui/painting/qpaintengine.h b/src/gui/painting/qpaintengine.h
index 92aa506c7f..6460afa657 100644
--- a/src/gui/painting/qpaintengine.h
+++ b/src/gui/painting/qpaintengine.h
@@ -89,7 +89,7 @@ Q_DECLARE_TYPEINFO(QTextItem, Q_PRIMITIVE_TYPE);
class Q_GUI_EXPORT QPaintEngine
{
- Q_DECLARE_PRIVATE(QPaintEngine)
+ Q_DECLARE_SCOPED_PRIVATE(QPaintEngine)
public:
enum PaintEngineFeature {
PrimitiveTransform = 0x00000001, // Can transform primitives brushes
diff --git a/src/gui/painting/qpaintengine_alpha_p.h b/src/gui/painting/qpaintengine_alpha_p.h
index 7f45ad6a7d..1a0b1ac605 100644
--- a/src/gui/painting/qpaintengine_alpha_p.h
+++ b/src/gui/painting/qpaintengine_alpha_p.h
@@ -62,7 +62,7 @@ class QAlphaPaintEnginePrivate;
class QAlphaPaintEngine : public QPaintEngine
{
- Q_DECLARE_PRIVATE(QAlphaPaintEngine)
+ Q_DECLARE_SCOPED_PRIVATE(QAlphaPaintEngine)
public:
~QAlphaPaintEngine();
diff --git a/src/gui/painting/qpaintengine_mac_p.h b/src/gui/painting/qpaintengine_mac_p.h
index 20a4a08cf7..42a55c42c2 100644
--- a/src/gui/painting/qpaintengine_mac_p.h
+++ b/src/gui/painting/qpaintengine_mac_p.h
@@ -69,7 +69,7 @@ extern int qt_defaultDpiY();
class QCoreGraphicsPaintEnginePrivate;
class QCoreGraphicsPaintEngine : public QPaintEngine
{
- Q_DECLARE_PRIVATE(QCoreGraphicsPaintEngine)
+ Q_DECLARE_SCOPED_PRIVATE(QCoreGraphicsPaintEngine)
public:
QCoreGraphicsPaintEngine();
diff --git a/src/gui/painting/qpaintengine_preview_p.h b/src/gui/painting/qpaintengine_preview_p.h
index 9f96d4016e..d8e2b08985 100644
--- a/src/gui/painting/qpaintengine_preview_p.h
+++ b/src/gui/painting/qpaintengine_preview_p.h
@@ -65,7 +65,7 @@ class QPreviewPaintEnginePrivate;
class QPreviewPaintEngine : public QPaintEngine, public QPrintEngine
{
- Q_DECLARE_PRIVATE(QPreviewPaintEngine)
+ Q_DECLARE_SCOPED_PRIVATE(QPreviewPaintEngine)
public:
QPreviewPaintEngine();
~QPreviewPaintEngine();
diff --git a/src/gui/painting/qpaintengine_raster.cpp b/src/gui/painting/qpaintengine_raster.cpp
index d9af3f61d5..4aaa799c94 100644
--- a/src/gui/painting/qpaintengine_raster.cpp
+++ b/src/gui/painting/qpaintengine_raster.cpp
@@ -347,30 +347,33 @@ void QRasterPaintEngine::init()
Q_CHECK_PTR(d->rasterPoolBase);
// The antialiasing raster.
- d->grayRaster = new QT_FT_Raster;
- qt_ft_grays_raster.raster_new(0, d->grayRaster);
- qt_ft_grays_raster.raster_reset(*d->grayRaster, d->rasterPoolBase, d->rasterPoolSize);
+ d->grayRaster.reset(new QT_FT_Raster);
+ Q_CHECK_PTR(d->grayRaster.data());
+ if (qt_ft_grays_raster.raster_new(0, d->grayRaster.data()))
+ QT_THROW(std::bad_alloc()); // an error creating the raster is caused by a bad malloc
- d->rasterizer = new QRasterizer;
- d->rasterBuffer = new QRasterBuffer();
- d->outlineMapper = new QOutlineMapper;
+
+ qt_ft_grays_raster.raster_reset(*d->grayRaster.data(), d->rasterPoolBase, d->rasterPoolSize);
+
+ d->rasterizer.reset(new QRasterizer);
+ d->rasterBuffer.reset(new QRasterBuffer());
+ d->outlineMapper.reset(new QOutlineMapper);
d->outlinemapper_xform_dirty = true;
d->basicStroker.setMoveToHook(qt_ft_outline_move_to);
d->basicStroker.setLineToHook(qt_ft_outline_line_to);
d->basicStroker.setCubicToHook(qt_ft_outline_cubic_to);
- d->dashStroker = 0;
- d->baseClip = new QClipData(d->device->height());
+ d->baseClip.reset(new QClipData(d->device->height()));
d->baseClip->setClipRect(QRect(0, 0, d->device->width(), d->device->height()));
- d->image_filler.init(d->rasterBuffer, this);
+ d->image_filler.init(d->rasterBuffer.data(), this);
d->image_filler.type = QSpanData::Texture;
- d->image_filler_xform.init(d->rasterBuffer, this);
+ d->image_filler_xform.init(d->rasterBuffer.data(), this);
d->image_filler_xform.type = QSpanData::Texture;
- d->solid_color_filler.init(d->rasterBuffer, this);
+ d->solid_color_filler.init(d->rasterBuffer.data(), this);
d->solid_color_filler.type = QSpanData::Solid;
d->deviceDepth = d->device->depth();
@@ -439,15 +442,7 @@ QRasterPaintEngine::~QRasterPaintEngine()
free(d->rasterPoolBase);
#endif
- qt_ft_grays_raster.raster_done(*d->grayRaster);
- delete d->grayRaster;
-
- delete d->rasterBuffer;
- delete d->outlineMapper;
- delete d->rasterizer;
- delete d->dashStroker;
-
- delete d->baseClip;
+ qt_ft_grays_raster.raster_done(*d->grayRaster.data());
}
/*!
@@ -483,12 +478,12 @@ bool QRasterPaintEngine::begin(QPaintDevice *device)
d->rasterizer->setClipRect(d->deviceRect);
- s->penData.init(d->rasterBuffer, this);
+ s->penData.init(d->rasterBuffer.data(), this);
s->penData.setup(s->pen.brush(), s->intOpacity, s->composition_mode);
s->stroker = &d->basicStroker;
d->basicStroker.setClipRect(d->deviceRect);
- s->brushData.init(d->rasterBuffer, this);
+ s->brushData.init(d->rasterBuffer.data(), this);
s->brushData.setup(s->brush, s->intOpacity, s->composition_mode);
d->rasterBuffer->compositionMode = QPainter::CompositionMode_SourceOver;
@@ -552,8 +547,7 @@ bool QRasterPaintEngine::end()
void QRasterPaintEngine::releaseBuffer()
{
Q_D(QRasterPaintEngine);
- delete d->rasterBuffer;
- d->rasterBuffer = new QRasterBuffer;
+ d->rasterBuffer.reset(new QRasterBuffer);
}
/*!
@@ -797,8 +791,8 @@ void QRasterPaintEngine::updatePen(const QPen &pen)
if(pen_style == Qt::SolidLine) {
s->stroker = &d->basicStroker;
} else if (pen_style != Qt::NoPen) {
- if (!d->dashStroker)
- d->dashStroker = new QDashStroker(&d->basicStroker);
+ if (!d->dashStroker.data())
+ d->dashStroker.reset(new QDashStroker(&d->basicStroker));
if (pen.isCosmetic()) {
d->dashStroker->setClipRect(d->deviceRect);
} else {
@@ -808,7 +802,7 @@ void QRasterPaintEngine::updatePen(const QPen &pen)
}
d->dashStroker->setDashPattern(pen.dashPattern());
d->dashStroker->setDashOffset(pen.dashOffset());
- s->stroker = d->dashStroker;
+ s->stroker = d->dashStroker.data();
} else {
s->stroker = 0;
}
@@ -1244,7 +1238,7 @@ void QRasterPaintEngine::clip(const QVectorPath &path, Qt::ClipOperation op)
qrasterpaintengine_state_setNoClip(s);
} else {
- QClipData *base = d->baseClip;
+ QClipData *base = d->baseClip.data();
// Intersect with current clip when available...
if (op == Qt::IntersectClip && s->clip)
@@ -1369,7 +1363,7 @@ void QRasterPaintEngine::clip(const QRegion &region, Qt::ClipOperation op)
QRasterPaintEngineState *s = state();
const QClipData *clip = d->clip();
- const QClipData *baseClip = d->baseClip;
+ const QClipData *baseClip = d->baseClip.data();
if (op == Qt::NoClip) {
qrasterpaintengine_state_setNoClip(s);
@@ -1437,7 +1431,7 @@ void QRasterPaintEngine::fillPath(const QPainterPath &path, QSpanData *fillData)
}
ensureOutlineMapper();
- d->rasterize(d->outlineMapper->convertPath(path), blend, fillData, d->rasterBuffer);
+ d->rasterize(d->outlineMapper->convertPath(path), blend, fillData, d->rasterBuffer.data());
}
static void fillRect_normalized(const QRect &r, QSpanData *data,
@@ -1867,7 +1861,7 @@ void QRasterPaintEngine::fill(const QVectorPath &path, const QBrush &brush)
// }
ensureOutlineMapper();
- d->rasterize(d->outlineMapper->convertPath(path), blend, &s->brushData, d->rasterBuffer);
+ d->rasterize(d->outlineMapper->convertPath(path), blend, &s->brushData, d->rasterBuffer.data());
}
void QRasterPaintEngine::fillRect(const QRectF &r, QSpanData *data)
@@ -2034,7 +2028,7 @@ void QRasterPaintEngine::fillPolygon(const QPointF *points, int pointCount, Poly
// scanconvert.
ProcessSpans brushBlend = d->getBrushFunc(d->outlineMapper->controlPointRect,
&s->brushData);
- d->rasterize(outline, brushBlend, &s->brushData, d->rasterBuffer);
+ d->rasterize(outline, brushBlend, &s->brushData, d->rasterBuffer.data());
}
/*!
@@ -2130,7 +2124,7 @@ void QRasterPaintEngine::drawPolygon(const QPoint *points, int pointCount, Polyg
// scanconvert.
ProcessSpans brushBlend = d->getBrushFunc(d->outlineMapper->controlPointRect,
&s->brushData);
- d->rasterize(d->outlineMapper->outline(), brushBlend, &s->brushData, d->rasterBuffer);
+ d->rasterize(d->outlineMapper->outline(), brushBlend, &s->brushData, d->rasterBuffer.data());
d->outlineMapper->setCoordinateRounding(false);
}
}
@@ -2755,7 +2749,7 @@ void QRasterPaintEngine::alphaPenBlt(const void* src, int bpl, int depth, int rx
if (!s->penData.blend)
return;
- QRasterBuffer *rb = d->rasterBuffer;
+ QRasterBuffer *rb = d->rasterBuffer.data();
const QRect rect(rx, ry, w, h);
const QClipData *clip = d->clip();
@@ -4017,7 +4011,7 @@ void QRasterPaintEnginePrivate::rasterize(QT_FT_Outline *outline,
rasterParams.flags |= (QT_FT_RASTER_FLAG_AA | QT_FT_RASTER_FLAG_DIRECT);
rasterParams.gray_spans = callback;
- error = qt_ft_grays_raster.raster_render(*grayRaster, &rasterParams);
+ error = qt_ft_grays_raster.raster_render(*grayRaster.data(), &rasterParams);
// Out of memory, reallocate some more and try again...
if (error == -6) { // -6 is Result_err_OutOfMemory
@@ -4044,9 +4038,9 @@ void QRasterPaintEnginePrivate::rasterize(QT_FT_Outline *outline,
#endif
Q_CHECK_PTR(rasterPoolBase); // note: we just freed the old rasterPoolBase. I hope it's not fatal.
- qt_ft_grays_raster.raster_done(*grayRaster);
- qt_ft_grays_raster.raster_new(0, grayRaster);
- qt_ft_grays_raster.raster_reset(*grayRaster, rasterPoolBase, rasterPoolSize);
+ qt_ft_grays_raster.raster_done(*grayRaster.data());
+ qt_ft_grays_raster.raster_new(0, grayRaster.data());
+ qt_ft_grays_raster.raster_reset(*grayRaster.data(), rasterPoolBase, rasterPoolSize);
} else {
done = true;
}
@@ -4080,6 +4074,8 @@ QImage QRasterBuffer::colorizeBitmap(const QImage &image, const QColor &color)
for (int y=0; y<height; ++y) {
uchar *source = sourceImage.scanLine(y);
QRgb *target = reinterpret_cast<QRgb *>(dest.scanLine(y));
+ if (!source || !target)
+ QT_THROW(std::bad_alloc()); // we must have run out of memory
for (int x=0; x < width; ++x)
target[x] = (source[x>>3] >> (x&7)) & 1 ? fg : bg;
}
@@ -4283,7 +4279,7 @@ void QClipData::initialize()
Q_CHECK_PTR(m_clipLines);
QT_TRY {
m_spans = (QSpan *)malloc(clipSpanHeight*sizeof(QSpan));
- allocated = clipSpanHeight;
+ allocated = clipSpanHeight;
Q_CHECK_PTR(m_spans);
QT_TRY {
@@ -4323,9 +4319,7 @@ void QClipData::initialize()
{ // resize
const int maxSpans = (ymax - ymin) * numRects;
if (maxSpans > allocated) {
- QSpan *newSpans = (QSpan *)realloc(m_spans, maxSpans * sizeof(QSpan));
- Q_CHECK_PTR(newSpans);
- m_spans = newSpans;
+ m_spans = q_check_ptr((QSpan *)realloc(m_spans, maxSpans * sizeof(QSpan)));
allocated = maxSpans;
}
}
@@ -4377,11 +4371,13 @@ void QClipData::initialize()
}
} QT_CATCH(...) {
- free(m_spans);
+ free(m_spans); // have to free m_spans again or someone might think that we were successfully initialized.
+ m_spans = 0;
QT_RETHROW;
}
} QT_CATCH(...) {
- free(m_clipLines);
+ free(m_clipLines); // same for clipLines
+ m_clipLines = 0;
QT_RETHROW;
}
}
@@ -4657,9 +4653,7 @@ static void qt_span_clip(int count, const QSpan *spans, void *userData)
&newspans, newClip->allocated - newClip->count);
newClip->count = newspans - newClip->m_spans;
if (spans < end) {
- QSpan *newSpan = (QSpan *)realloc(newClip->m_spans, newClip->allocated*2*sizeof(QSpan));
- Q_CHECK_PTR(newSpan);
- newClip->m_spans = newSpan;
+ newClip->m_spans = q_check_ptr((QSpan *)realloc(newClip->m_spans, newClip->allocated*2*sizeof(QSpan)));
newClip->allocated *= 2;
}
}
diff --git a/src/gui/painting/qpaintengine_raster_p.h b/src/gui/painting/qpaintengine_raster_p.h
index 3dab49139a..43f7675669 100644
--- a/src/gui/painting/qpaintengine_raster_p.h
+++ b/src/gui/painting/qpaintengine_raster_p.h
@@ -134,7 +134,7 @@ Q_GUI_EXPORT
#endif
QRasterPaintEngine : public QPaintEngineEx
{
- Q_DECLARE_PRIVATE(QRasterPaintEngine)
+ Q_DECLARE_SCOPED_PRIVATE(QRasterPaintEngine)
public:
QRasterPaintEngine(QPaintDevice *device);
@@ -331,8 +331,8 @@ public:
void recalculateFastImages();
QPaintDevice *device;
- QOutlineMapper *outlineMapper;
- QRasterBuffer *rasterBuffer;
+ QScopedPointer<QOutlineMapper> outlineMapper;
+ QScopedPointer<QRasterBuffer> rasterBuffer;
#if defined (Q_WS_WIN)
HDC hdc;
@@ -343,9 +343,9 @@ public:
QRect deviceRect;
QStroker basicStroker;
- QDashStroker *dashStroker;
+ QScopedPointer<QDashStroker> dashStroker;
- QT_FT_Raster *grayRaster;
+ QScopedPointer<QT_FT_Raster> grayRaster;
unsigned long rasterPoolSize;
unsigned char *rasterPoolBase;
@@ -357,7 +357,7 @@ public:
QFontEngineGlyphCache::Type glyphCacheType;
- QClipData *baseClip;
+ QScopedPointer<QClipData> baseClip;
int deviceDepth;
@@ -368,7 +368,7 @@ public:
uint isPlain45DegreeRotation : 1;
#endif
- QRasterizer *rasterizer;
+ QScopedPointer<QRasterizer> rasterizer;
};
@@ -539,7 +539,7 @@ inline const QClipData *QRasterPaintEnginePrivate::clip() const {
Q_Q(const QRasterPaintEngine);
if (q->state() && q->state()->clip && q->state()->clip->enabled)
return q->state()->clip;
- return baseClip;
+ return baseClip.data();
}
diff --git a/src/gui/painting/qpaintengine_x11.cpp b/src/gui/painting/qpaintengine_x11.cpp
index e3248ea73c..6ab39da4ca 100644
--- a/src/gui/painting/qpaintengine_x11.cpp
+++ b/src/gui/painting/qpaintengine_x11.cpp
@@ -271,7 +271,7 @@ void QXRenderTessellator::addTrap(const Trapezoid &trap)
{
if (size == allocated) {
allocated = qMax(2*allocated, 64);
- traps = (XTrapezoid *)realloc(traps, allocated * sizeof(XTrapezoid));
+ traps = q_check_ptr((XTrapezoid *)realloc(traps, allocated * sizeof(XTrapezoid)));
}
traps[size].top = Q27Dot5ToXFixed(trap.top);
traps[size].bottom = Q27Dot5ToXFixed(trap.bottom);
diff --git a/src/gui/painting/qpaintengine_x11_p.h b/src/gui/painting/qpaintengine_x11_p.h
index 738a155066..2a7894d5c5 100644
--- a/src/gui/painting/qpaintengine_x11_p.h
+++ b/src/gui/painting/qpaintengine_x11_p.h
@@ -76,7 +76,7 @@ struct qt_float_point
class QX11PaintEngine : public QPaintEngine
{
- Q_DECLARE_PRIVATE(QX11PaintEngine)
+ Q_DECLARE_SCOPED_PRIVATE(QX11PaintEngine)
public:
QX11PaintEngine();
~QX11PaintEngine();
diff --git a/src/gui/painting/qpaintengineex_p.h b/src/gui/painting/qpaintengineex_p.h
index 22354bcda5..aea79e85a4 100644
--- a/src/gui/painting/qpaintengineex_p.h
+++ b/src/gui/painting/qpaintengineex_p.h
@@ -143,7 +143,7 @@ class QPixmapFilter;
class Q_GUI_EXPORT QPaintEngineEx : public QPaintEngine
{
- Q_DECLARE_PRIVATE(QPaintEngineEx)
+ Q_DECLARE_SCOPED_PRIVATE(QPaintEngineEx)
public:
QPaintEngineEx();
diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp
index 76e2fcc794..e4c6f574c8 100644
--- a/src/gui/painting/qpainter.cpp
+++ b/src/gui/painting/qpainter.cpp
@@ -80,21 +80,6 @@ QT_BEGIN_NAMESPACE
bool qt_show_painter_debug_output = true;
#endif
-class QPainterPrivateCleaner
-{
-public:
- static inline void cleanup(QPainterPrivate *d)
- {
- delete d;
- }
-
- static inline void reset(QPainterPrivate *&d, QPainterPrivate *other)
- {
- delete d;
- d = other;
- }
-};
-
extern QPixmap qt_pixmapForBrush(int style, bool invert);
void qt_format_text(const QFont &font,
@@ -276,9 +261,7 @@ bool QPainterPrivate::attachPainterPrivate(QPainter *q, QPaintDevice *pdev)
// However, to support corner cases we grow the array dynamically if needed.
sp->d_ptr->d_ptrs_size <<= 1;
const int newSize = sp->d_ptr->d_ptrs_size * sizeof(QPainterPrivate *);
- QPainterPrivate ** newPointers = (QPainterPrivate **)realloc(sp->d_ptr->d_ptrs, newSize);
- Q_CHECK_PTR(newPointers);
- sp->d_ptr->d_ptrs = newPointers;
+ sp->d_ptr->d_ptrs = q_check_ptr((QPainterPrivate **)realloc(sp->d_ptr->d_ptrs, newSize));
}
sp->d_ptr->d_ptrs[++sp->d_ptr->refcount - 2] = q->d_ptr.data();
q->d_ptr.data_ptr() = sp->d_ptr.data();
diff --git a/src/gui/painting/qpainter.h b/src/gui/painting/qpainter.h
index c81f5d472e..227c6f5506 100644
--- a/src/gui/painting/qpainter.h
+++ b/src/gui/painting/qpainter.h
@@ -79,11 +79,11 @@ class QTextItem;
class QMatrix;
class QTransform;
-class QPainterPrivateCleaner;
+class QPainterPrivateDeleter;
class Q_GUI_EXPORT QPainter
{
- Q_DECLARE_PRIVATE(QPainter)
+ Q_DECLARE_SCOPED_PRIVATE(QPainter)
Q_GADGET
Q_FLAGS(RenderHint RenderHints)
@@ -500,7 +500,7 @@ private:
Q_DISABLE_COPY(QPainter)
friend class Q3Painter;
- QScopedCustomPointer<QPainterPrivate, QPainterPrivateCleaner> d_ptr;
+ QCustomScopedPointer<QPainterPrivate> d_ptr;
friend class QFontEngine;
friend class QFontEngineBox;
diff --git a/src/gui/painting/qpainterpath.cpp b/src/gui/painting/qpainterpath.cpp
index f9fd61e5b2..20d798556d 100644
--- a/src/gui/painting/qpainterpath.cpp
+++ b/src/gui/painting/qpainterpath.cpp
@@ -73,7 +73,7 @@
QT_BEGIN_NAMESPACE
-struct QPainterPathPrivateHandler
+struct QPainterPathPrivateDeleter
{
static inline void cleanup(QPainterPathPrivate *d)
{
@@ -82,13 +82,6 @@ struct QPainterPathPrivateHandler
if (d && !d->ref.deref())
delete static_cast<QPainterPathData *>(d);
}
-
- static inline void reset(QPainterPathPrivate *&d, QPainterPathPrivate *other)
- {
- QPainterPathPrivate *oldD = d;
- d = other;
- cleanup(oldD);
- }
};
// This value is used to determine the length of control point vectors
diff --git a/src/gui/painting/qpainterpath.h b/src/gui/painting/qpainterpath.h
index 5068739e79..ef92397f51 100644
--- a/src/gui/painting/qpainterpath.h
+++ b/src/gui/painting/qpainterpath.h
@@ -57,7 +57,7 @@ QT_MODULE(Gui)
class QFont;
class QPainterPathPrivate;
-struct QPainterPathPrivateHandler;
+struct QPainterPathPrivateDeleter;
class QPainterPathData;
class QPainterPathStrokerPrivate;
class QPolygonF;
@@ -203,7 +203,7 @@ public:
QPainterPath &operator-=(const QPainterPath &other);
private:
- QScopedCustomPointer<QPainterPathPrivate, QPainterPathPrivateHandler> d_ptr;
+ QScopedPointer<QPainterPathPrivate, QPainterPathPrivateDeleter> d_ptr;
inline void ensureData() { if (!d_ptr) ensureData_helper(); }
void ensureData_helper();
@@ -237,7 +237,7 @@ public:
friend class QPainterPathStrokerPrivate;
friend class QMatrix;
friend class QTransform;
- friend struct QPainterPathPrivateHandler;
+ friend struct QPainterPathPrivateDeleter;
#ifndef QT_NO_DATASTREAM
friend Q_GUI_EXPORT QDataStream &operator<<(QDataStream &, const QPainterPath &);
friend Q_GUI_EXPORT QDataStream &operator>>(QDataStream &, QPainterPath &);
@@ -256,7 +256,7 @@ Q_GUI_EXPORT QDataStream &operator>>(QDataStream &, QPainterPath &);
class Q_GUI_EXPORT QPainterPathStroker
{
- Q_DECLARE_PRIVATE(QPainterPathStroker)
+ Q_DECLARE_SCOPED_PRIVATE(QPainterPathStroker)
public:
QPainterPathStroker();
~QPainterPathStroker();
diff --git a/src/gui/painting/qpdf_p.h b/src/gui/painting/qpdf_p.h
index 0e023d6b06..26f5bd7f56 100644
--- a/src/gui/painting/qpdf_p.h
+++ b/src/gui/painting/qpdf_p.h
@@ -183,7 +183,7 @@ class QPdfBaseEnginePrivate;
class QPdfBaseEngine : public QAlphaPaintEngine, public QPrintEngine
{
- Q_DECLARE_PRIVATE(QPdfBaseEngine)
+ Q_DECLARE_SCOPED_PRIVATE(QPdfBaseEngine)
public:
QPdfBaseEngine(QPdfBaseEnginePrivate &d, PaintEngineFeatures f);
~QPdfBaseEngine() {}
diff --git a/src/gui/painting/qprintengine_mac_p.h b/src/gui/painting/qprintengine_mac_p.h
index 23e99cd592..1fdb17248c 100644
--- a/src/gui/painting/qprintengine_mac_p.h
+++ b/src/gui/painting/qprintengine_mac_p.h
@@ -72,7 +72,7 @@ class QPrinterPrivate;
class QMacPrintEnginePrivate;
class QMacPrintEngine : public QPaintEngine, public QPrintEngine
{
- Q_DECLARE_PRIVATE(QMacPrintEngine)
+ Q_DECLARE_SCOPED_PRIVATE(QMacPrintEngine)
public:
QMacPrintEngine(QPrinter::PrinterMode mode);
diff --git a/src/gui/painting/qprintengine_pdf_p.h b/src/gui/painting/qprintengine_pdf_p.h
index 6f884a9535..e130ada8f9 100644
--- a/src/gui/painting/qprintengine_pdf_p.h
+++ b/src/gui/painting/qprintengine_pdf_p.h
@@ -84,7 +84,7 @@ class QPdfEnginePrivate;
class QPdfEngine : public QPdfBaseEngine
{
- Q_DECLARE_PRIVATE(QPdfEngine)
+ Q_DECLARE_SCOPED_PRIVATE(QPdfEngine)
public:
QPdfEngine(QPrinter::PrinterMode m);
virtual ~QPdfEngine();
diff --git a/src/gui/painting/qprintengine_ps_p.h b/src/gui/painting/qprintengine_ps_p.h
index 986be38a64..4b8034e37b 100644
--- a/src/gui/painting/qprintengine_ps_p.h
+++ b/src/gui/painting/qprintengine_ps_p.h
@@ -70,7 +70,7 @@ class QPSPrintEnginePrivate;
class QPSPrintEngine : public QPdfBaseEngine
{
- Q_DECLARE_PRIVATE(QPSPrintEngine)
+ Q_DECLARE_SCOPED_PRIVATE(QPSPrintEngine)
public:
// QPrinter uses these
explicit QPSPrintEngine(QPrinter::PrinterMode m);
diff --git a/src/gui/painting/qprintengine_qws_p.h b/src/gui/painting/qprintengine_qws_p.h
index 41cf935e48..5e552feee1 100644
--- a/src/gui/painting/qprintengine_qws_p.h
+++ b/src/gui/painting/qprintengine_qws_p.h
@@ -70,7 +70,7 @@ class QImage;
class QtopiaPrintEngine : public QPaintEngine, public QPrintEngine
{
- Q_DECLARE_PRIVATE(QtopiaPrintEngine)
+ Q_DECLARE_SCOPED_PRIVATE(QtopiaPrintEngine)
public:
QtopiaPrintEngine(QPrinter::PrinterMode mode);
diff --git a/src/gui/painting/qprintengine_win_p.h b/src/gui/painting/qprintengine_win_p.h
index 36a32e80a2..34fa538d57 100644
--- a/src/gui/painting/qprintengine_win_p.h
+++ b/src/gui/painting/qprintengine_win_p.h
@@ -69,7 +69,7 @@ class QPainterState;
class QWin32PrintEngine : public QAlphaPaintEngine, public QPrintEngine
{
- Q_DECLARE_PRIVATE(QWin32PrintEngine)
+ Q_DECLARE_SCOPED_PRIVATE(QWin32PrintEngine)
public:
QWin32PrintEngine(QPrinter::PrinterMode mode);
diff --git a/src/gui/painting/qprinter.h b/src/gui/painting/qprinter.h
index 25c2f0c738..842845b7c1 100644
--- a/src/gui/painting/qprinter.h
+++ b/src/gui/painting/qprinter.h
@@ -65,7 +65,7 @@ class QPrinterInfo;
class Q_GUI_EXPORT QPrinter : public QPaintDevice
{
- Q_DECLARE_PRIVATE(QPrinter)
+ Q_DECLARE_SCOPED_PRIVATE(QPrinter)
public:
enum PrinterMode { ScreenResolution, PrinterResolution, HighResolution };
diff --git a/src/gui/painting/qprinterinfo.h b/src/gui/painting/qprinterinfo.h
index c34e59173e..5c0a25fd8b 100644
--- a/src/gui/painting/qprinterinfo.h
+++ b/src/gui/painting/qprinterinfo.h
@@ -53,10 +53,10 @@ QT_MODULE(Gui)
#ifndef QT_NO_PRINTER
class QPrinterInfoPrivate;
-class QPrinterInfoPrivateCleanup;
+class QPrinterInfoPrivateDeleter;
class Q_GUI_EXPORT QPrinterInfo
{
-Q_DECLARE_PRIVATE(QPrinterInfo)
+Q_DECLARE_SCOPED_PRIVATE(QPrinterInfo)
public:
QPrinterInfo();
@@ -77,7 +77,7 @@ public:
private:
QPrinterInfo(const QString& name);
- QScopedCustomPointer<QPrinterInfoPrivate, QPrinterInfoPrivateCleanup> d_ptr;
+ QScopedPointer<QPrinterInfoPrivate, QPrinterInfoPrivateDeleter> d_ptr;
};
#endif // QT_NO_PRINTER
diff --git a/src/gui/painting/qprinterinfo_mac.cpp b/src/gui/painting/qprinterinfo_mac.cpp
index 69320158ae..66455d911c 100644
--- a/src/gui/painting/qprinterinfo_mac.cpp
+++ b/src/gui/painting/qprinterinfo_mac.cpp
@@ -65,7 +65,7 @@ private:
static QPrinterInfoPrivate nullQPrinterInfoPrivate;
-class QPrinterInfoPrivateCleanup
+class QPrinterInfoPrivateDeleter
{
public:
static inline void cleanup(QPrinterInfoPrivate *d)
@@ -73,12 +73,6 @@ public:
if (d != &nullQPrinterInfoPrivate)
delete d;
}
-
- static inline void reset(QPrinterInfoPrivate *&d, QPrinterInfoPrivate *other)
- {
- cleanup(d);
- d = other;
- }
};
extern QPrinter::PaperSize qSizeFTopaperSize(const QSizeF& size);
diff --git a/src/gui/painting/qprinterinfo_unix.cpp b/src/gui/painting/qprinterinfo_unix.cpp
index b9f1f3b626..11f94dc3e3 100644
--- a/src/gui/painting/qprinterinfo_unix.cpp
+++ b/src/gui/painting/qprinterinfo_unix.cpp
@@ -82,7 +82,7 @@ private:
static QPrinterInfoPrivate nullQPrinterInfoPrivate;
-class QPrinterInfoPrivateCleanup
+class QPrinterInfoPrivateDeleter
{
public:
static inline void cleanup(QPrinterInfoPrivate *d)
@@ -90,12 +90,6 @@ public:
if (d != &nullQPrinterInfoPrivate)
delete d;
}
-
- static inline void reset(QPrinterInfoPrivate *&d, QPrinterInfoPrivate *other)
- {
- cleanup(d);
- d = other;
- }
};
/////////////////////////////////////////////////////////////////////////////
diff --git a/src/gui/painting/qprinterinfo_win.cpp b/src/gui/painting/qprinterinfo_win.cpp
index 4a92d30999..89449b0def 100644
--- a/src/gui/painting/qprinterinfo_win.cpp
+++ b/src/gui/painting/qprinterinfo_win.cpp
@@ -69,7 +69,7 @@ private:
static QPrinterInfoPrivate nullQPrinterInfoPrivate;
-class QPrinterInfoPrivateCleanup
+class QPrinterInfoPrivateDeleter
{
public:
static inline void cleanup(QPrinterInfoPrivate *d)
@@ -77,12 +77,6 @@ public:
if (d != &nullQPrinterInfoPrivate)
delete d;
}
-
- static inline void reset(QPrinterInfoPrivate *&d, QPrinterInfoPrivate *other)
- {
- cleanup(d);
- d = other;
- }
};
/////////////////////////////////////////////////////////////////////////////
diff --git a/src/gui/painting/qrasterizer.cpp b/src/gui/painting/qrasterizer.cpp
index 6d1527130f..346b31dc15 100644
--- a/src/gui/painting/qrasterizer.cpp
+++ b/src/gui/painting/qrasterizer.cpp
@@ -437,10 +437,8 @@ inline void QScanConverter::allocate(int size)
{
if (m_alloc < size) {
int newAlloc = qMax(size, 2 * m_alloc);
- Intersection *newIntersections = (Intersection *)realloc(m_intersections, newAlloc * sizeof(Intersection));
- Q_CHECK_PTR(newIntersections);
+ m_intersections = q_check_ptr((Intersection *)realloc(m_intersections, newAlloc * sizeof(Intersection)));
m_alloc = newAlloc;
- m_intersections = newIntersections;
}
}
diff --git a/src/gui/painting/qtessellator.cpp b/src/gui/painting/qtessellator.cpp
index 711f99701c..6c16772f71 100644
--- a/src/gui/painting/qtessellator.cpp
+++ b/src/gui/painting/qtessellator.cpp
@@ -406,9 +406,9 @@ void QTessellatorPrivate::Scanline::init(int maxActiveEdges)
if (!edges || maxActiveEdges > default_alloc) {
max_edges = maxActiveEdges;
int s = qMax(maxActiveEdges + 1, default_alloc + 1);
- edges = (Edge **)realloc(edges, s*sizeof(Edge *));
- edge_table = (Edge *)realloc(edge_table, s*sizeof(Edge));
- old = (Edge **)realloc(old, s*sizeof(Edge *));
+ edges = q_check_ptr((Edge **)realloc(edges, s*sizeof(Edge *)));
+ edge_table = q_check_ptr((Edge *)realloc(edge_table, s*sizeof(Edge)));
+ old = q_check_ptr((Edge **)realloc(old, s*sizeof(Edge *)));
}
size = 0;
old_size = 0;
@@ -566,8 +566,8 @@ void QTessellatorPrivate::Vertices::init(int maxVertices)
{
if (!storage || maxVertices > allocated) {
int size = qMax((int)default_alloc, maxVertices);
- storage = (Vertex *)realloc(storage, size*sizeof(Vertex));
- sorted = (Vertex **)realloc(sorted, size*sizeof(Vertex *));
+ storage = q_check_ptr((Vertex *)realloc(storage, size*sizeof(Vertex)));
+ sorted = q_check_ptr((Vertex **)realloc(sorted, size*sizeof(Vertex *)));
allocated = maxVertices;
}
}
@@ -739,7 +739,7 @@ void QTessellatorPrivate::cancelCoincidingEdges()
if (testListSize > tlSize - 2) {
tlSize = qMax(tlSize*2, 16);
- tl = (QCoincidingEdge *)realloc(tl, tlSize*sizeof(QCoincidingEdge));
+ tl = q_check_ptr((QCoincidingEdge *)realloc(tl, tlSize*sizeof(QCoincidingEdge)));
}
if (n->flags & (LineBeforeStarts|LineBeforeHorizontal)) {
tl[testListSize].start = n;
diff --git a/src/gui/painting/qwindowsurface_raster_p.h b/src/gui/painting/qwindowsurface_raster_p.h
index b3256b3c87..4ee20472e4 100644
--- a/src/gui/painting/qwindowsurface_raster_p.h
+++ b/src/gui/painting/qwindowsurface_raster_p.h
@@ -108,7 +108,7 @@ public:
private:
void prepareBuffer(QImage::Format format, QWidget *widget);
- Q_DECLARE_PRIVATE(QRasterWindowSurface)
+ Q_DECLARE_SCOPED_PRIVATE(QRasterWindowSurface)
QScopedPointer<QRasterWindowSurfacePrivate> d_ptr;
};
diff --git a/src/gui/painting/qwindowsurface_s60.cpp b/src/gui/painting/qwindowsurface_s60.cpp
index e81adccb91..5de4317bdd 100644
--- a/src/gui/painting/qwindowsurface_s60.cpp
+++ b/src/gui/painting/qwindowsurface_s60.cpp
@@ -75,8 +75,8 @@ QS60WindowSurface::QS60WindowSurface(QWidget* widget)
// We create empty CFbsBitmap here -> it will be resized in setGeometry
- d_ptr->bitmap = new (ELeave) CFbsBitmap;
- User::LeaveIfError( d_ptr->bitmap->Create(TSize(0, 0), mode ) );
+ d_ptr->bitmap = q_check_ptr(new CFbsBitmap); // CBase derived object needs check on new
+ qt_throwIfError( d_ptr->bitmap->Create(TSize(0, 0), mode ) );
updatePaintDeviceOnBitmap();
@@ -141,7 +141,8 @@ bool QS60WindowSurface::scroll(const QRegion &area, int dx, int dy)
if (d_ptr->device.isNull())
return false;
- CFbsBitmapDevice *bitmapDevice = CFbsBitmapDevice::NewL(d_ptr->bitmap);
+ CFbsBitmapDevice *bitmapDevice = 0;
+ QT_TRAP_THROWING(bitmapDevice = CFbsBitmapDevice::NewL(d_ptr->bitmap));
CBitmapContext *bitmapContext;
TInt err = bitmapDevice->CreateBitmapContext(bitmapContext);
if (err != KErrNone) {
@@ -177,7 +178,7 @@ void QS60WindowSurface::setGeometry(const QRect& rect)
QWindowSurface::setGeometry(rect);
TRect nativeRect(qt_QRect2TRect(rect));
- User::LeaveIfError(d_ptr->bitmap->Resize(nativeRect.Size()));
+ qt_throwIfError(d_ptr->bitmap->Resize(nativeRect.Size()));
if (!rect.isNull())
updatePaintDeviceOnBitmap();
diff --git a/src/gui/painting/qwindowsurface_s60_p.h b/src/gui/painting/qwindowsurface_s60_p.h
index 40a866d854..6a31ced6de 100644
--- a/src/gui/painting/qwindowsurface_s60_p.h
+++ b/src/gui/painting/qwindowsurface_s60_p.h
@@ -81,7 +81,7 @@ public:
static void unlockBitmapHeap();
CFbsBitmap *symbianBitmap() const;
-
+
private:
void updatePaintDeviceOnBitmap();
diff --git a/src/gui/statemachine/qbasickeyeventtransition_p.h b/src/gui/statemachine/qbasickeyeventtransition_p.h
index 1d507b393c..038c7d176a 100644
--- a/src/gui/statemachine/qbasickeyeventtransition_p.h
+++ b/src/gui/statemachine/qbasickeyeventtransition_p.h
@@ -88,7 +88,7 @@ protected:
private:
Q_DISABLE_COPY(QBasicKeyEventTransition)
- Q_DECLARE_PRIVATE(QBasicKeyEventTransition)
+ Q_DECLARE_SCOPED_PRIVATE(QBasicKeyEventTransition)
};
QT_END_NAMESPACE
diff --git a/src/gui/statemachine/qbasicmouseeventtransition_p.h b/src/gui/statemachine/qbasicmouseeventtransition_p.h
index 8ca6118385..eb0dc0f8f3 100644
--- a/src/gui/statemachine/qbasicmouseeventtransition_p.h
+++ b/src/gui/statemachine/qbasicmouseeventtransition_p.h
@@ -91,7 +91,7 @@ protected:
private:
Q_DISABLE_COPY(QBasicMouseEventTransition)
- Q_DECLARE_PRIVATE(QBasicMouseEventTransition)
+ Q_DECLARE_SCOPED_PRIVATE(QBasicMouseEventTransition)
};
QT_END_NAMESPACE
diff --git a/src/gui/statemachine/qkeyeventtransition.h b/src/gui/statemachine/qkeyeventtransition.h
index 45ae684d68..c3a440b6cd 100644
--- a/src/gui/statemachine/qkeyeventtransition.h
+++ b/src/gui/statemachine/qkeyeventtransition.h
@@ -76,7 +76,7 @@ protected:
private:
Q_DISABLE_COPY(QKeyEventTransition)
- Q_DECLARE_PRIVATE(QKeyEventTransition)
+ Q_DECLARE_SCOPED_PRIVATE(QKeyEventTransition)
};
#endif //QT_NO_STATEMACHINE
diff --git a/src/gui/statemachine/qmouseeventtransition.h b/src/gui/statemachine/qmouseeventtransition.h
index a56a554341..35c7d1db33 100644
--- a/src/gui/statemachine/qmouseeventtransition.h
+++ b/src/gui/statemachine/qmouseeventtransition.h
@@ -80,7 +80,7 @@ protected:
private:
Q_DISABLE_COPY(QMouseEventTransition)
- Q_DECLARE_PRIVATE(QMouseEventTransition)
+ Q_DECLARE_SCOPED_PRIVATE(QMouseEventTransition)
};
#endif //QT_NO_STATEMACHINE
diff --git a/src/gui/styles/qcleanlooksstyle.h b/src/gui/styles/qcleanlooksstyle.h
index ebfb707f7f..834f238aa8 100644
--- a/src/gui/styles/qcleanlooksstyle.h
+++ b/src/gui/styles/qcleanlooksstyle.h
@@ -56,7 +56,7 @@ class QCleanlooksStylePrivate;
class Q_GUI_EXPORT QCleanlooksStyle : public QWindowsStyle
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QCleanlooksStyle)
+ Q_DECLARE_SCOPED_PRIVATE(QCleanlooksStyle)
public:
QCleanlooksStyle();
diff --git a/src/gui/styles/qcommonstyle.cpp b/src/gui/styles/qcommonstyle.cpp
index ba28e753dd..bfcb7c9815 100644
--- a/src/gui/styles/qcommonstyle.cpp
+++ b/src/gui/styles/qcommonstyle.cpp
@@ -3216,8 +3216,10 @@ QRect QCommonStyle::subElementRect(SubElement sr, const QStyleOption *opt,
if (const QStyleOptionViewItemV4 *vopt = qstyleoption_cast<const QStyleOptionViewItemV4 *>(opt)) {
if (!d->isViewItemCached(*vopt)) {
d->viewItemLayout(vopt, &d->checkRect, &d->decorationRect, &d->displayRect, false);
- if (d->cachedOption)
+ if (d->cachedOption) {
delete d->cachedOption;
+ d->cachedOption = 0;
+ }
d->cachedOption = new QStyleOptionViewItemV4(*vopt);
}
if (sr == SE_ViewItemCheckIndicator)
diff --git a/src/gui/styles/qcommonstyle.h b/src/gui/styles/qcommonstyle.h
index ce54a9644f..1f64fb34d0 100644
--- a/src/gui/styles/qcommonstyle.h
+++ b/src/gui/styles/qcommonstyle.h
@@ -98,7 +98,7 @@ protected:
QCommonStyle(QCommonStylePrivate &dd);
private:
- Q_DECLARE_PRIVATE(QCommonStyle)
+ Q_DECLARE_SCOPED_PRIVATE(QCommonStyle)
Q_DISABLE_COPY(QCommonStyle)
};
diff --git a/src/gui/styles/qgtkstyle.h b/src/gui/styles/qgtkstyle.h
index e12f175f10..3feeafa836 100644
--- a/src/gui/styles/qgtkstyle.h
+++ b/src/gui/styles/qgtkstyle.h
@@ -60,7 +60,7 @@ class QGtkStylePrivate;
class Q_GUI_EXPORT QGtkStyle : public QCleanlooksStyle
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QGtkStyle)
+ Q_DECLARE_SCOPED_PRIVATE(QGtkStyle)
public:
QGtkStyle();
diff --git a/src/gui/styles/qmotifstyle.h b/src/gui/styles/qmotifstyle.h
index e848eb4b71..356f420845 100644
--- a/src/gui/styles/qmotifstyle.h
+++ b/src/gui/styles/qmotifstyle.h
@@ -113,7 +113,7 @@ protected:
bool eventFilter(QObject *o, QEvent *e);
private:
- Q_DECLARE_PRIVATE(QMotifStyle)
+ Q_DECLARE_SCOPED_PRIVATE(QMotifStyle)
Q_DISABLE_COPY(QMotifStyle)
bool highlightCols;
diff --git a/src/gui/styles/qplastiquestyle.h b/src/gui/styles/qplastiquestyle.h
index ac3da4154e..74560fc92c 100644
--- a/src/gui/styles/qplastiquestyle.h
+++ b/src/gui/styles/qplastiquestyle.h
@@ -56,7 +56,7 @@ class QPlastiqueStylePrivate;
class Q_GUI_EXPORT QPlastiqueStyle : public QWindowsStyle
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QPlastiqueStyle)
+ Q_DECLARE_SCOPED_PRIVATE(QPlastiqueStyle)
public:
QPlastiqueStyle();
~QPlastiqueStyle();
diff --git a/src/gui/styles/qproxystyle.h b/src/gui/styles/qproxystyle.h
index c9edaff449..33f252a20a 100644
--- a/src/gui/styles/qproxystyle.h
+++ b/src/gui/styles/qproxystyle.h
@@ -102,7 +102,7 @@ protected Q_SLOTS:
Qt::Orientation orientation, const QStyleOption *option = 0, const QWidget *widget = 0) const;
private:
Q_DISABLE_COPY(QProxyStyle)
- Q_DECLARE_PRIVATE(QProxyStyle)
+ Q_DECLARE_SCOPED_PRIVATE(QProxyStyle)
};
#endif // QT_NO_STYLE_PROXY
diff --git a/src/gui/styles/qs60style.cpp b/src/gui/styles/qs60style.cpp
index 2c486a214a..01a469c4f1 100644
--- a/src/gui/styles/qs60style.cpp
+++ b/src/gui/styles/qs60style.cpp
@@ -88,16 +88,16 @@ static const QByteArray propertyKeyCurrentlayout = "currentlayout";
const layoutHeader QS60StylePrivate::m_layoutHeaders[] = {
// *** generated layout data ***
-{240,320,1,14,true,QLatin1String("QVGA Landscape Mirrored")},
-{240,320,1,14,false,QLatin1String("QVGA Landscape")},
-{320,240,1,14,true,QLatin1String("QVGA Portrait Mirrored")},
-{320,240,1,14,false,QLatin1String("QVGA Portrait")},
-{360,640,1,14,true,QLatin1String("NHD Landscape Mirrored")},
-{360,640,1,14,false,QLatin1String("NHD Landscape")},
-{640,360,1,14,true,QLatin1String("NHD Portrait Mirrored")},
-{640,360,1,14,false,QLatin1String("NHD Portrait")},
-{352,800,1,12,true,QLatin1String("E90 Landscape Mirrored")},
-{352,800,1,12,false,QLatin1String("E90 Landscape")}
+{240,320,1,14,true,"QVGA Landscape Mirrored"},
+{240,320,1,14,false,"QVGA Landscape"},
+{320,240,1,14,true,"QVGA Portrait Mirrored"},
+{320,240,1,14,false,"QVGA Portrait"},
+{360,640,1,14,true,"NHD Landscape Mirrored"},
+{360,640,1,14,false,"NHD Landscape"},
+{640,360,1,14,true,"NHD Portrait Mirrored"},
+{640,360,1,14,false,"NHD Portrait"},
+{352,800,1,12,true,"E90 Landscape Mirrored"},
+{352,800,1,12,false,"E90 Landscape"}
// *** End of generated data ***
};
const int QS60StylePrivate::m_numberOfLayouts =
@@ -280,7 +280,7 @@ void QS60StylePrivate::drawSkinElement(SkinElements element, QPainter *painter,
break;
case SE_Editor:
drawFrame(SF_Editor, painter, rect, flags | SF_PointNorth);
- break;
+ break;
default:
break;
}
@@ -319,7 +319,7 @@ QVariant QS60StylePrivate::styleProperty(const char *name) const
static QStringList layouts;
if (layouts.isEmpty())
for (int i = 0; i < m_numberOfLayouts; i++)
- layouts.append(m_layoutHeaders[i].layoutName);
+ layouts.append(QLatin1String(m_layoutHeaders[i].layoutName));
return layouts;
}
return QVariant();
@@ -796,12 +796,12 @@ void QS60StylePrivate::setThemePaletteHash(QPalette *palette) const
s60Color(QS60StyleEnums::CL_QsnTextColors, 24, 0));
QApplication::setPalette(widgetPalette, "QTextEdit");
widgetPalette = *palette;
-
+
widgetPalette.setColor(QPalette::All, QPalette::HighlightedText,
s60Color(QS60StyleEnums::CL_QsnTextColors, 24, 0));
QApplication::setPalette(widgetPalette, "QComboBox");
widgetPalette = *palette;
-
+
widgetPalette.setColor(QPalette::WindowText, mainAreaTextColor);
widgetPalette.setColor(QPalette::Button, QApplication::palette().color(QPalette::Button));
widgetPalette.setColor(QPalette::Dark, mainAreaTextColor.darker());
diff --git a/src/gui/styles/qs60style.h b/src/gui/styles/qs60style.h
index d8e9a40147..38d8e48f1a 100644
--- a/src/gui/styles/qs60style.h
+++ b/src/gui/styles/qs60style.h
@@ -57,7 +57,7 @@ class QS60StylePrivate;
class Q_GUI_EXPORT QS60Style : public QCommonStyle
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QS60Style)
+ Q_DECLARE_SCOPED_PRIVATE(QS60Style)
public:
QS60Style();
diff --git a/src/gui/styles/qs60style_p.h b/src/gui/styles/qs60style_p.h
index 72409784b3..4bf8143d41 100644
--- a/src/gui/styles/qs60style_p.h
+++ b/src/gui/styles/qs60style_p.h
@@ -75,7 +75,7 @@ typedef struct {
int major_version;
int minor_version;
bool mirroring; // TODO: (nice to have) Use Qt::LayoutDirection
- QString layoutName;
+ const char* layoutName;
} layoutHeader;
#ifdef Q_OS_SYMBIAN
@@ -270,7 +270,7 @@ public:
SP_QsnFrButtonSideBInactive,
SP_QsnFrButtonSideLInactive,
SP_QsnFrButtonSideRInactive,
- SP_QsnFrButtonCenterInactive,
+ SP_QsnFrButtonCenterInactive,
SP_QsnFrNotepadCornerTl,
SP_QsnFrNotepadCornerTr,
SP_QsnFrNotepadCornerBl,
diff --git a/src/gui/styles/qs60style_s60.cpp b/src/gui/styles/qs60style_s60.cpp
index 63346da95b..f304d14877 100644
--- a/src/gui/styles/qs60style_s60.cpp
+++ b/src/gui/styles/qs60style_s60.cpp
@@ -80,7 +80,7 @@ enum TSupportRelease {
ES60_5_1 = 0x0008,
ES60_5_2 = 0x0010,
// Add all new releases here
- ES60_AllReleases = ES60_3_1 | ES60_3_2 | ES60_5_0 | ES60_5_1 | ES60_5_2
+ ES60_AllReleases = ES60_3_1 | ES60_3_2 | ES60_5_0 | ES60_5_1 | ES60_5_2
};
typedef struct {
@@ -106,10 +106,10 @@ public:
static QPixmap generateMissingThemeGraphic(QS60StyleEnums::SkinParts &part, const QSize &size, QS60StylePrivate::SkinElementFlags flags);
private:
- static QPixmap createSkinnedGraphicsL(QS60StyleEnums::SkinParts part,
+ static QPixmap createSkinnedGraphicsLX(QS60StyleEnums::SkinParts part,
const QSize &size, QS60StylePrivate::SkinElementFlags flags);
- static QPixmap createSkinnedGraphicsL(QS60StylePrivate::SkinFrameElements frameElement, const QSize &size, QS60StylePrivate::SkinElementFlags flags);
- static QPixmap colorSkinnedGraphicsL(const QS60StyleEnums::SkinParts &stylepart,
+ static QPixmap createSkinnedGraphicsLX(QS60StylePrivate::SkinFrameElements frameElement, const QSize &size, QS60StylePrivate::SkinElementFlags flags);
+ static QPixmap colorSkinnedGraphicsLX(const QS60StyleEnums::SkinParts &stylepart,
const QSize &size, QS60StylePrivate::SkinElementFlags flags);
static void frameIdAndCenterId(QS60StylePrivate::SkinFrameElements frameElement, TAknsItemID &frameId, TAknsItemID &centerId);
static TRect innerRectFromElement(QS60StylePrivate::SkinFrameElements frameElement, const TRect &outerRect);
@@ -317,7 +317,7 @@ const partMapEntry QS60StyleModeSpecifics::m_partMap[] = {
/* SP_QsnFrButtonSideBInactive */ {KAknsIIDQsnFrButtonTbSideB, ENoDraw, ES60_3_1 | ES60_3_2, EAknsMajorSkin, 0x21b6},
/* SP_QsnFrButtonSideLInactive */ {KAknsIIDQsnFrButtonTbSideL, ENoDraw, ES60_3_1 | ES60_3_2, EAknsMajorSkin, 0x21b7},
/* SP_QsnFrButtonSideRInactive */ {KAknsIIDQsnFrButtonTbSideR, ENoDraw, ES60_3_1 | ES60_3_2, EAknsMajorSkin, 0x21b8},
- /* SP_QsnFrButtonCenterInactive */ {KAknsIIDQsnFrButtonTbCenter, EDrawIcon, ES60_3_1 | ES60_3_2, EAknsMajorSkin, 0x21b9},
+ /* SP_QsnFrButtonCenterInactive */ {KAknsIIDQsnFrButtonTbCenter, EDrawIcon, ES60_3_1 | ES60_3_2, EAknsMajorSkin, 0x21b9},
/* SP_QsnFrNotepadCornerTl */ {KAknsIIDQsnFrNotepadContCornerTl, ENoDraw, ES60_AllReleases, -1,-1},
/* SP_QsnFrNotepadCornerTr */ {KAknsIIDQsnFrNotepadContCornerTr, ENoDraw, ES60_AllReleases, -1,-1},
@@ -336,10 +336,10 @@ QPixmap QS60StyleModeSpecifics::skinnedGraphics(
QS60StylePrivate::SkinElementFlags flags)
{
QPixmap themedImage;
- TRAPD( error, {
- const QPixmap skinnedImage = createSkinnedGraphicsL(stylepart, size, flags);
+ TRAPD( error, QT_TRYCATCH_LEAVING({
+ const QPixmap skinnedImage = createSkinnedGraphicsLX(stylepart, size, flags);
themedImage = skinnedImage;
- });
+ }));
if (error)
return themedImage = QPixmap();
return themedImage;
@@ -349,10 +349,10 @@ QPixmap QS60StyleModeSpecifics::skinnedGraphics(
QS60StylePrivate::SkinFrameElements frame, const QSize &size, QS60StylePrivate::SkinElementFlags flags)
{
QPixmap themedImage;
- TRAPD( error, {
- const QPixmap skinnedImage = createSkinnedGraphicsL(frame, size, flags);
+ TRAPD( error, QT_TRYCATCH_LEAVING({
+ const QPixmap skinnedImage = createSkinnedGraphicsLX(frame, size, flags);
themedImage = skinnedImage;
- });
+ }));
if (error)
return themedImage = QPixmap();
return themedImage;
@@ -363,7 +363,7 @@ QPixmap QS60StyleModeSpecifics::colorSkinnedGraphics(
const QSize &size, QS60StylePrivate::SkinElementFlags flags)
{
QPixmap colorGraphics;
- TRAPD(error, colorGraphics = colorSkinnedGraphicsL(stylepart, size, flags));
+ TRAPD(error, QT_TRYCATCH_LEAVING(colorGraphics = colorSkinnedGraphicsLX(stylepart, size, flags)));
return error ? QPixmap() : colorGraphics;
}
@@ -521,10 +521,11 @@ void QS60StyleModeSpecifics::fallbackInfo(const QS60StyleEnums::SkinParts &style
}
}
-QPixmap QS60StyleModeSpecifics::colorSkinnedGraphicsL(
+QPixmap QS60StyleModeSpecifics::colorSkinnedGraphicsLX(
const QS60StyleEnums::SkinParts &stylepart,
const QSize &size, QS60StylePrivate::SkinElementFlags flags)
{
+ // this function can throw both exceptions and leaves. There are no cleanup dependencies between Qt and Symbian parts.
const int stylepartIndex = (int)stylepart;
const TAknsItemID skinId = m_partMap[stylepartIndex].skinID;
@@ -563,6 +564,13 @@ QColor QS60StyleModeSpecifics::colorValue(const TAknsItemID &colorGroup, int col
return QColor(skinnedColor.Red(),skinnedColor.Green(),skinnedColor.Blue());
}
+struct QAutoFbsBitmapHeapLock
+{
+ QAutoFbsBitmapHeapLock(CFbsBitmap* aBmp) : mBmp(aBmp) { mBmp->LockHeap(); }
+ ~QAutoFbsBitmapHeapLock() { mBmp->UnlockHeap(); }
+ CFbsBitmap* mBmp;
+};
+
QPixmap QS60StyleModeSpecifics::fromFbsBitmap(CFbsBitmap *icon, CFbsBitmap *mask, QS60StylePrivate::SkinElementFlags flags, QImage::Format format)
{
Q_ASSERT(icon);
@@ -589,13 +597,13 @@ QPixmap QS60StyleModeSpecifics::fromFbsBitmap(CFbsBitmap *icon, CFbsBitmap *mask
if (mask) { //checkAndUnCompressBitmap might set mask to NULL
const TSize maskSize = icon->SizeInPixels();
const int maskBytesPerLine = CFbsBitmap::ScanLineLength(maskSize.iWidth, mask->DisplayMode());
- mask->LockHeap();
+ // heap lock object required because QImage ctor might throw
+ QAutoFbsBitmapHeapLock maskHeapLock(mask);
const uchar *const maskBytes = (uchar *)mask->DataAddress();
// Since no other bitmap should be locked, we can just "borrow" the mask data for setAlphaChannel
const QImage maskImage(maskBytes, maskSize.iWidth, maskSize.iHeight, maskBytesPerLine, QImage::Format_Indexed8);
if (!maskImage.isNull())
iconImage.setAlphaChannel(maskImage);
- mask->UnlockHeap();
}
}
@@ -631,10 +639,11 @@ QPoint qt_s60_fill_background_offset(const QWidget *targetWidget)
return QPoint(globalPos.iX, globalPos.iY);
}
-QPixmap QS60StyleModeSpecifics::createSkinnedGraphicsL(
+QPixmap QS60StyleModeSpecifics::createSkinnedGraphicsLX(
QS60StyleEnums::SkinParts part,
const QSize &size, QS60StylePrivate::SkinElementFlags flags)
{
+ // this function can throw both exceptions and leaves. There are no cleanup dependencies between Qt and Symbian parts.
if (!size.isValid())
return QPixmap();
@@ -712,9 +721,10 @@ QPixmap QS60StyleModeSpecifics::createSkinnedGraphicsL(
return result;
}
-QPixmap QS60StyleModeSpecifics::createSkinnedGraphicsL(QS60StylePrivate::SkinFrameElements frameElement,
+QPixmap QS60StyleModeSpecifics::createSkinnedGraphicsLX(QS60StylePrivate::SkinFrameElements frameElement,
const QSize &size, QS60StylePrivate::SkinElementFlags flags)
{
+ // this function can throw both exceptions and leaves. There are no cleanup dependencies between Qt and Symbian parts.
if (!size.isValid())
return QPixmap();
@@ -892,7 +902,10 @@ void QS60StyleModeSpecifics::checkAndUnCompressBitmap(CFbsBitmap*& aOriginalBitm
void QS60StyleModeSpecifics::checkAndUnCompressBitmapL(CFbsBitmap*& aOriginalBitmap)
{
- if (aOriginalBitmap->IsCompressedInRAM()) {
+ const TSize iconSize = aOriginalBitmap->SizeInPixels();
+ const int iconBytesPerLine = CFbsBitmap::ScanLineLength(iconSize.iWidth, aOriginalBitmap->DisplayMode());
+ const int iconBytesCount = iconBytesPerLine * iconSize.iHeight;
+ if (aOriginalBitmap->IsCompressedInRAM() || aOriginalBitmap->Header().iBitmapSize < iconBytesCount) {
const TSize iconSize(aOriginalBitmap->SizeInPixels().iWidth,
aOriginalBitmap->SizeInPixels().iHeight);
CFbsBitmap* uncompressedBitmap = new (ELeave) CFbsBitmap();
@@ -941,7 +954,7 @@ QFont QS60StylePrivate::s60Font_specific(
}
QFont result;
- TRAPD( error, {
+ TRAPD( error, QT_TRYCATCH_LEAVING({
const CAknLayoutFont* aknFont =
AknFontAccess::CreateLayoutFontFromSpecificationL(*dev, spec);
@@ -950,7 +963,7 @@ QFont QS60StylePrivate::s60Font_specific(
result.setPointSize(pointSize); // Correct the font size returned by CreateLayoutFontFromSpecificationL()
delete aknFont;
- });
+ }));
if (error) result = QFont();
return result;
}
@@ -1178,7 +1191,9 @@ void QS60StyleModeSpecifics::unCompressBitmapL(const TRect& aTrgRect, CFbsBitmap
User::Leave(KErrArgument);
// Note! aSrcBitmap->IsCompressedInRAM() is always ETrue, since this method is called only if that applies!
- ASSERT(aSrcBitmap->IsCompressedInRAM());
+ // Extra note! this function is also being used when bitmaps appear to be compressed (because DataSize is too small)
+ // even when they pretend they are not. Assert removed.
+// ASSERT(aSrcBitmap->IsCompressedInRAM());
TDisplayMode displayMode = aSrcBitmap->DisplayMode();
diff --git a/src/gui/styles/qstyle.h b/src/gui/styles/qstyle.h
index f22bf55a63..68d4734c3a 100644
--- a/src/gui/styles/qstyle.h
+++ b/src/gui/styles/qstyle.h
@@ -68,7 +68,7 @@ class QStylePrivate;
class Q_GUI_EXPORT QStyle : public QObject
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QStyle)
+ Q_DECLARE_SCOPED_PRIVATE(QStyle)
protected:
QStyle(QStylePrivate &dd);
diff --git a/src/gui/styles/qstylesheetstyle_p.h b/src/gui/styles/qstylesheetstyle_p.h
index 9b7b79d0f7..399e449da5 100644
--- a/src/gui/styles/qstylesheetstyle_p.h
+++ b/src/gui/styles/qstylesheetstyle_p.h
@@ -182,7 +182,7 @@ public:
private:
Q_DISABLE_COPY(QStyleSheetStyle)
- Q_DECLARE_PRIVATE(QStyleSheetStyle)
+ Q_DECLARE_SCOPED_PRIVATE(QStyleSheetStyle)
};
diff --git a/src/gui/styles/qwindowsmobilestyle.h b/src/gui/styles/qwindowsmobilestyle.h
index ab32e8e8c3..9892decd70 100644
--- a/src/gui/styles/qwindowsmobilestyle.h
+++ b/src/gui/styles/qwindowsmobilestyle.h
@@ -104,7 +104,7 @@ protected:
QWindowsMobileStyle(QWindowsMobileStylePrivate &dd);
private:
- Q_DECLARE_PRIVATE(QWindowsMobileStyle)
+ Q_DECLARE_SCOPED_PRIVATE(QWindowsMobileStyle)
};
#endif // QT_NO_STYLE_WINDOWSMOBILE
diff --git a/src/gui/styles/qwindowsstyle.h b/src/gui/styles/qwindowsstyle.h
index c169a84a43..45260e8a85 100644
--- a/src/gui/styles/qwindowsstyle.h
+++ b/src/gui/styles/qwindowsstyle.h
@@ -98,7 +98,7 @@ protected:
private:
Q_DISABLE_COPY(QWindowsStyle)
- Q_DECLARE_PRIVATE(QWindowsStyle)
+ Q_DECLARE_SCOPED_PRIVATE(QWindowsStyle)
void *reserved;
};
diff --git a/src/gui/styles/qwindowsvistastyle.h b/src/gui/styles/qwindowsvistastyle.h
index 97b1e74038..60cd7a527a 100644
--- a/src/gui/styles/qwindowsvistastyle.h
+++ b/src/gui/styles/qwindowsvistastyle.h
@@ -96,7 +96,7 @@ protected Q_SLOTS:
private:
Q_DISABLE_COPY(QWindowsVistaStyle)
- Q_DECLARE_PRIVATE(QWindowsVistaStyle)
+ Q_DECLARE_SCOPED_PRIVATE(QWindowsVistaStyle)
friend class QStyleFactory;
};
#endif //QT_NO_STYLE_WINDOWSVISTA
diff --git a/src/gui/styles/qwindowsxpstyle.h b/src/gui/styles/qwindowsxpstyle.h
index ab26f566d3..21e24ff452 100644
--- a/src/gui/styles/qwindowsxpstyle.h
+++ b/src/gui/styles/qwindowsxpstyle.h
@@ -93,7 +93,7 @@ protected Q_SLOTS:
private:
Q_DISABLE_COPY(QWindowsXPStyle)
- Q_DECLARE_PRIVATE(QWindowsXPStyle)
+ Q_DECLARE_SCOPED_PRIVATE(QWindowsXPStyle)
friend class QStyleFactory;
void *reserved;
};
diff --git a/src/gui/text/qabstractfontengine_qws.h b/src/gui/text/qabstractfontengine_qws.h
index e6be611f9e..8403f8753c 100644
--- a/src/gui/text/qabstractfontengine_qws.h
+++ b/src/gui/text/qabstractfontengine_qws.h
@@ -118,7 +118,7 @@ public:
virtual QList<QFontEngineInfo> availableFontEngines() const = 0;
private:
- Q_DECLARE_PRIVATE(QFontEnginePlugin)
+ Q_DECLARE_SCOPED_PRIVATE(QFontEnginePlugin)
Q_DISABLE_COPY(QFontEnginePlugin)
};
@@ -207,7 +207,7 @@ public:
*/
private:
- Q_DECLARE_PRIVATE(QAbstractFontEngine)
+ Q_DECLARE_SCOPED_PRIVATE(QAbstractFontEngine)
Q_DISABLE_COPY(QAbstractFontEngine)
};
diff --git a/src/gui/text/qabstracttextdocumentlayout.h b/src/gui/text/qabstracttextdocumentlayout.h
index 070c301cc0..3681eec2ad 100644
--- a/src/gui/text/qabstracttextdocumentlayout.h
+++ b/src/gui/text/qabstracttextdocumentlayout.h
@@ -62,7 +62,7 @@ class QTextFrame;
class Q_GUI_EXPORT QAbstractTextDocumentLayout : public QObject
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QAbstractTextDocumentLayout)
+ Q_DECLARE_SCOPED_PRIVATE(QAbstractTextDocumentLayout)
public:
explicit QAbstractTextDocumentLayout(QTextDocument *doc);
diff --git a/src/gui/text/qfontdatabase.cpp b/src/gui/text/qfontdatabase.cpp
index 844c3f9d50..d33cdf0b17 100644
--- a/src/gui/text/qfontdatabase.cpp
+++ b/src/gui/text/qfontdatabase.cpp
@@ -226,7 +226,9 @@ struct QtFontStyle
delete [] setwidthName;
#endif
#if defined(Q_WS_X11) || defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN)
- while (count--) {
+ while (count) {
+ // bitfield count-- in while condition does not work correctly in mwccsym2
+ count--;
#ifdef Q_WS_X11
free(pixelSizes[count].encodings);
#endif
diff --git a/src/gui/text/qfontdatabase_qws.cpp b/src/gui/text/qfontdatabase_qws.cpp
index 040750868b..d731d21772 100644
--- a/src/gui/text/qfontdatabase_qws.cpp
+++ b/src/gui/text/qfontdatabase_qws.cpp
@@ -762,21 +762,21 @@ QFontDatabase::findFont(int script, const QFontPrivate *fp,
if (!privateDb()->count)
initializeDb();
- QFontEngine *fe = 0;
+ QScopedPointer<QFontEngine> fe;
if (fp) {
if (fp->rawMode) {
- fe = loadEngine(script, fp, request, 0, 0, 0, 0
- );
+ fe.reset(loadEngine(script, fp, request, 0, 0, 0, 0));
// if we fail to load the rawmode font, use a 12pixel box engine instead
- if (! fe) fe = new QFontEngineBox(12);
- return fe;
+ if (fe.isNull())
+ fe.reset(new QFontEngineBox(12));
+ return fe.take();
}
QFontCache::Key key(request, script);
- fe = QFontCache::instance()->findEngine(key);
- if (fe)
- return fe;
+ fe.reset(QFontCache::instance()->findEngine(key));
+ if (! fe.isNull())
+ return fe.take();
}
QString family_name, foundry_name;
@@ -800,11 +800,11 @@ QFontDatabase::findFont(int script, const QFontPrivate *fp,
script, request.weight, request.style, request.stretch, request.pixelSize, pitch);
if (qt_enable_test_font && request.family == QLatin1String("__Qt__Box__Engine__")) {
- fe = new QTestFontEngine(request.pixelSize);
+ fe.reset(new QTestFontEngine(request.pixelSize));
fe->fontDef = request;
}
- if (!fe)
+ if (fe.isNull())
{
QtFontDesc desc;
match(script, request, family_name, foundry_name, force_encoding_id, &desc);
@@ -825,16 +825,28 @@ QFontDatabase::findFont(int script, const QFontPrivate *fp,
'p', 0
);
- fe = loadEngine(script, fp, request, desc.family, desc.foundry, desc.style, desc.size
- );
+ fe.reset(loadEngine(script, fp, request, desc.family, desc.foundry, desc.style, desc.size
+ ));
} else {
FM_DEBUG(" NO MATCH FOUND\n");
}
- if (fe)
+ if (! fe.isNull())
initFontDef(desc, request, &fe->fontDef);
}
- if (fe) {
+#ifndef QT_NO_FREETYPE
+ if (! fe.isNull()) {
+ if (scriptRequiresOpenType(script) && fe->type() == QFontEngine::Freetype) {
+ HB_Face hbFace = static_cast<QFontEngineFT *>(fe.data())->harfbuzzFace();
+ if (!hbFace || !hbFace->supported_scripts[script]) {
+ FM_DEBUG(" OpenType support missing for script\n");
+ fe.reset(0);
+ }
+ }
+ }
+#endif
+
+ if (! fe.isNull()) {
if (fp) {
QFontDef def = request;
if (def.family.isEmpty()) {
@@ -842,32 +854,21 @@ QFontDatabase::findFont(int script, const QFontPrivate *fp,
def.family = def.family.left(def.family.indexOf(QLatin1Char(',')));
}
QFontCache::Key key(def, script);
- QFontCache::instance()->insertEngine(key, fe);
- }
-
-#ifndef QT_NO_FREETYPE
- if (scriptRequiresOpenType(script) && fe->type() == QFontEngine::Freetype) {
- HB_Face hbFace = static_cast<QFontEngineFT *>(fe)->harfbuzzFace();
- if (!hbFace || !hbFace->supported_scripts[script]) {
- FM_DEBUG(" OpenType support missing for script\n");
- delete fe;
- fe = 0;
- }
+ QFontCache::instance()->insertEngine(key, fe.data());
}
-#endif
}
- if (!fe) {
+ if (fe.isNull()) {
if (!request.family.isEmpty())
return 0;
FM_DEBUG("returning box engine");
- fe = new QFontEngineBox(request.pixelSize);
+ fe.reset(new QFontEngineBox(request.pixelSize));
if (fp) {
QFontCache::Key key(request, script);
- QFontCache::instance()->insertEngine(key, fe);
+ QFontCache::instance()->insertEngine(key, fe.data());
}
}
@@ -877,7 +878,7 @@ QFontDatabase::findFont(int script, const QFontPrivate *fp,
fe->fontDef.pointSize = request.pointSize;
}
- return fe;
+ return fe.take();
}
void QFontDatabase::load(const QFontPrivate *d, int script)
@@ -898,7 +899,13 @@ void QFontDatabase::load(const QFontPrivate *d, int script)
if (!d->engineData) {
// create a new one
d->engineData = new QFontEngineData;
- QFontCache::instance()->insertEngineData(key, d->engineData);
+ QT_TRY {
+ QFontCache::instance()->insertEngineData(key, d->engineData);
+ } QT_CATCH(...) {
+ delete d->engineData;
+ d->engineData = 0;
+ QT_RETHROW;
+ }
} else {
d->engineData->ref.ref();
}
@@ -907,8 +914,6 @@ void QFontDatabase::load(const QFontPrivate *d, int script)
// the cached engineData could have already loaded the engine we want
if (d->engineData->engines[script]) return;
- // load the font
- QFontEngine *engine = 0;
// double scale = 1.0; // ### TODO: fix the scale calculations
// list of families to try
@@ -940,20 +945,15 @@ void QFontDatabase::load(const QFontPrivate *d, int script)
// null family means find the first font matching the specified script
family_list << QString();
+ // load the font
+ QFontEngine *engine = 0;
QStringList::ConstIterator it = family_list.constBegin(), end = family_list.constEnd();
- for (; ! engine && it != end; ++it) {
+ for (; !engine && it != end; ++it) {
req.family = *it;
engine = QFontDatabase::findFont(script, d, req);
- if (engine) {
- if (engine->type() != QFontEngine::Box)
- break;
-
- if (! req.family.isEmpty())
- engine = 0;
-
- continue;
- }
+ if (engine && (engine->type()==QFontEngine::Box) && !req.family.isEmpty())
+ engine = 0;
}
engine->ref.ref();
diff --git a/src/gui/text/qfontdatabase_s60.cpp b/src/gui/text/qfontdatabase_s60.cpp
index 416c3d1dcd..8176009602 100644
--- a/src/gui/text/qfontdatabase_s60.cpp
+++ b/src/gui/text/qfontdatabase_s60.cpp
@@ -69,7 +69,7 @@ QFileInfoList alternativeFilePaths(const QString &path, const QStringList &nameF
const QString zDriveString("Z:/");
driveStrings.removeAll(zDriveString);
driveStrings.prepend(zDriveString);
-
+
QStringList uniqueFileNameList;
for (int i = driveStrings.count() - 1; i >= 0; --i) {
const QDir dirOnDrive(driveStrings.at(i) + path);
@@ -107,9 +107,12 @@ private:
QFontDatabaseS60StoreImplementation::QFontDatabaseS60StoreImplementation()
{
m_heap = User::ChunkHeap(NULL, 0x1000, 0x100000);
- m_store = CFontStore::NewL(m_heap);
- m_rasterizer = COpenFontRasterizer::NewL(TUid::Uid(0x101F7F5E));
- m_store->InstallRasterizerL(m_rasterizer);
+ QT_TRAP_THROWING(
+ m_store = CFontStore::NewL(m_heap);
+ m_rasterizer = COpenFontRasterizer::NewL(TUid::Uid(0x101F7F5E));
+ CleanupStack::PushL(m_rasterizer);
+ m_store->InstallRasterizerL(m_rasterizer);
+ CleanupStack::Pop(m_rasterizer););
QStringList filters;
filters.append(QString::fromLatin1("*.ttf"));
@@ -117,14 +120,14 @@ QFontDatabaseS60StoreImplementation::QFontDatabaseS60StoreImplementation()
const QFileInfoList fontFiles = alternativeFilePaths(QString::fromLatin1("resource\\Fonts"), filters);
foreach (const QFileInfo &fontFileInfo, fontFiles) {
const QString fontFile = QDir::toNativeSeparators(fontFileInfo.absoluteFilePath());
- m_store->AddFileL(qt_QString2TPtrC(fontFile));
+ TPtrC fontFilePtr(qt_QString2TPtrC(fontFile));
+ QT_TRAP_THROWING(m_store->AddFileL(fontFilePtr));
}
}
QFontDatabaseS60StoreImplementation::~QFontDatabaseS60StoreImplementation()
{
qDeleteAll(m_extensions);
- delete m_rasterizer;
- delete m_store;
+ // TODO m_store cleanup removed because it was crashing
m_heap->Close();
}
@@ -218,7 +221,7 @@ static void initializeDb()
QS60Data::screenDevice()->TypefaceSupport(typefaceSupport, i);
CFont *font; // We have to get a font instance in order to know all the details
TFontSpec fontSpec(typefaceSupport.iTypeface.iName, 11);
- QS60Data::screenDevice()->GetNearestFontInPixels(font, fontSpec);
+ qt_throwIfError(QS60Data::screenDevice()->GetNearestFontInPixels(font, fontSpec));
if (font->TypeUid() == KCFbsFontUid) {
TOpenFontFaceAttrib faceAttrib;
const CFbsFont *cfbsFont = dynamic_cast<const CFbsFont *>(font);
@@ -390,7 +393,7 @@ void QFontDatabase::load(const QFontPrivate *d, int script)
{
QFontEngine *fe = 0;
QFontDef req = d->request;
-
+
if (!d->engineData) {
const QFontCache::Key key(cleanedFontDef(req), script);
getEngineData(d, key);
diff --git a/src/gui/text/qfontengine.cpp b/src/gui/text/qfontengine.cpp
index 730137eb30..794fd79bdf 100644
--- a/src/gui/text/qfontengine.cpp
+++ b/src/gui/text/qfontengine.cpp
@@ -236,8 +236,10 @@ HB_Font QFontEngine::harfbuzzFont() const
HB_Face QFontEngine::harfbuzzFace() const
{
- if (!hbFace)
+ if (!hbFace) {
hbFace = qHBNewFace(const_cast<QFontEngine *>(this), hb_getSFntTable);
+ Q_CHECK_PTR(hbFace);
+ }
return hbFace;
}
diff --git a/src/gui/text/qfontengine_ft.cpp b/src/gui/text/qfontengine_ft.cpp
index 499d28c2fe..4c4438aba2 100644
--- a/src/gui/text/qfontengine_ft.cpp
+++ b/src/gui/text/qfontengine_ft.cpp
@@ -205,7 +205,9 @@ QFreetypeFace *QFreetypeFace::getFace(const QFontEngine::FaceId &face_id)
FT_Init_FreeType(&freetypeData->library);
QFreetypeFace *freetype = freetypeData->faces.value(face_id, 0);
- if (!freetype) {
+ if (freetype) {
+ freetype->ref.ref();
+ } else {
QScopedPointer<QFreetypeFace> newFreetype(new QFreetypeFace);
FT_Face face;
QFile file(QString::fromUtf8(face_id.filename));
@@ -234,7 +236,8 @@ QFreetypeFace *QFreetypeFace::getFace(const QFontEngine::FaceId &face_id)
newFreetype->face = face;
newFreetype->hbFace = qHBNewFace(face, hb_getSFntTable);
- newFreetype->ref = 0;
+ Q_CHECK_PTR(newFreetype->hbFace);
+ newFreetype->ref = 1;
newFreetype->xsize = 0;
newFreetype->ysize = 0;
newFreetype->matrix.xx = 0x10000;
@@ -289,10 +292,15 @@ QFreetypeFace *QFreetypeFace::getFace(const QFontEngine::FaceId &face_id)
#endif
FT_Set_Charmap(newFreetype->face, newFreetype->unicode_map);
- freetypeData->faces.insert(face_id, newFreetype.data());
+ QT_TRY {
+ freetypeData->faces.insert(face_id, newFreetype.data());
+ } QT_CATCH(...) {
+ newFreetype.take()->release(face_id);
+ // we could return null in principle instead of throwing
+ QT_RETHROW;
+ }
freetype = newFreetype.take();
}
- freetype->ref.ref();
return freetype;
}
@@ -306,7 +314,8 @@ void QFreetypeFace::release(const QFontEngine::FaceId &face_id)
if (charset)
FcCharSetDestroy(charset);
#endif
- freetypeData->faces.take(face_id);
+ if(freetypeData->faces.contains(face_id))
+ freetypeData->faces.take(face_id);
delete this;
}
if (freetypeData->faces.isEmpty()) {
diff --git a/src/gui/text/qfontengine_ft_p.h b/src/gui/text/qfontengine_ft_p.h
index aa1cd0a3f8..0572e92412 100644
--- a/src/gui/text/qfontengine_ft_p.h
+++ b/src/gui/text/qfontengine_ft_p.h
@@ -119,7 +119,7 @@ struct QFreetypeFace
static void addBitmapToPath(FT_GlyphSlot slot, const QFixedPoint &point, QPainterPath *path, bool = false);
private:
- friend class QScopedPointer<QFreetypeFace>;
+ friend class QScopedPointerDeleter<QFreetypeFace>;
QFreetypeFace() : _lock(QMutex::Recursive) {}
~QFreetypeFace() {}
QAtomicInt ref;
diff --git a/src/gui/text/qfontengine_s60.cpp b/src/gui/text/qfontengine_s60.cpp
index f485afbf89..d1e591e8d1 100644
--- a/src/gui/text/qfontengine_s60.cpp
+++ b/src/gui/text/qfontengine_s60.cpp
@@ -130,11 +130,11 @@ QFontEngineS60::QFontEngineS60(const QFontDef &request, const QFontEngineS60Exte
m_fontSizeInPixels = (request.pixelSize >= 0)?
request.pixelSize:pointsToPixels(request.pointSize);
QS60WindowSurface::unlockBitmapHeap();
- m_textRenderBitmap = new (ELeave) CFbsBitmap();
+ m_textRenderBitmap = q_check_ptr(new CFbsBitmap()); // CBase derived object needs check on new
const TSize bitmapSize(1, 1); // It is just a dummy bitmap that I need to keep the font alive (or maybe not)
- User::LeaveIfError(m_textRenderBitmap->Create(bitmapSize, EGray256));
- m_textRenderBitmapDevice = CFbsBitmapDevice::NewL(m_textRenderBitmap);
- User::LeaveIfError(m_textRenderBitmapDevice->CreateContext(m_textRenderBitmapGc));
+ qt_throwIfError(m_textRenderBitmap->Create(bitmapSize, EGray256));
+ QT_TRAP_THROWING(m_textRenderBitmapDevice = CFbsBitmapDevice::NewL(m_textRenderBitmap));
+ qt_throwIfError(m_textRenderBitmapDevice->CreateContext(m_textRenderBitmapGc));
cache_cost = sizeof(QFontEngineS60) + bitmapSize.iHeight * bitmapSize.iWidth * 4;
TFontSpec fontSpec(qt_QString2TPtrC(request.family), m_fontSizeInPixels);
diff --git a/src/gui/text/qfontengine_win.cpp b/src/gui/text/qfontengine_win.cpp
index c6717e3a35..c42326f68b 100644
--- a/src/gui/text/qfontengine_win.cpp
+++ b/src/gui/text/qfontengine_win.cpp
@@ -390,7 +390,7 @@ bool QFontEngineWin::stringToCMap(const QChar *str, int len, QGlyphLayout *glyph
unsigned int glyph = glyphs->glyphs[glyph_pos];
if(int(glyph) >= designAdvancesSize) {
int newSize = (glyph + 256) >> 8 << 8;
- designAdvances = (QFixed *)realloc(designAdvances, newSize*sizeof(QFixed));
+ designAdvances = q_check_ptr((QFixed *)realloc(designAdvances, newSize*sizeof(QFixed)));
for(int i = designAdvancesSize; i < newSize; ++i)
designAdvances[i] = -1000000;
designAdvancesSize = newSize;
@@ -423,7 +423,8 @@ bool QFontEngineWin::stringToCMap(const QChar *str, int len, QGlyphLayout *glyph
if (glyph >= widthCacheSize) {
int newSize = (glyph + 256) >> 8 << 8;
- widthCache = (unsigned char *)realloc(widthCache, newSize*sizeof(QFixed));
+ widthCache = q_check_ptr((unsigned char *)realloc(widthCache,
+ newSize*sizeof(QFixed)));
memset(widthCache + widthCacheSize, 0, newSize - widthCacheSize);
widthCacheSize = newSize;
}
@@ -463,7 +464,8 @@ void QFontEngineWin::recalcAdvances(QGlyphLayout *glyphs, QTextEngine::ShaperFla
unsigned int glyph = glyphs->glyphs[i];
if(int(glyph) >= designAdvancesSize) {
int newSize = (glyph + 256) >> 8 << 8;
- designAdvances = (QFixed *)realloc(designAdvances, newSize*sizeof(QFixed));
+ designAdvances = q_check_ptr((QFixed *)realloc(designAdvances,
+ newSize*sizeof(QFixed)));
for(int i = designAdvancesSize; i < newSize; ++i)
designAdvances[i] = -1000000;
designAdvancesSize = newSize;
@@ -490,7 +492,8 @@ void QFontEngineWin::recalcAdvances(QGlyphLayout *glyphs, QTextEngine::ShaperFla
if (glyph >= widthCacheSize) {
int newSize = (glyph + 256) >> 8 << 8;
- widthCache = (unsigned char *)realloc(widthCache, newSize*sizeof(QFixed));
+ widthCache = q_check_ptr((unsigned char *)realloc(widthCache,
+ newSize*sizeof(QFixed)));
memset(widthCache + widthCacheSize, 0, newSize - widthCacheSize);
widthCacheSize = newSize;
}
diff --git a/src/gui/text/qfragmentmap_p.h b/src/gui/text/qfragmentmap_p.h
index c2ba2b4f3c..9c2a6736e0 100644
--- a/src/gui/text/qfragmentmap_p.h
+++ b/src/gui/text/qfragmentmap_p.h
@@ -222,13 +222,19 @@ QFragmentMapData<Fragment>::QFragmentMapData()
template <class Fragment>
void QFragmentMapData<Fragment>::init()
{
- fragments = (Fragment *)malloc(64*fragmentSize);
+ // the following code will realloc an existing fragment or create a new one.
+ // it will also ignore errors when shrinking an existing fragment.
+ Fragment *newFragments = (Fragment *)realloc(fragments, 64*fragmentSize);
+ if (newFragments) {
+ fragments = newFragments;
+ head->allocated = 64;
+ }
Q_CHECK_PTR(fragments);
+
head->tag = (((quint32)'p') << 24) | (((quint32)'m') << 16) | (((quint32)'a') << 8) | 'p'; //TAG('p', 'm', 'a', 'p');
head->root = 0;
head->freelist = 1;
head->node_count = 0;
- head->allocated = 64;
// mark all items to the right as unused
F(head->freelist).right = 0;
}
@@ -236,7 +242,7 @@ void QFragmentMapData<Fragment>::init()
template <class Fragment>
QFragmentMapData<Fragment>::~QFragmentMapData()
{
- free(head);
+ free(fragments);
}
template <class Fragment>
@@ -800,7 +806,6 @@ public:
inline void clear() {
for (Iterator it = begin(); !it.atEnd(); ++it)
it.value()->free();
- ::free(data.head);
data.init();
}
diff --git a/src/gui/text/qsyntaxhighlighter.h b/src/gui/text/qsyntaxhighlighter.h
index ee249b8508..bfbb533ecf 100644
--- a/src/gui/text/qsyntaxhighlighter.h
+++ b/src/gui/text/qsyntaxhighlighter.h
@@ -66,7 +66,7 @@ class QTextEdit;
class Q_GUI_EXPORT QSyntaxHighlighter : public QObject
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QSyntaxHighlighter)
+ Q_DECLARE_SCOPED_PRIVATE(QSyntaxHighlighter)
public:
QSyntaxHighlighter(QObject *parent);
QSyntaxHighlighter(QTextDocument *parent);
diff --git a/src/gui/text/qtextcontrol_p.h b/src/gui/text/qtextcontrol_p.h
index eb0d749d4c..59693ac9db 100644
--- a/src/gui/text/qtextcontrol_p.h
+++ b/src/gui/text/qtextcontrol_p.h
@@ -86,7 +86,7 @@ class QTimerEvent;
class Q_GUI_EXPORT QTextControl : public QObject
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QTextControl)
+ Q_DECLARE_SCOPED_PRIVATE(QTextControl)
#ifndef QT_NO_TEXTHTMLPARSER
Q_PROPERTY(QString html READ toHtml WRITE setHtml NOTIFY textChanged USER true)
#endif
diff --git a/src/gui/text/qtextdocument.h b/src/gui/text/qtextdocument.h
index 40b662100e..cfbb558ec3 100644
--- a/src/gui/text/qtextdocument.h
+++ b/src/gui/text/qtextdocument.h
@@ -286,7 +286,7 @@ public:
QTextDocumentPrivate *docHandle() const;
private:
Q_DISABLE_COPY(QTextDocument)
- Q_DECLARE_PRIVATE(QTextDocument)
+ Q_DECLARE_SCOPED_PRIVATE(QTextDocument)
friend class QTextObjectPrivate;
};
diff --git a/src/gui/text/qtextdocument_p.cpp b/src/gui/text/qtextdocument_p.cpp
index e66b07c8a4..88afe4a72f 100644
--- a/src/gui/text/qtextdocument_p.cpp
+++ b/src/gui/text/qtextdocument_p.cpp
@@ -188,6 +188,7 @@ QTextDocumentPrivate::QTextDocumentPrivate()
docChangeOldLength(0),
docChangeLength(0),
framesDirty(true),
+ rtFrame(0),
initialBlockCharFormatIndex(-1) // set correctly later in init()
{
editBlock = 0;
@@ -218,7 +219,6 @@ QTextDocumentPrivate::QTextDocumentPrivate()
void QTextDocumentPrivate::init()
{
- rtFrame = 0;
framesDirty = false;
bool undoState = undoEnabled;
@@ -241,42 +241,48 @@ void QTextDocumentPrivate::clear()
}
QList<QTextCursorPrivate *>oldCursors = cursors;
- cursors.clear();
- changedCursors.clear();
-
- QMap<int, QTextObject *>::Iterator objectIt = objects.begin();
- while (objectIt != objects.end()) {
- if (*objectIt != rtFrame) {
- delete *objectIt;
- objectIt = objects.erase(objectIt);
- } else {
- ++objectIt;
+ QT_TRY{
+ cursors.clear();
+ changedCursors.clear();
+
+ QMap<int, QTextObject *>::Iterator objectIt = objects.begin();
+ while (objectIt != objects.end()) {
+ if (*objectIt != rtFrame) {
+ delete *objectIt;
+ objectIt = objects.erase(objectIt);
+ } else {
+ ++objectIt;
+ }
}
- }
- // also clear out the remaining root frame pointer
- // (we're going to delete the object further down)
- objects.clear();
+ // also clear out the remaining root frame pointer
+ // (we're going to delete the object further down)
+ objects.clear();
- title.clear();
- undoState = 0;
- truncateUndoStack();
- text = QString();
- unreachableCharacterCount = 0;
- modifiedState = 0;
- modified = false;
- formats = QTextFormatCollection();
- int len = fragments.length();
- fragments.clear();
- blocks.clear();
- cachedResources.clear();
- delete rtFrame;
- init();
- cursors = oldCursors;
- inContentsChange = true;
- q->contentsChange(0, len, 0);
- inContentsChange = false;
- if (lout)
- lout->documentChanged(0, len, 0);
+ title.clear();
+ undoState = 0;
+ truncateUndoStack();
+ text = QString();
+ unreachableCharacterCount = 0;
+ modifiedState = 0;
+ modified = false;
+ formats = QTextFormatCollection();
+ int len = fragments.length();
+ fragments.clear();
+ blocks.clear();
+ cachedResources.clear();
+ delete rtFrame;
+ rtFrame = 0;
+ init();
+ cursors = oldCursors;
+ inContentsChange = true;
+ q->contentsChange(0, len, 0);
+ inContentsChange = false;
+ if (lout)
+ lout->documentChanged(0, len, 0);
+ } QT_CATCH(...) {
+ cursors = oldCursors; // at least recover the cursors
+ QT_RETHROW;
+ }
}
QTextDocumentPrivate::~QTextDocumentPrivate()
diff --git a/src/gui/text/qtextdocumentlayout_p.h b/src/gui/text/qtextdocumentlayout_p.h
index 41507b0e97..4dc18d0976 100644
--- a/src/gui/text/qtextdocumentlayout_p.h
+++ b/src/gui/text/qtextdocumentlayout_p.h
@@ -65,7 +65,7 @@ class QTextDocumentLayoutPrivate;
class Q_AUTOTEST_EXPORT QTextDocumentLayout : public QAbstractTextDocumentLayout
{
- Q_DECLARE_PRIVATE(QTextDocumentLayout)
+ Q_DECLARE_SCOPED_PRIVATE(QTextDocumentLayout)
Q_OBJECT
Q_PROPERTY(int cursorWidth READ cursorWidth WRITE setCursorWidth)
Q_PROPERTY(qreal idealWidth READ idealWidth)
diff --git a/src/gui/text/qtextformat.cpp b/src/gui/text/qtextformat.cpp
index a3dd83ebad..7f82365a73 100644
--- a/src/gui/text/qtextformat.cpp
+++ b/src/gui/text/qtextformat.cpp
@@ -3041,12 +3041,18 @@ int QTextFormatCollection::indexForFormat(const QTextFormat &format)
int idx = formats.size();
formats.append(format);
- QTextFormat &f = formats.last();
- if (!f.d)
- f.d = new QTextFormatPrivate;
- f.d->resolveFont(defaultFnt);
+ QT_TRY{
+ QTextFormat &f = formats.last();
+ if (!f.d)
+ f.d = new QTextFormatPrivate;
+ f.d->resolveFont(defaultFnt);
- hashes.insert(hash);
+ hashes.insert(hash);
+
+ } QT_CATCH(...) {
+ formats.pop_back();
+ QT_RETHROW;
+ }
return idx;
}
diff --git a/src/gui/text/qtextlist.h b/src/gui/text/qtextlist.h
index 04f1838540..3d07be8917 100644
--- a/src/gui/text/qtextlist.h
+++ b/src/gui/text/qtextlist.h
@@ -81,7 +81,7 @@ public:
private:
Q_DISABLE_COPY(QTextList)
- Q_DECLARE_PRIVATE(QTextList)
+ Q_DECLARE_SCOPED_PRIVATE(QTextList)
};
inline void QTextList::setFormat(const QTextListFormat &aformat)
diff --git a/src/gui/text/qtextobject.h b/src/gui/text/qtextobject.h
index 4f239b2c5b..f22f77cbe1 100644
--- a/src/gui/text/qtextobject.h
+++ b/src/gui/text/qtextobject.h
@@ -84,7 +84,7 @@ protected:
QTextObject(QTextObjectPrivate &p, QTextDocument *doc);
private:
- Q_DECLARE_PRIVATE(QTextObject)
+ Q_DECLARE_SCOPED_PRIVATE(QTextObject)
Q_DISABLE_COPY(QTextObject)
friend class QTextDocumentPrivate;
};
@@ -107,7 +107,7 @@ protected:
protected:
QTextBlockGroup(QTextBlockGroupPrivate &p, QTextDocument *doc);
private:
- Q_DECLARE_PRIVATE(QTextBlockGroup)
+ Q_DECLARE_SCOPED_PRIVATE(QTextBlockGroup)
Q_DISABLE_COPY(QTextBlockGroup)
friend class QTextDocumentPrivate;
};
@@ -182,7 +182,7 @@ protected:
QTextFrame(QTextFramePrivate &p, QTextDocument *doc);
private:
friend class QTextDocumentPrivate;
- Q_DECLARE_PRIVATE(QTextFrame)
+ Q_DECLARE_SCOPED_PRIVATE(QTextFrame)
Q_DISABLE_COPY(QTextFrame)
};
Q_DECLARE_TYPEINFO(QTextFrame::iterator, Q_MOVABLE_TYPE);
diff --git a/src/gui/text/qtexttable.cpp b/src/gui/text/qtexttable.cpp
index 11ea2a72f7..160eb35021 100644
--- a/src/gui/text/qtexttable.cpp
+++ b/src/gui/text/qtexttable.cpp
@@ -446,9 +446,7 @@ void QTextTablePrivate::update() const
nRows = (cells.size() + nCols-1)/nCols;
// qDebug(">>>> QTextTablePrivate::update, nRows=%d, nCols=%d", nRows, nCols);
- int* newGrid = (int *)realloc(grid, nRows*nCols*sizeof(int));
- Q_CHECK_PTR(newGrid);
- grid = newGrid;
+ grid = q_check_ptr((int *)realloc(grid, nRows*nCols*sizeof(int)));
memset(grid, 0, nRows*nCols*sizeof(int));
QTextDocumentPrivate *p = pieceTable;
@@ -472,9 +470,7 @@ void QTextTablePrivate::update() const
cellIndices[i] = cell;
if (r + rowspan > nRows) {
- newGrid = (int *)realloc(grid, sizeof(int)*(r + rowspan)*nCols);
- Q_CHECK_PTR(newGrid);
- grid = newGrid;
+ grid = q_check_ptr((int *)realloc(grid, sizeof(int)*(r + rowspan)*nCols));
memset(grid + (nRows*nCols), 0, sizeof(int)*(r+rowspan-nRows)*nCols);
nRows = r + rowspan;
}
diff --git a/src/gui/text/qtexttable.h b/src/gui/text/qtexttable.h
index 612c71cba6..2deb3fa05d 100644
--- a/src/gui/text/qtexttable.h
+++ b/src/gui/text/qtexttable.h
@@ -134,7 +134,7 @@ public:
private:
Q_DISABLE_COPY(QTextTable)
- Q_DECLARE_PRIVATE(QTextTable)
+ Q_DECLARE_SCOPED_PRIVATE(QTextTable)
friend class QTextTableCell;
};
diff --git a/src/gui/util/qcompleter.cpp b/src/gui/util/qcompleter.cpp
index b823100538..80678aa6ef 100644
--- a/src/gui/util/qcompleter.cpp
+++ b/src/gui/util/qcompleter.cpp
@@ -158,7 +158,7 @@ QT_BEGIN_NAMESPACE
QCompletionModel::QCompletionModel(QCompleterPrivate *c, QObject *parent)
: QAbstractProxyModel(*new QCompletionModelPrivate, parent),
- c(c), engine(0), showAll(false)
+ c(c), showAll(false)
{
createEngine();
}
@@ -208,11 +208,10 @@ void QCompletionModel::createEngine()
break;
}
- delete engine;
if (sortedEngine)
- engine = new QSortedModelEngine(c);
+ engine.reset(new QSortedModelEngine(c));
else
- engine = new QUnsortedModelEngine(c);
+ engine.reset(new QUnsortedModelEngine(c));
}
QModelIndex QCompletionModel::mapToSource(const QModelIndex& index) const
diff --git a/src/gui/util/qcompleter.h b/src/gui/util/qcompleter.h
index a419154216..ac8c0c6cce 100644
--- a/src/gui/util/qcompleter.h
+++ b/src/gui/util/qcompleter.h
@@ -154,7 +154,7 @@ Q_SIGNALS:
private:
Q_DISABLE_COPY(QCompleter)
- Q_DECLARE_PRIVATE(QCompleter)
+ Q_DECLARE_SCOPED_PRIVATE(QCompleter)
Q_PRIVATE_SLOT(d_func(), void _q_complete(QModelIndex))
Q_PRIVATE_SLOT(d_func(), void _q_completionSelected(const QItemSelection&))
diff --git a/src/gui/util/qcompleter_p.h b/src/gui/util/qcompleter_p.h
index 288f5319e3..745afff1f5 100644
--- a/src/gui/util/qcompleter_p.h
+++ b/src/gui/util/qcompleter_p.h
@@ -214,7 +214,6 @@ class QCompletionModel : public QAbstractProxyModel
public:
QCompletionModel(QCompleterPrivate *c, QObject *parent);
- ~QCompletionModel() { delete engine; }
void createEngine();
void setFiltered(bool);
@@ -237,10 +236,10 @@ public:
QModelIndex mapFromSource(const QModelIndex& sourceIndex) const;
QCompleterPrivate *c;
- QCompletionEngine *engine;
+ QScopedPointer<QCompletionEngine> engine;
bool showAll;
- Q_DECLARE_PRIVATE(QCompletionModel)
+ Q_DECLARE_SCOPED_PRIVATE(QCompletionModel)
signals:
void rowsAdded();
diff --git a/src/gui/util/qdesktopservices.cpp b/src/gui/util/qdesktopservices.cpp
index eb2d92ef1f..18a0a73331 100644
--- a/src/gui/util/qdesktopservices.cpp
+++ b/src/gui/util/qdesktopservices.cpp
@@ -287,10 +287,10 @@ void QDesktopServices::unsetUrlHandler(const QString &scheme)
\note The storage location returned can be a directory that does not exist; i.e., it
may need to be created by the system or the user.
-
+
\note On Symbian OS, DataLocation and ApplicationsLocation always point to appropriate
folder on same drive with executable. FontsLocation always points to folder on ROM drive.
- Rest of the standard locations point to folder on same drive with executable, except
+ Rest of the standard locations point to folder on same drive with executable, except
that if executable is in ROM the folder from C drive is returned.
\note On Mac OS X, DataLocation does not include QCoreApplication::organizationName.
diff --git a/src/gui/util/qdesktopservices_s60.cpp b/src/gui/util/qdesktopservices_s60.cpp
index 77cf254989..565dd6e917 100644
--- a/src/gui/util/qdesktopservices_s60.cpp
+++ b/src/gui/util/qdesktopservices_s60.cpp
@@ -74,8 +74,31 @@ _LIT(KBrowserPrefix, "4 " );
_LIT(KFontsDir, "z:\\resource\\Fonts\\");
const TUid KUidBrowser = { 0x10008D39 };
-static void handleMailtoSchemeL(const QUrl &url)
+template<class R>
+class QAutoClose
{
+public:
+ QAutoClose(R& aObj) : mPtr(&aObj) {}
+ ~QAutoClose()
+ {
+ if (mPtr)
+ mPtr->Close();
+ }
+ void Forget()
+ {
+ mPtr = 0;
+ }
+private:
+ QAutoClose(const QAutoClose&);
+ QAutoClose& operator=(const QAutoClose&);
+private:
+ R* mPtr;
+};
+
+static void handleMailtoSchemeLX(const QUrl &url)
+{
+ // this function has many intermingled leaves and throws. Qt and Symbian objects do not have
+ // destructor dependencies, and cleanup object is used to prevent cleanup stack dependency on stack.
QString recipient = url.path();
QString subject = url.queryItemValue("subject");
QString body = url.queryItemValue("body");
@@ -84,15 +107,15 @@ static void handleMailtoSchemeL(const QUrl &url)
QString bcc = url.queryItemValue("bcc");
// these fields might have comma separated addresses
- QStringList recipients = recipient.split(",");
- QStringList tos = to.split(",");
- QStringList ccs = cc.split(",");
- QStringList bccs = bcc.split(",");
+ QStringList recipients = recipient.split(",", QString::SkipEmptyParts);
+ QStringList tos = to.split(",", QString::SkipEmptyParts);
+ QStringList ccs = cc.split(",", QString::SkipEmptyParts);
+ QStringList bccs = bcc.split(",", QString::SkipEmptyParts);
- RSendAs sendAs;
- User::LeaveIfError(sendAs.Connect());
- CleanupClosePushL(sendAs);
+ RSendAs sendAs;
+ User::LeaveIfError(sendAs.Connect());
+ QAutoClose<RSendAs> sendAsCleanup(sendAs);
CSendAsAccounts* accounts = CSendAsAccounts::NewL();
@@ -101,60 +124,57 @@ static void handleMailtoSchemeL(const QUrl &url)
TInt count = accounts->Count();
CleanupStack::PopAndDestroy(accounts);
- if(!count) {
+ if(!count) {
// TODO: we should try to create account if count == 0
// CSendUi would provide account creation service for us, but it requires ridicilous
// capabilities: LocalServices NetworkServices ReadDeviceData ReadUserData WriteDeviceData WriteUserData
- User::Leave(KErrNotSupported);
- } else {
- RSendAsMessage sendAsMessage;
+ User::Leave(KErrNotSupported);
+ } else {
+ RSendAsMessage sendAsMessage;
sendAsMessage.CreateL(sendAs, KUidMsgTypeSMTP);
- CleanupClosePushL(sendAsMessage);
-
-
+ QAutoClose<RSendAsMessage> sendAsMessageCleanup(sendAsMessage);
+
+
// Subject
sendAsMessage.SetSubjectL(qt_QString2TPtrC(subject));
-
+
// Body
sendAsMessage.SetBodyTextL(qt_QString2TPtrC(body));
-
+
// To
foreach(QString item, recipients)
sendAsMessage.AddRecipientL(qt_QString2TPtrC(item), RSendAsMessage::ESendAsRecipientTo );
-
+
foreach(QString item, tos)
sendAsMessage.AddRecipientL(qt_QString2TPtrC(item), RSendAsMessage::ESendAsRecipientTo );
-
+
// Cc
foreach(QString item, ccs)
sendAsMessage.AddRecipientL(qt_QString2TPtrC(item), RSendAsMessage::ESendAsRecipientCc );
-
+
// Bcc
foreach(QString item, bccs)
sendAsMessage.AddRecipientL(qt_QString2TPtrC(item), RSendAsMessage::ESendAsRecipientBcc );
-
+
// send the message
sendAsMessage.LaunchEditorAndCloseL();
-
- // sendAsMessage (already closed)
- CleanupStack::Pop();
- }
- // sendAs
- CleanupStack::PopAndDestroy();
+ // sendAsMessage is already closed
+ sendAsMessageCleanup.Forget();
+ }
}
static bool handleMailtoScheme(const QUrl &url)
{
- TRAPD(err, handleMailtoSchemeL(url));
+ TRAPD(err, QT_TRYCATCH_LEAVING(handleMailtoSchemeLX(url)));
return err ? false : true;
}
static void handleOtherSchemesL(const TDesC& aUrl)
{
// Other schemes are at the moment passed to WEB browser
- HBufC* buf16 = HBufC::NewLC( aUrl.Length() + KBrowserPrefix.iTypeLength );
- buf16->Des().Copy( KBrowserPrefix ); // Prefix used to launch correct browser view
- buf16->Des().Append( aUrl );
+ HBufC* buf16 = HBufC::NewLC( aUrl.Length() + KBrowserPrefix.iTypeLength );
+ buf16->Des().Copy( KBrowserPrefix ); // Prefix used to launch correct browser view
+ buf16->Des().Append( aUrl );
TApaTaskList taskList( CEikonEnv::Static()->WsSession() );
TApaTask task = taskList.FindApp( KUidBrowser );
@@ -169,12 +189,12 @@ static void handleOtherSchemesL(const TDesC& aUrl)
else
{
// Start a new browser instance
- RApaLsSession appArcSession;
- User::LeaveIfError( appArcSession.Connect() );
- CleanupClosePushL<RApaLsSession>( appArcSession );
- TThreadId id;
+ RApaLsSession appArcSession;
+ User::LeaveIfError( appArcSession.Connect() );
+ CleanupClosePushL<RApaLsSession>( appArcSession );
+ TThreadId id;
appArcSession.StartDocument( *buf16, KUidBrowser , id );
- CleanupStack::PopAndDestroy(); // appArcSession
+ CleanupStack::PopAndDestroy(); // appArcSession
}
CleanupStack::PopAndDestroy( buf16 );
@@ -182,7 +202,9 @@ static void handleOtherSchemesL(const TDesC& aUrl)
static bool handleOtherSchemes(const QUrl &url)
{
- TRAPD( err, handleOtherSchemesL(qt_QString2TPtrC(url.toEncoded())));
+ QString encUrl(url.toEncoded());
+ TPtrC urlPtr(qt_QString2TPtrC(encUrl));
+ TRAPD( err, handleOtherSchemesL(urlPtr));
return err ? false : true;
}
@@ -233,8 +255,8 @@ static void openDocumentL(const TDesC& aUrl)
{
#ifndef USE_DOCUMENTHANDLER
// Start app associated to file MIME type by using RApaLsSession
- // Apparc base method cannot be used to open app in embedded mode,
- // but seems to be most stable way at the moment
+ // Apparc base method cannot be used to open app in embedded mode,
+ // but seems to be most stable way at the moment
RApaLsSession appArcSession;
User::LeaveIfError( appArcSession.Connect() );
CleanupClosePushL<RApaLsSession>( appArcSession );
@@ -242,25 +264,25 @@ static void openDocumentL(const TDesC& aUrl)
// ESwitchFiles means do not start another instance
// Leaves if file does not exist, leave is trapped in openDocument and false returned to user.
User::LeaveIfError( appArcSession.StartDocument( aUrl, id,
- RApaLsSession::ESwitchFiles ) ); // ELaunchNewApp
+ RApaLsSession::ESwitchFiles ) ); // ELaunchNewApp
CleanupStack::PopAndDestroy(); // appArcSession
#else
// This is an alternative way to launch app associated to MIME type
- // CDocumentHandler would support opening apps in embedded mode,
- // but our Qt application window group seems to always get switched on top of embedded one
- // -> Cannot use menus etc of embedded app -> used
-
- CDocumentHandler* docHandler = CDocumentHandler::NewLC();
- TDataType temp;
- //Standalone file opening fails for some file-types at least in S60 3.1 emulator
- //For example .txt file fails with KErrAlreadyInUse and music files with KERN-EXEC 0
- //Workaround is to use OpenFileEmbeddedL
- //docHandler->OpenFileL(aUrl, temp);
-
- // Opening file with CDocumentHandler will leave if file does not exist
- // Leave is trapped in openDocument and false returned to user.
- docHandler->OpenFileEmbeddedL(aUrl, temp);
- CleanupStack::PopAndDestroy(docHandler);
+ // CDocumentHandler would support opening apps in embedded mode,
+ // but our Qt application window group seems to always get switched on top of embedded one
+ // -> Cannot use menus etc of embedded app -> used
+
+ CDocumentHandler* docHandler = CDocumentHandler::NewLC();
+ TDataType temp;
+ //Standalone file opening fails for some file-types at least in S60 3.1 emulator
+ //For example .txt file fails with KErrAlreadyInUse and music files with KERN-EXEC 0
+ //Workaround is to use OpenFileEmbeddedL
+ //docHandler->OpenFileL(aUrl, temp);
+
+ // Opening file with CDocumentHandler will leave if file does not exist
+ // Leave is trapped in openDocument and false returned to user.
+ docHandler->OpenFileEmbeddedL(aUrl, temp);
+ CleanupStack::PopAndDestroy(docHandler);
#endif
}
@@ -273,10 +295,12 @@ static void openDocumentL(const TDesC& aUrl)
// wide range of schemes and is extensible by plugins
static bool handleUrl(const QUrl &url)
{
- if (!url.isValid())
- return false;
+ if (!url.isValid())
+ return false;
- TRAPD( err, handleUrlL(qt_QString2TPtrC(url.toString())));
+ QString urlString(url.toString());
+ TPtrC urlPtr(qt_QString2TPtrC(urlString));
+ TRAPD( err, handleUrlL(urlPtr));
return err ? false : true;
}
@@ -289,12 +313,12 @@ static void handleUrlL(const TDesC& aUrl)
}
static bool launchWebBrowser(const QUrl &url)
{
- return handleUrl(url);
+ return handleUrl(url);
}
static bool openDocument(const QUrl &file)
{
- return handleUrl(url);
+ return handleUrl(url);
}
#endif
@@ -316,7 +340,8 @@ static bool openDocument(const QUrl &file)
QString filePath = file.toLocalFile();
filePath = QDir::toNativeSeparators(filePath);
- TRAPD(err, openDocumentL(qt_QString2TPtrC(filePath)));
+ TPtrC filePathPtr(qt_QString2TPtrC(filePath));
+ TRAPD(err, openDocumentL(filePathPtr));
return err ? false : true;
}
@@ -366,7 +391,7 @@ QString QDesktopServices::storageLocation(StandardLocation type)
//return QDir::homePath(); break;
break;
case DataLocation:
- CEikonEnv::Static()->FsSession().PrivatePath( path );
+ CEikonEnv::Static()->FsSession().PrivatePath( path );
// TODO: Should we actually return phone mem if data is on ROM?
path.Insert( 0, exeDrive().Name() );
break;
diff --git a/src/gui/util/qsystemtrayicon.h b/src/gui/util/qsystemtrayicon.h
index 0f1e2d2f86..ac90487766 100644
--- a/src/gui/util/qsystemtrayicon.h
+++ b/src/gui/util/qsystemtrayicon.h
@@ -117,7 +117,7 @@ protected:
private:
Q_DISABLE_COPY(QSystemTrayIcon)
- Q_DECLARE_PRIVATE(QSystemTrayIcon)
+ Q_DECLARE_SCOPED_PRIVATE(QSystemTrayIcon)
friend class QSystemTrayIconSys;
friend class QBalloonTip;
diff --git a/src/gui/util/qundogroup.h b/src/gui/util/qundogroup.h
index ddab6e0baf..24d4e1238c 100644
--- a/src/gui/util/qundogroup.h
+++ b/src/gui/util/qundogroup.h
@@ -60,7 +60,7 @@ QT_MODULE(Gui)
class Q_GUI_EXPORT QUndoGroup : public QObject
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QUndoGroup)
+ Q_DECLARE_SCOPED_PRIVATE(QUndoGroup)
public:
explicit QUndoGroup(QObject *parent = 0);
diff --git a/src/gui/util/qundostack.h b/src/gui/util/qundostack.h
index 8efad0e253..8ad4b198ec 100644
--- a/src/gui/util/qundostack.h
+++ b/src/gui/util/qundostack.h
@@ -90,7 +90,7 @@ private:
class Q_GUI_EXPORT QUndoStack : public QObject
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QUndoStack)
+ Q_DECLARE_SCOPED_PRIVATE(QUndoStack)
Q_PROPERTY(bool active READ isActive WRITE setActive)
Q_PROPERTY(int undoLimit READ undoLimit WRITE setUndoLimit)
diff --git a/src/gui/util/qundoview.h b/src/gui/util/qundoview.h
index fa0c163e0b..293c0c235f 100644
--- a/src/gui/util/qundoview.h
+++ b/src/gui/util/qundoview.h
@@ -61,7 +61,7 @@ QT_MODULE(Gui)
class Q_GUI_EXPORT QUndoView : public QListView
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QUndoView)
+ Q_DECLARE_SCOPED_PRIVATE(QUndoView)
Q_PROPERTY(QString emptyLabel READ emptyLabel WRITE setEmptyLabel)
Q_PROPERTY(QIcon cleanIcon READ cleanIcon WRITE setCleanIcon)
diff --git a/src/gui/widgets/qabstractbutton.h b/src/gui/widgets/qabstractbutton.h
index 29e9bf94ac..9e334796f3 100644
--- a/src/gui/widgets/qabstractbutton.h
+++ b/src/gui/widgets/qabstractbutton.h
@@ -168,7 +168,7 @@ protected:
QAbstractButton(QAbstractButtonPrivate &dd, QWidget* parent = 0);
private:
- Q_DECLARE_PRIVATE(QAbstractButton)
+ Q_DECLARE_SCOPED_PRIVATE(QAbstractButton)
Q_DISABLE_COPY(QAbstractButton)
friend class QButtonGroup;
};
diff --git a/src/gui/widgets/qabstractscrollarea.h b/src/gui/widgets/qabstractscrollarea.h
index 3ec41d1e33..9a7e844958 100644
--- a/src/gui/widgets/qabstractscrollarea.h
+++ b/src/gui/widgets/qabstractscrollarea.h
@@ -123,7 +123,7 @@ protected:
virtual void scrollContentsBy(int dx, int dy);
private:
- Q_DECLARE_PRIVATE(QAbstractScrollArea)
+ Q_DECLARE_SCOPED_PRIVATE(QAbstractScrollArea)
Q_DISABLE_COPY(QAbstractScrollArea)
Q_PRIVATE_SLOT(d_func(), void _q_hslide(int))
Q_PRIVATE_SLOT(d_func(), void _q_vslide(int))
diff --git a/src/gui/widgets/qabstractslider.h b/src/gui/widgets/qabstractslider.h
index 7e03b6ead3..6517944068 100644
--- a/src/gui/widgets/qabstractslider.h
+++ b/src/gui/widgets/qabstractslider.h
@@ -174,7 +174,7 @@ protected:
private:
Q_DISABLE_COPY(QAbstractSlider)
- Q_DECLARE_PRIVATE(QAbstractSlider)
+ Q_DECLARE_SCOPED_PRIVATE(QAbstractSlider)
};
QT_END_NAMESPACE
diff --git a/src/gui/widgets/qabstractspinbox.h b/src/gui/widgets/qabstractspinbox.h
index e65f27b557..2e8f7f9166 100644
--- a/src/gui/widgets/qabstractspinbox.h
+++ b/src/gui/widgets/qabstractspinbox.h
@@ -165,7 +165,7 @@ private:
Q_PRIVATE_SLOT(d_func(), void _q_editorTextChanged(const QString &))
Q_PRIVATE_SLOT(d_func(), void _q_editorCursorPositionChanged(int, int))
- Q_DECLARE_PRIVATE(QAbstractSpinBox)
+ Q_DECLARE_SCOPED_PRIVATE(QAbstractSpinBox)
Q_DISABLE_COPY(QAbstractSpinBox)
};
Q_DECLARE_OPERATORS_FOR_FLAGS(QAbstractSpinBox::StepEnabled)
diff --git a/src/gui/widgets/qbuttongroup.h b/src/gui/widgets/qbuttongroup.h
index 708c91ce0e..fca1524e7a 100644
--- a/src/gui/widgets/qbuttongroup.h
+++ b/src/gui/widgets/qbuttongroup.h
@@ -98,7 +98,7 @@ public:
private:
Q_DISABLE_COPY(QButtonGroup)
- Q_DECLARE_PRIVATE(QButtonGroup)
+ Q_DECLARE_SCOPED_PRIVATE(QButtonGroup)
friend class QAbstractButton;
friend class QAbstractButtonPrivate;
};
diff --git a/src/gui/widgets/qcalendarwidget.h b/src/gui/widgets/qcalendarwidget.h
index f567180495..edd1511c37 100644
--- a/src/gui/widgets/qcalendarwidget.h
+++ b/src/gui/widgets/qcalendarwidget.h
@@ -179,7 +179,7 @@ Q_SIGNALS:
void currentPageChanged(int year, int month);
private:
- Q_DECLARE_PRIVATE(QCalendarWidget)
+ Q_DECLARE_SCOPED_PRIVATE(QCalendarWidget)
Q_DISABLE_COPY(QCalendarWidget)
Q_PRIVATE_SLOT(d_func(), void _q_slotShowDate(const QDate &date))
diff --git a/src/gui/widgets/qcheckbox.h b/src/gui/widgets/qcheckbox.h
index 1d61783fa5..cd41626c66 100644
--- a/src/gui/widgets/qcheckbox.h
+++ b/src/gui/widgets/qcheckbox.h
@@ -102,7 +102,7 @@ public:
#endif
private:
- Q_DECLARE_PRIVATE(QCheckBox)
+ Q_DECLARE_SCOPED_PRIVATE(QCheckBox)
Q_DISABLE_COPY(QCheckBox)
};
diff --git a/src/gui/widgets/qcombobox.cpp b/src/gui/widgets/qcombobox.cpp
index b6fae10107..c4f81d4871 100644
--- a/src/gui/widgets/qcombobox.cpp
+++ b/src/gui/widgets/qcombobox.cpp
@@ -1251,8 +1251,12 @@ QComboBox::~QComboBox()
// ### check delegateparent and delete delegate if us?
Q_D(QComboBox);
- disconnect(d->model, SIGNAL(destroyed()),
- this, SLOT(_q_modelDestroyed()));
+ QT_TRY {
+ disconnect(d->model, SIGNAL(destroyed()),
+ this, SLOT(_q_modelDestroyed()));
+ } QT_CATCH(...) {
+ ; // objects can't throw in destructor
+ }
}
/*!
diff --git a/src/gui/widgets/qcombobox.h b/src/gui/widgets/qcombobox.h
index 22f69283cc..2807a4f06d 100644
--- a/src/gui/widgets/qcombobox.h
+++ b/src/gui/widgets/qcombobox.h
@@ -300,7 +300,7 @@ protected:
QComboBox(QComboBoxPrivate &, QWidget *);
private:
- Q_DECLARE_PRIVATE(QComboBox)
+ Q_DECLARE_SCOPED_PRIVATE(QComboBox)
Q_DISABLE_COPY(QComboBox)
Q_PRIVATE_SLOT(d_func(), void _q_itemSelected(const QModelIndex &item))
Q_PRIVATE_SLOT(d_func(), void _q_emitHighlighted(const QModelIndex &))
diff --git a/src/gui/widgets/qcommandlinkbutton.h b/src/gui/widgets/qcommandlinkbutton.h
index bf30242dca..5191252cf4 100644
--- a/src/gui/widgets/qcommandlinkbutton.h
+++ b/src/gui/widgets/qcommandlinkbutton.h
@@ -75,7 +75,7 @@ protected:
private:
Q_DISABLE_COPY(QCommandLinkButton)
- Q_DECLARE_PRIVATE(QCommandLinkButton)
+ Q_DECLARE_SCOPED_PRIVATE(QCommandLinkButton)
};
QT_END_NAMESPACE
diff --git a/src/gui/widgets/qdatetimeedit.h b/src/gui/widgets/qdatetimeedit.h
index e43a3fa37f..1e4c62112d 100644
--- a/src/gui/widgets/qdatetimeedit.h
+++ b/src/gui/widgets/qdatetimeedit.h
@@ -197,7 +197,7 @@ protected:
QDateTimeEdit(const QVariant &val, QVariant::Type parserType, QWidget *parent = 0);
private:
- Q_DECLARE_PRIVATE(QDateTimeEdit)
+ Q_DECLARE_SCOPED_PRIVATE(QDateTimeEdit)
Q_DISABLE_COPY(QDateTimeEdit)
Q_PRIVATE_SLOT(d_func(), void _q_resetButton())
diff --git a/src/gui/widgets/qdial.h b/src/gui/widgets/qdial.h
index 91b8c5e644..f07999b1fd 100644
--- a/src/gui/widgets/qdial.h
+++ b/src/gui/widgets/qdial.h
@@ -109,7 +109,7 @@ Q_SIGNALS:
#endif
private:
- Q_DECLARE_PRIVATE(QDial)
+ Q_DECLARE_SCOPED_PRIVATE(QDial)
Q_DISABLE_COPY(QDial)
};
diff --git a/src/gui/widgets/qdialogbuttonbox.h b/src/gui/widgets/qdialogbuttonbox.h
index df40a66dfc..97a6a59832 100644
--- a/src/gui/widgets/qdialogbuttonbox.h
+++ b/src/gui/widgets/qdialogbuttonbox.h
@@ -154,7 +154,7 @@ protected:
private:
Q_DISABLE_COPY(QDialogButtonBox)
- Q_DECLARE_PRIVATE(QDialogButtonBox)
+ Q_DECLARE_SCOPED_PRIVATE(QDialogButtonBox)
Q_PRIVATE_SLOT(d_func(), void _q_handleButtonClicked())
Q_PRIVATE_SLOT(d_func(), void _q_handleButtonDestroyed())
};
diff --git a/src/gui/widgets/qdockwidget.h b/src/gui/widgets/qdockwidget.h
index f0c0b46ef2..b1abbdd5a8 100644
--- a/src/gui/widgets/qdockwidget.h
+++ b/src/gui/widgets/qdockwidget.h
@@ -124,7 +124,7 @@ protected:
void initStyleOption(QStyleOptionDockWidget *option) const;
private:
- Q_DECLARE_PRIVATE(QDockWidget)
+ Q_DECLARE_SCOPED_PRIVATE(QDockWidget)
Q_DISABLE_COPY(QDockWidget)
Q_PRIVATE_SLOT(d_func(), void _q_toggleView(bool))
Q_PRIVATE_SLOT(d_func(), void _q_toggleTopLevel())
diff --git a/src/gui/widgets/qfocusframe.h b/src/gui/widgets/qfocusframe.h
index 139374c4dc..e496343ab9 100644
--- a/src/gui/widgets/qfocusframe.h
+++ b/src/gui/widgets/qfocusframe.h
@@ -71,7 +71,7 @@ protected:
void initStyleOption(QStyleOption *option) const;
private:
- Q_DECLARE_PRIVATE(QFocusFrame)
+ Q_DECLARE_SCOPED_PRIVATE(QFocusFrame)
Q_DISABLE_COPY(QFocusFrame)
};
diff --git a/src/gui/widgets/qfontcombobox.h b/src/gui/widgets/qfontcombobox.h
index 6034881da3..41f9d72a53 100644
--- a/src/gui/widgets/qfontcombobox.h
+++ b/src/gui/widgets/qfontcombobox.h
@@ -97,7 +97,7 @@ protected:
private:
Q_DISABLE_COPY(QFontComboBox)
- Q_DECLARE_PRIVATE(QFontComboBox)
+ Q_DECLARE_SCOPED_PRIVATE(QFontComboBox)
Q_PRIVATE_SLOT(d_func(), void _q_currentChanged(const QString &))
Q_PRIVATE_SLOT(d_func(), void _q_updateModel())
};
diff --git a/src/gui/widgets/qframe.h b/src/gui/widgets/qframe.h
index 7b6073b283..f8776c6212 100644
--- a/src/gui/widgets/qframe.h
+++ b/src/gui/widgets/qframe.h
@@ -138,7 +138,7 @@ protected:
private:
Q_DISABLE_COPY(QFrame)
- Q_DECLARE_PRIVATE(QFrame)
+ Q_DECLARE_SCOPED_PRIVATE(QFrame)
};
QT_END_NAMESPACE
diff --git a/src/gui/widgets/qgroupbox.h b/src/gui/widgets/qgroupbox.h
index d3f76e1429..c4bef6ef77 100644
--- a/src/gui/widgets/qgroupbox.h
+++ b/src/gui/widgets/qgroupbox.h
@@ -109,7 +109,7 @@ public:
private:
Q_DISABLE_COPY(QGroupBox)
- Q_DECLARE_PRIVATE(QGroupBox)
+ Q_DECLARE_SCOPED_PRIVATE(QGroupBox)
Q_PRIVATE_SLOT(d_func(), void _q_setChildrenEnabled(bool b))
};
diff --git a/src/gui/widgets/qlabel.h b/src/gui/widgets/qlabel.h
index b7a7c11cdd..520d661263 100644
--- a/src/gui/widgets/qlabel.h
+++ b/src/gui/widgets/qlabel.h
@@ -156,7 +156,7 @@ public:
private:
Q_DISABLE_COPY(QLabel)
- Q_DECLARE_PRIVATE(QLabel)
+ Q_DECLARE_SCOPED_PRIVATE(QLabel)
#ifndef QT_NO_MOVIE
Q_PRIVATE_SLOT(d_func(), void _q_movieUpdated(const QRect&))
Q_PRIVATE_SLOT(d_func(), void _q_movieResized(const QSize&))
diff --git a/src/gui/widgets/qlcdnumber.h b/src/gui/widgets/qlcdnumber.h
index 1437427397..3d7cf43e8a 100644
--- a/src/gui/widgets/qlcdnumber.h
+++ b/src/gui/widgets/qlcdnumber.h
@@ -128,7 +128,7 @@ public:
private:
Q_DISABLE_COPY(QLCDNumber)
- Q_DECLARE_PRIVATE(QLCDNumber)
+ Q_DECLARE_SCOPED_PRIVATE(QLCDNumber)
};
#endif // QT_NO_LCDNUMBER
diff --git a/src/gui/widgets/qlineedit.h b/src/gui/widgets/qlineedit.h
index daac6a753c..9eed110f57 100644
--- a/src/gui/widgets/qlineedit.h
+++ b/src/gui/widgets/qlineedit.h
@@ -265,7 +265,7 @@ private:
friend class QDateTimeEdit;
#endif
Q_DISABLE_COPY(QLineEdit)
- Q_DECLARE_PRIVATE(QLineEdit)
+ Q_DECLARE_SCOPED_PRIVATE(QLineEdit)
Q_PRIVATE_SLOT(d_func(), void _q_handleWindowActivate())
Q_PRIVATE_SLOT(d_func(), void _q_deleteSelected())
Q_PRIVATE_SLOT(d_func(), void _q_textEdited(const QString &))
diff --git a/src/gui/widgets/qmaccocoaviewcontainer_mac.h b/src/gui/widgets/qmaccocoaviewcontainer_mac.h
index 8ca107341d..0fdaac5922 100644
--- a/src/gui/widgets/qmaccocoaviewcontainer_mac.h
+++ b/src/gui/widgets/qmaccocoaviewcontainer_mac.h
@@ -63,7 +63,7 @@ public:
void *cocoaView() const;
private:
- Q_DECLARE_PRIVATE(QMacCocoaViewContainer)
+ Q_DECLARE_SCOPED_PRIVATE(QMacCocoaViewContainer)
};
QT_END_NAMESPACE
diff --git a/src/gui/widgets/qmacnativewidget_mac.h b/src/gui/widgets/qmacnativewidget_mac.h
index 5c654b5916..904108ebe6 100644
--- a/src/gui/widgets/qmacnativewidget_mac.h
+++ b/src/gui/widgets/qmacnativewidget_mac.h
@@ -64,7 +64,7 @@ protected:
bool event(QEvent *ev);
private:
- Q_DECLARE_PRIVATE(QMacNativeWidget)
+ Q_DECLARE_SCOPED_PRIVATE(QMacNativeWidget)
};
QT_END_NAMESPACE
diff --git a/src/gui/widgets/qmainwindow.h b/src/gui/widgets/qmainwindow.h
index 9c2fb884da..a22113118d 100644
--- a/src/gui/widgets/qmainwindow.h
+++ b/src/gui/widgets/qmainwindow.h
@@ -202,7 +202,7 @@ protected:
bool event(QEvent *event);
private:
- Q_DECLARE_PRIVATE(QMainWindow)
+ Q_DECLARE_SCOPED_PRIVATE(QMainWindow)
Q_DISABLE_COPY(QMainWindow)
};
diff --git a/src/gui/widgets/qmdiarea.h b/src/gui/widgets/qmdiarea.h
index 9f1014e491..f64397b07c 100644
--- a/src/gui/widgets/qmdiarea.h
+++ b/src/gui/widgets/qmdiarea.h
@@ -153,7 +153,7 @@ protected:
private:
Q_DISABLE_COPY(QMdiArea)
- Q_DECLARE_PRIVATE(QMdiArea)
+ Q_DECLARE_SCOPED_PRIVATE(QMdiArea)
Q_PRIVATE_SLOT(d_func(), void _q_deactivateAllWindows())
Q_PRIVATE_SLOT(d_func(), void _q_processWindowStateChanged(Qt::WindowStates, Qt::WindowStates))
Q_PRIVATE_SLOT(d_func(), void _q_currentTabChanged(int index))
diff --git a/src/gui/widgets/qmdisubwindow.h b/src/gui/widgets/qmdisubwindow.h
index 924cc9ad58..bfb523d4b6 100644
--- a/src/gui/widgets/qmdisubwindow.h
+++ b/src/gui/widgets/qmdisubwindow.h
@@ -137,7 +137,7 @@ protected:
private:
Q_DISABLE_COPY(QMdiSubWindow)
- Q_DECLARE_PRIVATE(QMdiSubWindow)
+ Q_DECLARE_SCOPED_PRIVATE(QMdiSubWindow)
Q_PRIVATE_SLOT(d_func(), void _q_updateStaysOnTopHint())
Q_PRIVATE_SLOT(d_func(), void _q_enterInteractiveMode())
Q_PRIVATE_SLOT(d_func(), void _q_processFocusChanged(QWidget *, QWidget *))
diff --git a/src/gui/widgets/qmenu.cpp b/src/gui/widgets/qmenu.cpp
index d0620af0d6..f130a29d76 100644
--- a/src/gui/widgets/qmenu.cpp
+++ b/src/gui/widgets/qmenu.cpp
@@ -144,7 +144,7 @@ public slots:
void onTrigger(QAction *action) { d_func()->activateAction(action, QAction::Trigger, false); }
void onHovered(QAction *action) { d_func()->activateAction(action, QAction::Hover, false); }
private:
- Q_DECLARE_PRIVATE(QTornOffMenu)
+ Q_DECLARE_SCOPED_PRIVATE(QTornOffMenu)
friend class QMenuPrivate;
};
diff --git a/src/gui/widgets/qmenu.h b/src/gui/widgets/qmenu.h
index 41890c46dd..9f9cdf5e8f 100644
--- a/src/gui/widgets/qmenu.h
+++ b/src/gui/widgets/qmenu.h
@@ -77,7 +77,7 @@ class Q_GUI_EXPORT QMenu : public QWidget
{
private:
Q_OBJECT
- Q_DECLARE_PRIVATE(QMenu)
+ Q_DECLARE_SCOPED_PRIVATE(QMenu)
Q_PROPERTY(bool tearOffEnabled READ isTearOffEnabled WRITE setTearOffEnabled)
Q_PROPERTY(QString title READ title WRITE setTitle)
diff --git a/src/gui/widgets/qmenu_symbian.cpp b/src/gui/widgets/qmenu_symbian.cpp
index 76057e74ef..1b21b71760 100644
--- a/src/gui/widgets/qmenu_symbian.cpp
+++ b/src/gui/widgets/qmenu_symbian.cpp
@@ -87,7 +87,7 @@ bool menuExists()
{
QWidget *w = qApp->activeWindow();
QMenuBarPrivate *mb = menubars()->value(w);
- if ((!mb) && !menubars()->count())
+ if ((!mb) && !menubars()->count())
return false;
return true;
}
@@ -196,7 +196,7 @@ static void qt_symbian_insert_action(QSymbianMenuAction* action, QList<SymbianMe
if (!action->action->isEnabled()){
menuItem->menuItemData.iFlags += EEikMenuItemDimmed;
}
-
+
if (action->action->isCheckable()) {
if (action->action->isChecked())
menuItem->menuItemData.iFlags += EEikMenuItemCheckBox | EEikMenuItemSymbolOn;
@@ -244,7 +244,7 @@ Q_GUI_EXPORT void qt_symbian_show_toplevel( CEikMenuPane* menuPane)
return;
rebuildMenu();
for (int i = 0; i < symbianMenus.count(); ++i)
- menuPane->AddMenuItemL(symbianMenus.at(i)->menuItemData);
+ QT_TRAP_THROWING(menuPane->AddMenuItemL(symbianMenus.at(i)->menuItemData));
}
Q_GUI_EXPORT void qt_symbian_show_submenu( CEikMenuPane* menuPane, int id)
@@ -252,7 +252,7 @@ Q_GUI_EXPORT void qt_symbian_show_submenu( CEikMenuPane* menuPane, int id)
SymbianMenuItem* menu = qt_symbian_find_menu(id, symbianMenus);
if (menu) {
for (int i = 0; i < menu->children.count(); ++i)
- menuPane->AddMenuItemL(menu->children.at(i)->menuItemData);
+ QT_TRAP_THROWING(menuPane->AddMenuItemL(menu->children.at(i)->menuItemData));
}
}
@@ -262,7 +262,7 @@ void QMenuBarPrivate::symbianCommands(int command)
QContextMenuEvent* event = new QContextMenuEvent(QContextMenuEvent::Keyboard, QPoint(0,0));
QCoreApplication::postEvent(widgetWithContextMenu, event);
}
-
+
int size = nativeMenuBars.size();
for (int i = 0; i < nativeMenuBars.size(); ++i) {
SymbianMenuItem* menu = qt_symbian_find_menu_item(command, symbianMenus);
diff --git a/src/gui/widgets/qmenubar.h b/src/gui/widgets/qmenubar.h
index 1fda1c18e1..ddd2d670a4 100644
--- a/src/gui/widgets/qmenubar.h
+++ b/src/gui/widgets/qmenubar.h
@@ -336,7 +336,7 @@ private:
#endif
private:
- Q_DECLARE_PRIVATE(QMenuBar)
+ Q_DECLARE_SCOPED_PRIVATE(QMenuBar)
Q_DISABLE_COPY(QMenuBar)
Q_PRIVATE_SLOT(d_func(), void _q_actionTriggered())
Q_PRIVATE_SLOT(d_func(), void _q_actionHovered())
diff --git a/src/gui/widgets/qplaintextedit.h b/src/gui/widgets/qplaintextedit.h
index 35bbc377ce..767bb693c3 100644
--- a/src/gui/widgets/qplaintextedit.h
+++ b/src/gui/widgets/qplaintextedit.h
@@ -69,7 +69,7 @@ class QMimeData;
class Q_GUI_EXPORT QPlainTextEdit : public QAbstractScrollArea
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QPlainTextEdit)
+ Q_DECLARE_SCOPED_PRIVATE(QPlainTextEdit)
Q_ENUMS(LineWrapMode)
Q_PROPERTY(bool tabChangesFocus READ tabChangesFocus WRITE setTabChangesFocus)
Q_PROPERTY(QString documentTitle READ documentTitle WRITE setDocumentTitle)
@@ -278,7 +278,7 @@ class QPlainTextDocumentLayoutPrivate;
class Q_GUI_EXPORT QPlainTextDocumentLayout : public QAbstractTextDocumentLayout
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QPlainTextDocumentLayout)
+ Q_DECLARE_SCOPED_PRIVATE(QPlainTextDocumentLayout)
Q_PROPERTY(int cursorWidth READ cursorWidth WRITE setCursorWidth)
public:
diff --git a/src/gui/widgets/qprintpreviewwidget.h b/src/gui/widgets/qprintpreviewwidget.h
index d74bf93968..240306fd44 100644
--- a/src/gui/widgets/qprintpreviewwidget.h
+++ b/src/gui/widgets/qprintpreviewwidget.h
@@ -58,7 +58,7 @@ class QPrintPreviewWidgetPrivate;
class Q_GUI_EXPORT QPrintPreviewWidget : public QWidget
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QPrintPreviewWidget)
+ Q_DECLARE_SCOPED_PRIVATE(QPrintPreviewWidget)
public:
enum ViewMode {
diff --git a/src/gui/widgets/qprogressbar.h b/src/gui/widgets/qprogressbar.h
index 5ac6b851d6..de995b618f 100644
--- a/src/gui/widgets/qprogressbar.h
+++ b/src/gui/widgets/qprogressbar.h
@@ -117,7 +117,7 @@ protected:
void initStyleOption(QStyleOptionProgressBar *option) const;
private:
- Q_DECLARE_PRIVATE(QProgressBar)
+ Q_DECLARE_SCOPED_PRIVATE(QProgressBar)
Q_DISABLE_COPY(QProgressBar)
};
diff --git a/src/gui/widgets/qpushbutton.h b/src/gui/widgets/qpushbutton.h
index 2264cc32a3..1b4cb952a6 100644
--- a/src/gui/widgets/qpushbutton.h
+++ b/src/gui/widgets/qpushbutton.h
@@ -111,7 +111,7 @@ public:
private:
Q_DISABLE_COPY(QPushButton)
- Q_DECLARE_PRIVATE(QPushButton)
+ Q_DECLARE_SCOPED_PRIVATE(QPushButton)
#ifndef QT_NO_MENU
Q_PRIVATE_SLOT(d_func(), void _q_popupPressed())
#endif
diff --git a/src/gui/widgets/qradiobutton.h b/src/gui/widgets/qradiobutton.h
index e631bab803..d2eaa4d890 100644
--- a/src/gui/widgets/qradiobutton.h
+++ b/src/gui/widgets/qradiobutton.h
@@ -77,7 +77,7 @@ public:
#endif
private:
- Q_DECLARE_PRIVATE(QRadioButton)
+ Q_DECLARE_SCOPED_PRIVATE(QRadioButton)
Q_DISABLE_COPY(QRadioButton)
};
diff --git a/src/gui/widgets/qrubberband.h b/src/gui/widgets/qrubberband.h
index 1e638fd2ad..629bc29eda 100644
--- a/src/gui/widgets/qrubberband.h
+++ b/src/gui/widgets/qrubberband.h
@@ -87,7 +87,7 @@ protected:
void initStyleOption(QStyleOptionRubberBand *option) const;
private:
- Q_DECLARE_PRIVATE(QRubberBand)
+ Q_DECLARE_SCOPED_PRIVATE(QRubberBand)
};
inline void QRubberBand::setGeometry(int ax, int ay, int aw, int ah)
diff --git a/src/gui/widgets/qscrollarea.h b/src/gui/widgets/qscrollarea.h
index d713e15707..d2179b8dd8 100644
--- a/src/gui/widgets/qscrollarea.h
+++ b/src/gui/widgets/qscrollarea.h
@@ -88,7 +88,7 @@ protected:
void scrollContentsBy(int dx, int dy);
private:
- Q_DECLARE_PRIVATE(QScrollArea)
+ Q_DECLARE_SCOPED_PRIVATE(QScrollArea)
Q_DISABLE_COPY(QScrollArea)
};
diff --git a/src/gui/widgets/qscrollbar.h b/src/gui/widgets/qscrollbar.h
index 9d25359d45..b9302b3056 100644
--- a/src/gui/widgets/qscrollbar.h
+++ b/src/gui/widgets/qscrollbar.h
@@ -92,7 +92,7 @@ private:
friend Q_GUI_EXPORT QStyleOptionSlider qt_qscrollbarStyleOption(QScrollBar *scrollBar);
Q_DISABLE_COPY(QScrollBar)
- Q_DECLARE_PRIVATE(QScrollBar)
+ Q_DECLARE_SCOPED_PRIVATE(QScrollBar)
};
#endif // QT_NO_SCROLLBAR
diff --git a/src/gui/widgets/qsizegrip.h b/src/gui/widgets/qsizegrip.h
index 5a0fb3b2dd..7e9e6ace3f 100644
--- a/src/gui/widgets/qsizegrip.h
+++ b/src/gui/widgets/qsizegrip.h
@@ -82,7 +82,7 @@ public:
#endif
private:
- Q_DECLARE_PRIVATE(QSizeGrip)
+ Q_DECLARE_SCOPED_PRIVATE(QSizeGrip)
Q_DISABLE_COPY(QSizeGrip)
Q_PRIVATE_SLOT(d_func(), void _q_showIfNotHidden())
};
diff --git a/src/gui/widgets/qslider.h b/src/gui/widgets/qslider.h
index 18c2603ab2..3ff3889c3c 100644
--- a/src/gui/widgets/qslider.h
+++ b/src/gui/widgets/qslider.h
@@ -122,7 +122,7 @@ private:
friend Q_GUI_EXPORT QStyleOptionSlider qt_qsliderStyleOption(QSlider *slider);
Q_DISABLE_COPY(QSlider)
- Q_DECLARE_PRIVATE(QSlider)
+ Q_DECLARE_SCOPED_PRIVATE(QSlider)
};
#endif // QT_NO_SLIDER
diff --git a/src/gui/widgets/qspinbox.h b/src/gui/widgets/qspinbox.h
index a16852833f..96d7b96e04 100644
--- a/src/gui/widgets/qspinbox.h
+++ b/src/gui/widgets/qspinbox.h
@@ -119,7 +119,7 @@ Q_SIGNALS:
private:
Q_DISABLE_COPY(QSpinBox)
- Q_DECLARE_PRIVATE(QSpinBox)
+ Q_DECLARE_SCOPED_PRIVATE(QSpinBox)
};
class QDoubleSpinBoxPrivate;
@@ -176,7 +176,7 @@ Q_SIGNALS:
private:
Q_DISABLE_COPY(QDoubleSpinBox)
- Q_DECLARE_PRIVATE(QDoubleSpinBox)
+ Q_DECLARE_SCOPED_PRIVATE(QDoubleSpinBox)
};
#endif // QT_NO_SPINBOX
diff --git a/src/gui/widgets/qsplashscreen.h b/src/gui/widgets/qsplashscreen.h
index d7c521c6d5..23d4d34379 100644
--- a/src/gui/widgets/qsplashscreen.h
+++ b/src/gui/widgets/qsplashscreen.h
@@ -87,7 +87,7 @@ protected:
private:
Q_DISABLE_COPY(QSplashScreen)
- Q_DECLARE_PRIVATE(QSplashScreen)
+ Q_DECLARE_SCOPED_PRIVATE(QSplashScreen)
};
#endif // QT_NO_SPLASHSCREEN
diff --git a/src/gui/widgets/qsplitter.h b/src/gui/widgets/qsplitter.h
index ad5620e41c..5f16db2271 100644
--- a/src/gui/widgets/qsplitter.h
+++ b/src/gui/widgets/qsplitter.h
@@ -142,7 +142,7 @@ public:
private:
Q_DISABLE_COPY(QSplitter)
- Q_DECLARE_PRIVATE(QSplitter)
+ Q_DECLARE_SCOPED_PRIVATE(QSplitter)
private:
friend class QSplitterHandle;
};
@@ -179,7 +179,7 @@ protected:
private:
Q_DISABLE_COPY(QSplitterHandle)
- Q_DECLARE_PRIVATE(QSplitterHandle)
+ Q_DECLARE_SCOPED_PRIVATE(QSplitterHandle)
};
#endif // QT_NO_SPLITTER
diff --git a/src/gui/widgets/qstackedwidget.h b/src/gui/widgets/qstackedwidget.h
index 95d6d9f5ef..6dd21bb22d 100644
--- a/src/gui/widgets/qstackedwidget.h
+++ b/src/gui/widgets/qstackedwidget.h
@@ -88,7 +88,7 @@ protected:
private:
Q_DISABLE_COPY(QStackedWidget)
- Q_DECLARE_PRIVATE(QStackedWidget)
+ Q_DECLARE_SCOPED_PRIVATE(QStackedWidget)
};
#endif // QT_NO_STACKEDWIDGET
diff --git a/src/gui/widgets/qstatusbar.h b/src/gui/widgets/qstatusbar.h
index 86d1cdad4c..28cb2a9d20 100644
--- a/src/gui/widgets/qstatusbar.h
+++ b/src/gui/widgets/qstatusbar.h
@@ -104,7 +104,7 @@ protected:
private:
Q_DISABLE_COPY(QStatusBar)
- Q_DECLARE_PRIVATE(QStatusBar)
+ Q_DECLARE_SCOPED_PRIVATE(QStatusBar)
};
#endif // QT_NO_STATUSBAR
diff --git a/src/gui/widgets/qtabbar.h b/src/gui/widgets/qtabbar.h
index 402f54b435..2e6eaacced 100644
--- a/src/gui/widgets/qtabbar.h
+++ b/src/gui/widgets/qtabbar.h
@@ -212,7 +212,7 @@ Q_SIGNALS:
friend class QAccessibleTabBar;
private:
Q_DISABLE_COPY(QTabBar)
- Q_DECLARE_PRIVATE(QTabBar)
+ Q_DECLARE_SCOPED_PRIVATE(QTabBar)
Q_PRIVATE_SLOT(d_func(), void _q_scrollTabs())
Q_PRIVATE_SLOT(d_func(), void _q_closeTab())
};
diff --git a/src/gui/widgets/qtabwidget.h b/src/gui/widgets/qtabwidget.h
index 10150af3dc..138a612957 100644
--- a/src/gui/widgets/qtabwidget.h
+++ b/src/gui/widgets/qtabwidget.h
@@ -234,7 +234,7 @@ Q_SIGNALS:
#endif // QT3_SUPPORT
private:
- Q_DECLARE_PRIVATE(QTabWidget)
+ Q_DECLARE_SCOPED_PRIVATE(QTabWidget)
Q_DISABLE_COPY(QTabWidget)
Q_PRIVATE_SLOT(d_func(), void _q_showTab(int))
Q_PRIVATE_SLOT(d_func(), void _q_removeTab(int))
diff --git a/src/gui/widgets/qtextbrowser.h b/src/gui/widgets/qtextbrowser.h
index d5bd956211..b9a501f3d1 100644
--- a/src/gui/widgets/qtextbrowser.h
+++ b/src/gui/widgets/qtextbrowser.h
@@ -125,7 +125,7 @@ public:
private:
Q_DISABLE_COPY(QTextBrowser)
- Q_DECLARE_PRIVATE(QTextBrowser)
+ Q_DECLARE_SCOPED_PRIVATE(QTextBrowser)
Q_PRIVATE_SLOT(d_func(), void _q_documentModified())
Q_PRIVATE_SLOT(d_func(), void _q_activateAnchor(const QString &))
Q_PRIVATE_SLOT(d_func(), void _q_highlightLink(const QString &))
diff --git a/src/gui/widgets/qtextedit.h b/src/gui/widgets/qtextedit.h
index 9e10e077c6..ab807e881a 100644
--- a/src/gui/widgets/qtextedit.h
+++ b/src/gui/widgets/qtextedit.h
@@ -70,7 +70,7 @@ class QMimeData;
class Q_GUI_EXPORT QTextEdit : public QAbstractScrollArea
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QTextEdit)
+ Q_DECLARE_SCOPED_PRIVATE(QTextEdit)
Q_FLAGS(AutoFormatting)
Q_ENUMS(LineWrapMode)
Q_PROPERTY(AutoFormatting autoFormatting READ autoFormatting WRITE setAutoFormatting)
diff --git a/src/gui/widgets/qtoolbar.h b/src/gui/widgets/qtoolbar.h
index 07502b344b..6e58555601 100644
--- a/src/gui/widgets/qtoolbar.h
+++ b/src/gui/widgets/qtoolbar.h
@@ -162,7 +162,7 @@ public:
#endif
private:
- Q_DECLARE_PRIVATE(QToolBar)
+ Q_DECLARE_SCOPED_PRIVATE(QToolBar)
Q_DISABLE_COPY(QToolBar)
Q_PRIVATE_SLOT(d_func(), void _q_toggleView(bool))
Q_PRIVATE_SLOT(d_func(), void _q_updateIconSize(const QSize &))
diff --git a/src/gui/widgets/qtoolbox.h b/src/gui/widgets/qtoolbox.h
index 2c38967591..242efa6769 100644
--- a/src/gui/widgets/qtoolbox.h
+++ b/src/gui/widgets/qtoolbox.h
@@ -124,7 +124,7 @@ public:
#endif
private:
- Q_DECLARE_PRIVATE(QToolBox)
+ Q_DECLARE_SCOPED_PRIVATE(QToolBox)
Q_DISABLE_COPY(QToolBox)
Q_PRIVATE_SLOT(d_func(), void _q_buttonClicked())
Q_PRIVATE_SLOT(d_func(), void _q_widgetDestroyed(QObject*))
diff --git a/src/gui/widgets/qtoolbutton.h b/src/gui/widgets/qtoolbutton.h
index 1e7d678399..7286096579 100644
--- a/src/gui/widgets/qtoolbutton.h
+++ b/src/gui/widgets/qtoolbutton.h
@@ -127,7 +127,7 @@ protected:
private:
Q_DISABLE_COPY(QToolButton)
- Q_DECLARE_PRIVATE(QToolButton)
+ Q_DECLARE_SCOPED_PRIVATE(QToolButton)
#ifndef QT_NO_MENU
Q_PRIVATE_SLOT(d_func(), void _q_buttonPressed())
Q_PRIVATE_SLOT(d_func(), void _q_updateButtonDown())
diff --git a/src/gui/widgets/qvalidator.h b/src/gui/widgets/qvalidator.h
index 5c27d1d48e..5c15116627 100644
--- a/src/gui/widgets/qvalidator.h
+++ b/src/gui/widgets/qvalidator.h
@@ -90,7 +90,7 @@ protected:
private:
Q_DISABLE_COPY(QValidator)
- Q_DECLARE_PRIVATE(QValidator)
+ Q_DECLARE_SCOPED_PRIVATE(QValidator)
};
class Q_GUI_EXPORT QIntValidator : public QValidator
@@ -168,7 +168,7 @@ public:
QObject * parent, const char *name);
#endif
private:
- Q_DECLARE_PRIVATE(QDoubleValidator)
+ Q_DECLARE_SCOPED_PRIVATE(QDoubleValidator)
Q_DISABLE_COPY(QDoubleValidator)
double b;
diff --git a/src/gui/widgets/qworkspace.cpp b/src/gui/widgets/qworkspace.cpp
index 31841409b4..da06e9dacd 100644
--- a/src/gui/widgets/qworkspace.cpp
+++ b/src/gui/widgets/qworkspace.cpp
@@ -228,7 +228,7 @@ void QMDIControl::paintEvent(QPaintEvent *)
class QWorkspaceTitleBar : public QWidget
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QWorkspaceTitleBar)
+ Q_DECLARE_SCOPED_PRIVATE(QWorkspaceTitleBar)
Q_PROPERTY(bool autoRaise READ autoRaise WRITE setAutoRaise)
Q_PROPERTY(bool movable READ isMovable WRITE setMovable)
diff --git a/src/gui/widgets/qworkspace.h b/src/gui/widgets/qworkspace.h
index 8a64315558..1a20d6cab1 100644
--- a/src/gui/widgets/qworkspace.h
+++ b/src/gui/widgets/qworkspace.h
@@ -115,7 +115,7 @@ protected:
#endif
private:
- Q_DECLARE_PRIVATE(QWorkspace)
+ Q_DECLARE_SCOPED_PRIVATE(QWorkspace)
Q_DISABLE_COPY(QWorkspace)
Q_PRIVATE_SLOT(d_func(), void _q_normalizeActiveWindow())
Q_PRIVATE_SLOT(d_func(), void _q_minimizeActiveWindow())
diff --git a/src/network/access/qabstractnetworkcache.h b/src/network/access/qabstractnetworkcache.h
index 40f2313d9b..38ebb69e3f 100644
--- a/src/network/access/qabstractnetworkcache.h
+++ b/src/network/access/qabstractnetworkcache.h
@@ -130,7 +130,7 @@ protected:
QAbstractNetworkCache(QAbstractNetworkCachePrivate &dd, QObject *parent);
private:
- Q_DECLARE_PRIVATE(QAbstractNetworkCache)
+ Q_DECLARE_SCOPED_PRIVATE(QAbstractNetworkCache)
Q_DISABLE_COPY(QAbstractNetworkCache)
};
diff --git a/src/network/access/qftp.h b/src/network/access/qftp.h
index c6aaea4f0c..8e4af9f747 100644
--- a/src/network/access/qftp.h
+++ b/src/network/access/qftp.h
@@ -162,7 +162,7 @@ public:
private:
Q_DISABLE_COPY(QFtp)
- Q_DECLARE_PRIVATE(QFtp)
+ Q_DECLARE_SCOPED_PRIVATE(QFtp)
Q_PRIVATE_SLOT(d_func(), void _q_startNextCommand())
Q_PRIVATE_SLOT(d_func(), void _q_piFinished(const QString&))
diff --git a/src/network/access/qhttp.h b/src/network/access/qhttp.h
index e524350a41..c1fda0e3c9 100644
--- a/src/network/access/qhttp.h
+++ b/src/network/access/qhttp.h
@@ -112,7 +112,7 @@ protected:
QScopedPointer<QHttpHeaderPrivate> d_ptr;
private:
- Q_DECLARE_PRIVATE(QHttpHeader)
+ Q_DECLARE_SCOPED_PRIVATE(QHttpHeader)
};
class QHttpResponseHeaderPrivate;
@@ -139,7 +139,7 @@ protected:
bool parseLine(const QString &line, int number);
private:
- Q_DECLARE_PRIVATE(QHttpResponseHeader)
+ Q_DECLARE_SCOPED_PRIVATE(QHttpResponseHeader)
friend class QHttpPrivate;
};
@@ -167,7 +167,7 @@ protected:
bool parseLine(const QString &line, int number);
private:
- Q_DECLARE_PRIVATE(QHttpRequestHeader)
+ Q_DECLARE_SCOPED_PRIVATE(QHttpRequestHeader)
};
class Q_NETWORK_EXPORT QHttp : public QObject
@@ -282,7 +282,7 @@ Q_SIGNALS:
private:
Q_DISABLE_COPY(QHttp)
- Q_DECLARE_PRIVATE(QHttp)
+ Q_DECLARE_SCOPED_PRIVATE(QHttp)
Q_PRIVATE_SLOT(d_func(), void _q_startNextRequest())
Q_PRIVATE_SLOT(d_func(), void _q_slotReadyRead())
diff --git a/src/network/access/qhttpnetworkconnection_p.h b/src/network/access/qhttpnetworkconnection_p.h
index db6a1406f8..eb7a95552a 100644
--- a/src/network/access/qhttpnetworkconnection_p.h
+++ b/src/network/access/qhttpnetworkconnection_p.h
@@ -135,7 +135,7 @@ Q_SIGNALS:
void error(QNetworkReply::NetworkError errorCode, const QString &detail = QString());
private:
- Q_DECLARE_PRIVATE(QHttpNetworkConnection)
+ Q_DECLARE_SCOPED_PRIVATE(QHttpNetworkConnection)
Q_DISABLE_COPY(QHttpNetworkConnection)
friend class QHttpNetworkReply;
diff --git a/src/network/access/qhttpnetworkreply_p.h b/src/network/access/qhttpnetworkreply_p.h
index 575e824b6f..0982685a42 100644
--- a/src/network/access/qhttpnetworkreply_p.h
+++ b/src/network/access/qhttpnetworkreply_p.h
@@ -146,7 +146,7 @@ Q_SIGNALS:
void dataSendProgress(qint64 done, qint64 total);
private:
- Q_DECLARE_PRIVATE(QHttpNetworkReply)
+ Q_DECLARE_SCOPED_PRIVATE(QHttpNetworkReply)
friend class QHttpNetworkConnection;
friend class QHttpNetworkConnectionPrivate;
};
diff --git a/src/network/access/qnetworkaccessmanager.h b/src/network/access/qnetworkaccessmanager.h
index f7967f6ae3..01f09cf59d 100644
--- a/src/network/access/qnetworkaccessmanager.h
+++ b/src/network/access/qnetworkaccessmanager.h
@@ -119,7 +119,7 @@ protected:
private:
friend class QNetworkReplyImplPrivate;
- Q_DECLARE_PRIVATE(QNetworkAccessManager)
+ Q_DECLARE_SCOPED_PRIVATE(QNetworkAccessManager)
Q_PRIVATE_SLOT(d_func(), void _q_replyFinished())
Q_PRIVATE_SLOT(d_func(), void _q_replySslErrors(QList<QSslError>))
};
diff --git a/src/network/access/qnetworkcookie.h b/src/network/access/qnetworkcookie.h
index 922a6f54f5..35c7095bf1 100644
--- a/src/network/access/qnetworkcookie.h
+++ b/src/network/access/qnetworkcookie.h
@@ -67,7 +67,7 @@ public:
Full
};
- QNetworkCookie();
+ QNetworkCookie();
QNetworkCookie(const QByteArray &name );
QNetworkCookie(const QByteArray &name, const QByteArray &value );
QNetworkCookie(const QNetworkCookie &other);
diff --git a/src/network/access/qnetworkdiskcache.h b/src/network/access/qnetworkdiskcache.h
index 2d045646e2..8827bfb3e2 100644
--- a/src/network/access/qnetworkdiskcache.h
+++ b/src/network/access/qnetworkdiskcache.h
@@ -84,7 +84,7 @@ protected:
virtual qint64 expire();
private:
- Q_DECLARE_PRIVATE(QNetworkDiskCache)
+ Q_DECLARE_SCOPED_PRIVATE(QNetworkDiskCache)
Q_DISABLE_COPY(QNetworkDiskCache)
};
diff --git a/src/network/access/qnetworkreply.h b/src/network/access/qnetworkreply.h
index 679ab71aae..854111fadc 100644
--- a/src/network/access/qnetworkreply.h
+++ b/src/network/access/qnetworkreply.h
@@ -165,7 +165,7 @@ protected:
void setAttribute(QNetworkRequest::Attribute code, const QVariant &value);
private:
- Q_DECLARE_PRIVATE(QNetworkReply)
+ Q_DECLARE_SCOPED_PRIVATE(QNetworkReply)
};
QT_END_NAMESPACE
diff --git a/src/network/access/qnetworkreplyimpl_p.h b/src/network/access/qnetworkreplyimpl_p.h
index fba8d3455f..eb63e62566 100644
--- a/src/network/access/qnetworkreplyimpl_p.h
+++ b/src/network/access/qnetworkreplyimpl_p.h
@@ -92,7 +92,7 @@ public:
Q_INVOKABLE virtual void ignoreSslErrorsImplementation(const QList<QSslError> &errors);
#endif
- Q_DECLARE_PRIVATE(QNetworkReplyImpl)
+ Q_DECLARE_SCOPED_PRIVATE(QNetworkReplyImpl)
Q_PRIVATE_SLOT(d_func(), void _q_startOperation())
Q_PRIVATE_SLOT(d_func(), void _q_copyReadyRead())
Q_PRIVATE_SLOT(d_func(), void _q_copyReadChannelFinished())
diff --git a/src/network/access/qnetworkrequest.h b/src/network/access/qnetworkrequest.h
index a53aed3e66..cf06f7ca2b 100644
--- a/src/network/access/qnetworkrequest.h
+++ b/src/network/access/qnetworkrequest.h
@@ -89,7 +89,7 @@ public:
explicit QNetworkRequest();
- explicit QNetworkRequest(const QUrl &url);
+ explicit QNetworkRequest(const QUrl &url);
QNetworkRequest(const QNetworkRequest &other);
~QNetworkRequest();
QNetworkRequest &operator=(const QNetworkRequest &other);
diff --git a/src/network/kernel/qnetworkinterface.cpp b/src/network/kernel/qnetworkinterface.cpp
index 953722c67d..e588c1817c 100644
--- a/src/network/kernel/qnetworkinterface.cpp
+++ b/src/network/kernel/qnetworkinterface.cpp
@@ -128,7 +128,7 @@ QString QNetworkInterfacePrivate::makeHwAddress(int len, uchar *data)
for (int i = 0; i < len; ++i) {
if (i)
result += QLatin1Char(':');
-
+
char buf[3];
#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE) && defined(_MSC_VER) && _MSC_VER >= 1400
sprintf_s(buf, 3, "%02hX", ushort(data[i]));
@@ -603,13 +603,13 @@ QDebug operator<<(QDebug debug, const QNetworkInterface &networkInterface)
<< ", hardware address = " << networkInterface.hardwareAddress()
<< ", flags = ";
flagsDebug(debug, networkInterface.flags());
-#if defined(Q_CC_RVCT)
+#if defined(Q_CC_RVCT)
// RVCT gets confused with << networkInterface.addressEntries(), reason unknown.
debug.nospace() << ")\n";
#else
debug.nospace() << ", entries = " << networkInterface.addressEntries()
<< ")\n";
-#endif
+#endif
return debug.space();
}
#endif
diff --git a/src/network/kernel/qnetworkinterface_symbian.cpp b/src/network/kernel/qnetworkinterface_symbian.cpp
index 59f1c02956..f2ded36753 100644
--- a/src/network/kernel/qnetworkinterface_symbian.cpp
+++ b/src/network/kernel/qnetworkinterface_symbian.cpp
@@ -41,12 +41,8 @@
//#define QNETWORKINTERFACE_DEBUG
-//#include "qset.h"
#include "qnetworkinterface.h"
#include "qnetworkinterface_p.h"
-//#include <private/qnativesocketengine_p.h>
-//#include "qalgorithms.h"
-
#ifndef QT_NO_NETWORKINTERFACE
@@ -54,142 +50,185 @@
#include <in_iface.h>
#include <es_sock.h>
-//#include <sys/types.h>
-//#include <sys/socket.h>
-//#include <errno.h>
-//#include <net/if.h>
-//#include <qplatformdefs.h>
-
QT_BEGIN_NAMESPACE
-static QNetworkInterface::InterfaceFlags convertFlags( const TSoInetInterfaceInfo& aInfo )
+static QNetworkInterface::InterfaceFlags convertFlags(const TSoInetInterfaceInfo& aInfo)
{
QNetworkInterface::InterfaceFlags flags = 0;
flags |= (aInfo.iState == EIfUp) ? QNetworkInterface::IsUp : QNetworkInterface::InterfaceFlag(0);
// We do not have separate flag for running in Symbian OS
flags |= (aInfo.iState == EIfUp) ? QNetworkInterface::IsRunning : QNetworkInterface::InterfaceFlag(0);
- flags |= (aInfo.iFeatures&KIfCanBroadcast) ? QNetworkInterface::CanBroadcast : QNetworkInterface::InterfaceFlag(0);
- flags |= (aInfo.iFeatures&KIfIsLoopback) ? QNetworkInterface::IsLoopBack : QNetworkInterface::InterfaceFlag(0);
- flags |= (aInfo.iFeatures&KIfIsPointToPoint) ? QNetworkInterface::IsPointToPoint : QNetworkInterface::InterfaceFlag(0);
- flags |= (aInfo.iFeatures&KIfCanMulticast) ? QNetworkInterface::CanMulticast : QNetworkInterface::InterfaceFlag(0);
+ flags |= (aInfo.iFeatures & KIfCanBroadcast) ? QNetworkInterface::CanBroadcast : QNetworkInterface::InterfaceFlag(0);
+ flags |= (aInfo.iFeatures & KIfIsLoopback) ? QNetworkInterface::IsLoopBack : QNetworkInterface::InterfaceFlag(0);
+ flags |= (aInfo.iFeatures & KIfIsPointToPoint) ? QNetworkInterface::IsPointToPoint : QNetworkInterface::InterfaceFlag(0);
+ flags |= (aInfo.iFeatures & KIfCanMulticast) ? QNetworkInterface::CanMulticast : QNetworkInterface::InterfaceFlag(0);
return flags;
}
-QString qstringFromDesc( const TDesC& aData )
+QString qstringFromDesc(const TDesC& aData)
{
return QString::fromUtf16(aData.Ptr(), aData.Length());
}
static QList<QNetworkInterfacePrivate *> interfaceListing()
{
- TInt err( KErrNone );
+ TInt err(KErrNone);
QList<QNetworkInterfacePrivate *> interfaces;
-
+
// Connect to Native socket server
RSocketServ socketServ;
err = socketServ.Connect();
- if( err )
+ if (err)
return interfaces;
-
+
// Open dummy socket for interface queries
RSocket socket;
- err = socket.Open( socketServ, _L("udp"));
- if( err )
- {
+ err = socket.Open(socketServ, _L("udp"));
+ if (err) {
socketServ.Close();
- return interfaces;
+ return interfaces;
}
// Ask socket to start enumerating interfaces
- err = socket.SetOpt( KSoInetEnumInterfaces, KSolInetIfCtrl );
- if( err )
- {
+ err = socket.SetOpt(KSoInetEnumInterfaces, KSolInetIfCtrl);
+ if (err) {
socket.Close();
socketServ.Close();
- return interfaces;
- }
+ return interfaces;
+ }
int ifindex = 0;
TPckgBuf<TSoInetInterfaceInfo> infoPckg;
TSoInetInterfaceInfo &info = infoPckg();
- while( socket.GetOpt(KSoInetNextInterface, KSolInetIfCtrl, infoPckg) == KErrNone )
- {
+ while (socket.GetOpt(KSoInetNextInterface, KSolInetIfCtrl, infoPckg) == KErrNone) {
// Do not include IPv6 addresses because netmask and broadcast address cannot be determined correctly
- if( info.iName != KNullDesC && info.iAddress.IsV4Mapped() )
- {
- TName address;
- QNetworkAddressEntry entry;
- QNetworkInterfacePrivate *iface = 0;
-
- iface = new QNetworkInterfacePrivate;
+ if (info.iName != KNullDesC && info.iAddress.IsV4Mapped()) {
+ TName address;
+ QNetworkAddressEntry entry;
+ QNetworkInterfacePrivate *iface = 0;
+
+ iface = new QNetworkInterfacePrivate;
iface->index = ifindex++;
interfaces << iface;
- iface->name = qstringFromDesc( info.iName );
- iface->flags = convertFlags( info );
-
- if( /*info.iFeatures&KIfHasHardwareAddr &&*/ info.iHwAddr.Family() != KAFUnspec )
- {
- for ( TInt i = sizeof(SSockAddr); i < sizeof(SSockAddr) + info.iHwAddr.GetUserLen(); i++ )
- {
+ iface->name = qstringFromDesc(info.iName);
+ iface->flags = convertFlags(info);
+
+ if (/*info.iFeatures&KIfHasHardwareAddr &&*/ info.iHwAddr.Family() != KAFUnspec) {
+ for (TInt i = sizeof(SSockAddr); i < sizeof(SSockAddr) + info.iHwAddr.GetUserLen(); i++) {
address.AppendNumFixedWidth(info.iHwAddr[i], EHex, 2);
- if( ( i + 1) < sizeof(SSockAddr) + info.iHwAddr.GetUserLen() )
- address.Append( _L(":") );
- }
- address.UpperCase();
- iface->hardwareAddress = qstringFromDesc( address );
+ if ((i + 1) < sizeof(SSockAddr) + info.iHwAddr.GetUserLen())
+ address.Append(_L(":"));
+ }
+ address.UpperCase();
+ iface->hardwareAddress = qstringFromDesc(address);
}
-
+
// Get the address of the interface
info.iAddress.Output(address);
- entry.setIp( QHostAddress( qstringFromDesc( address ) ) );
+ entry.setIp(QHostAddress(qstringFromDesc(address)));
+
+ // Get the interface netmask
+ // For some reason netmask is always 0.0.0.0
+ // info.iNetMask.Output(address);
+ // entry.setNetmask( QHostAddress( qstringFromDesc( address ) ) );
- // Get the interface netmask
- // TODO: For some reason netmask is always 0.0.0.0
- //info.iNetMask.Output(address);
- //entry.setNetmask( QHostAddress( qstringFromDesc( address ) ) );
-
// Workaround: Let Symbian determine netmask based on IP address class
- // TODO: works only for IPv4
+ // TODO: Works only for IPv4 - Task: 259128 Implement IPv6 support
TInetAddr netmask;
- netmask.NetMask( info.iAddress );
+ netmask.NetMask(info.iAddress);
netmask.Output(address);
- entry.setNetmask( QHostAddress( qstringFromDesc( address ) ) );
-
+ entry.setNetmask(QHostAddress(qstringFromDesc(address)));
+
// Get the interface broadcast address
- if (iface->flags & QNetworkInterface::CanBroadcast)
- {
+ if (iface->flags & QNetworkInterface::CanBroadcast) {
// For some reason broadcast address is always 0.0.0.0
// info.iBrdAddr.Output(address);
- // entry.setBroadcast( QHostAddress( qstringFromDesc( address ) ) );
-
+ // entry.setBroadcast( QHostAddress( qstringFromDesc( address ) ) );
+
// Workaround: Let Symbian determine broadcast address based on IP address
- // TODO: works only for IPv4
+ // TODO: Works only for IPv4 - Task: 259128 Implement IPv6 support
TInetAddr broadcast;
- broadcast.NetBroadcast( info.iAddress );
+ broadcast.NetBroadcast(info.iAddress);
broadcast.Output(address);
- entry.setBroadcast( QHostAddress( qstringFromDesc( address ) ) );
- }
-
+ entry.setBroadcast(QHostAddress(qstringFromDesc(address)));
+ }
+
// Add new entry to interface address entries
- iface->addressEntries << entry;
-
-#if defined(QNETWORKINTERFACE_DEBUG)
- qDebug("\n Found network interface %s, interface flags:\n\
+ iface->addressEntries << entry;
+
+#if defined(QNETWORKINTERFACE_DEBUG)
+ printf("\n Found network interface %s, interface flags:\n\
IsUp = %d, IsRunning = %d, CanBroadcast = %d,\n\
IsLoopBack = %d, IsPointToPoint = %d, CanMulticast = %d, \n\
ip = %s, netmask = %s, broadcast = %s,\n\
- hwaddress = %s",
- iface->name.toLatin1().constData(),
- iface->flags & QNetworkInterface::IsUp, iface->flags & QNetworkInterface::IsRunning, iface->flags & QNetworkInterface::CanBroadcast,
- iface->flags & QNetworkInterface::IsLoopBack, iface->flags & QNetworkInterface::IsPointToPoint, iface->flags & QNetworkInterface::CanMulticast,
- entry.ip().toString().toLatin1().constData(), entry.netmask().toString().toLatin1().constData(), entry.broadcast().toString().toLatin1().constData(),
- iface->hardwareAddress.toLatin1().constData());
-#endif
+ hwaddress = %s",
+ iface->name.toLatin1().constData(),
+ iface->flags & QNetworkInterface::IsUp, iface->flags & QNetworkInterface::IsRunning, iface->flags & QNetworkInterface::CanBroadcast,
+ iface->flags & QNetworkInterface::IsLoopBack, iface->flags & QNetworkInterface::IsPointToPoint, iface->flags & QNetworkInterface::CanMulticast,
+ entry.ip().toString().toLatin1().constData(), entry.netmask().toString().toLatin1().constData(), entry.broadcast().toString().toLatin1().constData(),
+ iface->hardwareAddress.toLatin1().constData());
+#endif
}
}
+
+ // we will try to use routing info to detect more precisely
+ // netmask and then ::postProcess() should calculate
+ // broadcast addresses
+
+ // use dummy socket to start enumerating routes
+ err = socket.SetOpt(KSoInetEnumRoutes, KSolInetRtCtrl);
+ if (err) {
+ socket.Close();
+ socketServ.Close();
+ // return what we have
+ // up to this moment
+ return interfaces;
+ }
+
+ TSoInetRouteInfo routeInfo;
+ TPckg<TSoInetRouteInfo> routeInfoPkg(routeInfo);
+ while (socket.GetOpt(KSoInetNextRoute, KSolInetRtCtrl, routeInfoPkg) == KErrNone) {
+ TName address;
+
+ // get interface address
+ routeInfo.iIfAddr.Output(address);
+ QHostAddress ifAddr(qstringFromDesc(address));
+ if (ifAddr.isNull())
+ continue;
+
+ routeInfo.iDstAddr.Output(address);
+ QHostAddress destination(qstringFromDesc(address));
+ if (destination.isNull() || destination != ifAddr)
+ continue;
+
+ // search interfaces
+ for (int ifindex = 0; ifindex < interfaces.size(); ++ifindex) {
+ QNetworkInterfacePrivate *iface = interfaces.at(ifindex);
+ for (int eindex = 0; eindex < iface->addressEntries.size(); ++eindex) {
+ QNetworkAddressEntry entry = iface->addressEntries.at(eindex);
+ if (entry.ip() != ifAddr) {
+ continue;
+ } else if (entry.ip().protocol() != QAbstractSocket::IPv4Protocol) {
+ // skip if not IPv4 address (e.g. IPv6)
+ // as results not reliable on Symbian
+ continue;
+ } else {
+ routeInfo.iNetMask.Output(address);
+ QHostAddress netmask(qstringFromDesc(address));
+ entry.setNetmask(netmask);
+ // NULL boradcast address for
+ // ::postProcess to have effect
+ entry.setBroadcast(QHostAddress());
+ iface->addressEntries.replace(eindex, entry);
+ }
+ }
+ }
+ }
+
socket.Close();
- socketServ.Close();
+ socketServ.Close();
+
return interfaces;
}
diff --git a/src/network/network.pro b/src/network/network.pro
index 59cffd0a10..e890b94715 100644
--- a/src/network/network.pro
+++ b/src/network/network.pro
@@ -28,4 +28,3 @@ symbian {
TARGET.UID3=0x2001B2DE
LIBS += -lesock -linsock
}
-
diff --git a/src/network/socket/qabstractsocket.h b/src/network/socket/qabstractsocket.h
index 50a38bb7a6..42e3ffdcac 100644
--- a/src/network/socket/qabstractsocket.h
+++ b/src/network/socket/qabstractsocket.h
@@ -209,7 +209,7 @@ protected:
QAbstractSocket(SocketType socketType, QAbstractSocketPrivate &dd, QObject *parent = 0);
private:
- Q_DECLARE_PRIVATE(QAbstractSocket)
+ Q_DECLARE_SCOPED_PRIVATE(QAbstractSocket)
Q_DISABLE_COPY(QAbstractSocket)
Q_PRIVATE_SLOT(d_func(), void _q_connectToNextAddress())
diff --git a/src/network/socket/qabstractsocketengine_p.h b/src/network/socket/qabstractsocketengine_p.h
index 39c00cc15c..3a6aa6234e 100644
--- a/src/network/socket/qabstractsocketengine_p.h
+++ b/src/network/socket/qabstractsocketengine_p.h
@@ -177,7 +177,7 @@ protected:
void setPeerPort(quint16 port);
private:
- Q_DECLARE_PRIVATE(QAbstractSocketEngine)
+ Q_DECLARE_SCOPED_PRIVATE(QAbstractSocketEngine)
Q_DISABLE_COPY(QAbstractSocketEngine)
};
diff --git a/src/network/socket/qhttpsocketengine_p.h b/src/network/socket/qhttpsocketengine_p.h
index bc7e47a263..f4d29cf376 100644
--- a/src/network/socket/qhttpsocketengine_p.h
+++ b/src/network/socket/qhttpsocketengine_p.h
@@ -144,7 +144,7 @@ private:
void emitWriteNotification();
void emitConnectionNotification();
- Q_DECLARE_PRIVATE(QHttpSocketEngine)
+ Q_DECLARE_SCOPED_PRIVATE(QHttpSocketEngine)
Q_DISABLE_COPY(QHttpSocketEngine)
};
diff --git a/src/network/socket/qlocalserver.h b/src/network/socket/qlocalserver.h
index 24b69a8b3f..10dd62ff9d 100644
--- a/src/network/socket/qlocalserver.h
+++ b/src/network/socket/qlocalserver.h
@@ -58,7 +58,7 @@ class QLocalServerPrivate;
class Q_NETWORK_EXPORT QLocalServer : public QObject
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QLocalServer)
+ Q_DECLARE_SCOPED_PRIVATE(QLocalServer)
Q_SIGNALS:
void newConnection();
diff --git a/src/network/socket/qlocalserver_unix.cpp b/src/network/socket/qlocalserver_unix.cpp
index 14a0c7869e..aa1f7dab89 100644
--- a/src/network/socket/qlocalserver_unix.cpp
+++ b/src/network/socket/qlocalserver_unix.cpp
@@ -117,7 +117,7 @@ bool QLocalServerPrivate::listen(const QString &requestedServerName)
//
// As an workaround, we set the socket to non blocking so possible
// subsequent call to accept will not block in any case
- //
+ //
// This change can be removed once more generic fix to select thread
// syncronization problem is implemented.
int flags = fcntl(listenSocket, F_GETFL, 0);
@@ -125,10 +125,10 @@ bool QLocalServerPrivate::listen(const QString &requestedServerName)
|| -1 == (fcntl(listenSocket, F_SETFL, flags | O_NONBLOCK))) {
setError(QLatin1String("QLocalServer::listen"));
closeServer();
- return false;
- }
-#endif
-
+ return false;
+ }
+#endif
+
// bind
if(-1 == QT_SOCKET_BIND(listenSocket, (sockaddr *)&addr, sizeof(sockaddr_un))) {
setError(QLatin1String("QLocalServer::listen"));
diff --git a/src/network/socket/qlocalsocket.h b/src/network/socket/qlocalsocket.h
index 4bff62eb7e..6a07d740a6 100644
--- a/src/network/socket/qlocalsocket.h
+++ b/src/network/socket/qlocalsocket.h
@@ -58,7 +58,7 @@ class QLocalSocketPrivate;
class Q_NETWORK_EXPORT QLocalSocket : public QIODevice
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QLocalSocket)
+ Q_DECLARE_SCOPED_PRIVATE(QLocalSocket)
public:
enum LocalSocketError
diff --git a/src/network/socket/qlocalsocket_unix.cpp b/src/network/socket/qlocalsocket_unix.cpp
index 835b922721..22873d6c98 100644
--- a/src/network/socket/qlocalsocket_unix.cpp
+++ b/src/network/socket/qlocalsocket_unix.cpp
@@ -306,7 +306,7 @@ void QLocalSocketPrivate::_q_connectToSocket()
case ETIMEDOUT:
errorOccurred(QLocalSocket::SocketTimeoutError, function);
break;
- case EINPROGRESS:
+ case EINPROGRESS:
case EAGAIN:
// Try again later, all of the sockets listening are full
if (!delayConnect) {
@@ -539,14 +539,14 @@ bool QLocalSocket::waitForConnected(int msec)
timer.start();
while (state() == ConnectingState
&& (-1 == msec || timer.elapsed() < msec)) {
-#ifdef Q_OS_SYMBIAN
- // On Symbian, ready-to-write is signaled when non-blocking socket
- // connect is finised. Is ready-to-read really used on other
- // UNIX paltforms when using non-blocking AF_UNIX socket?
+#ifdef Q_OS_SYMBIAN
+ // On Symbian, ready-to-write is signaled when non-blocking socket
+ // connect is finised. Is ready-to-read really used on other
+ // UNIX paltforms when using non-blocking AF_UNIX socket?
result = ::select(d->connectingSocket + 1, 0, &fds, 0, &timeout);
#else
- result = ::select(d->connectingSocket + 1, &fds, 0, 0, &timeout);
-#endif
+ result = ::select(d->connectingSocket + 1, &fds, 0, 0, &timeout);
+#endif
if (-1 == result && errno != EINTR) {
d->errorOccurred( QLocalSocket::UnknownSocketError,
QLatin1String("QLocalSocket::waitForConnected"));
diff --git a/src/network/socket/qnativesocketengine.cpp b/src/network/socket/qnativesocketengine.cpp
index 666c86e44a..f88094af8b 100644
--- a/src/network/socket/qnativesocketengine.cpp
+++ b/src/network/socket/qnativesocketengine.cpp
@@ -381,13 +381,13 @@ bool QNativeSocketEngine::initialize(QAbstractSocket::SocketType socketType, QAb
return false;
}
-
+
// Make sure we receive out-of-band data
// On Symbian OS this works only with native IP stack, not with WinSock
if (socketType == QAbstractSocket::TcpSocket
&& !setOption(ReceiveOutOfBandData, 1)) {
qWarning("QNativeSocketEngine::initialize unable to inline out-of-band data");
- }
+ }
// Set the send and receive buffer sizes to a magic size, found
// most optimal for our platforms.
@@ -913,7 +913,7 @@ bool QNativeSocketEngine::waitForReadOrWrite(bool *readyToRead, bool *readyToWri
d_func()->fetchConnectionParameters();
return true;
}
-#endif
+#endif
if (ret == 0) {
if (timedOut)
*timedOut = true;
@@ -1094,7 +1094,7 @@ bool QExceptionNotifier::event(QEvent *e)
engine->exceptionNotification();
return true;
}
- return QSocketNotifier::event(e);
+ return QSocketNotifier::event(e);
}
void QNativeSocketEngine::setReadNotificationEnabled(bool enable)
diff --git a/src/network/socket/qnativesocketengine_p.h b/src/network/socket/qnativesocketengine_p.h
index 0a5c19d098..e26e9cb264 100644
--- a/src/network/socket/qnativesocketengine_p.h
+++ b/src/network/socket/qnativesocketengine_p.h
@@ -288,7 +288,7 @@ public Q_SLOTS:
void connectionNotification();
private:
- Q_DECLARE_PRIVATE(QNativeSocketEngine)
+ Q_DECLARE_SCOPED_PRIVATE(QNativeSocketEngine)
Q_DISABLE_COPY(QNativeSocketEngine)
};
@@ -317,8 +317,8 @@ public:
struct sockaddr_storage aa;
#else
struct sockaddr_in aa;
-#endif
-
+#endif
+
QSocketNotifier *readNotifier, *writeNotifier, *exceptNotifier;
#ifdef Q_OS_WIN
diff --git a/src/network/socket/qnativesocketengine_unix.cpp b/src/network/socket/qnativesocketengine_unix.cpp
index 7584357461..5df9769071 100644
--- a/src/network/socket/qnativesocketengine_unix.cpp
+++ b/src/network/socket/qnativesocketengine_unix.cpp
@@ -337,8 +337,8 @@ bool QNativeSocketEnginePrivate::nativeConnect(const QHostAddress &addr, quint16
{
#ifdef QNATIVESOCKETENGINE_DEBUG
qDebug("QNativeSocketEnginePrivate::nativeConnect() : %d ", socketDescriptor);
-#endif
-
+#endif
+
struct sockaddr_in sockAddrIPv4;
struct sockaddr *sockAddrPtr = 0;
QT_SOCKLEN_T sockAddrSize = 0;
@@ -678,23 +678,23 @@ qint64 QNativeSocketEnginePrivate::nativeSendDatagram(const char *data, qint64 l
#if !defined(QT_NO_IPV6)
struct sockaddr_in6 sockAddrIPv6;
if (host.protocol() == QAbstractSocket::IPv6Protocol) {
- memset(&sockAddrIPv6, 0, sizeof(sockAddrIPv6));
- sockAddrIPv6.sin6_family = AF_INET6;
- sockAddrIPv6.sin6_port = htons(port);
-
- Q_IPV6ADDR tmp = host.toIPv6Address();
- memcpy(&sockAddrIPv6.sin6_addr.s6_addr, &tmp, sizeof(tmp));
- sockAddrSize = sizeof(sockAddrIPv6);
- sockAddrPtr = (struct sockaddr *)&sockAddrIPv6;
+ memset(&sockAddrIPv6, 0, sizeof(sockAddrIPv6));
+ sockAddrIPv6.sin6_family = AF_INET6;
+ sockAddrIPv6.sin6_port = htons(port);
+
+ Q_IPV6ADDR tmp = host.toIPv6Address();
+ memcpy(&sockAddrIPv6.sin6_addr.s6_addr, &tmp, sizeof(tmp));
+ sockAddrSize = sizeof(sockAddrIPv6);
+ sockAddrPtr = (struct sockaddr *)&sockAddrIPv6;
} else
#endif
if (host.protocol() == QAbstractSocket::IPv4Protocol) {
- memset(&sockAddrIPv4, 0, sizeof(sockAddrIPv4));
- sockAddrIPv4.sin_family = AF_INET;
- sockAddrIPv4.sin_port = htons(port);
- sockAddrIPv4.sin_addr.s_addr = htonl(host.toIPv4Address());
- sockAddrSize = sizeof(sockAddrIPv4);
- sockAddrPtr = (struct sockaddr *)&sockAddrIPv4;
+ memset(&sockAddrIPv4, 0, sizeof(sockAddrIPv4));
+ sockAddrIPv4.sin_family = AF_INET;
+ sockAddrIPv4.sin_port = htons(port);
+ sockAddrIPv4.sin_addr.s_addr = htonl(host.toIPv4Address());
+ sockAddrSize = sizeof(sockAddrIPv4);
+ sockAddrPtr = (struct sockaddr *)&sockAddrIPv4;
}
// ignore the SIGPIPE signal
@@ -916,15 +916,16 @@ int QNativeSocketEnginePrivate::nativeSelect(int timeout, bool selectForRead) co
#ifndef Q_OS_SYMBIAN
retval = qt_safe_select(socketDescriptor + 1, &fds, 0, 0, timeout < 0 ? 0 : &tv);
#else
- retval = qt_safe_select(socketDescriptor + 1, &fds, 0, &fdexec, timeout < 0 ? 0 : &tv);
+ retval = qt_socket_select(socketDescriptor + 1, &fds, 0, &fdexec, timeout < 0 ? 0 : &tv);
#endif
else
#ifndef Q_OS_SYMBIAN
retval = qt_safe_select(socketDescriptor + 1, 0, &fds, 0, timeout < 0 ? 0 : &tv);
#else
- retval = qt_safe_select(socketDescriptor + 1, 0, &fds, &fdexec, timeout < 0 ? 0 : &tv);
+ retval = qt_socket_select(socketDescriptor + 1, 0, &fds, &fdexec, timeout < 0 ? 0 : &tv);
#endif
+
#ifdef Q_OS_SYMBIAN
bool selectForExec = false;
if(retval != 0) {
@@ -934,16 +935,16 @@ int QNativeSocketEnginePrivate::nativeSelect(int timeout, bool selectForRead) co
selectForExec = FD_ISSET(socketDescriptor, &fdexec);
}
if(selectForExec) {
- qWarning("nativeSelect (selectForRead %d, retVal %d, errno %d) Unexpected expectfds ready in fd %d",
+ qWarning("nativeSelect (selectForRead %d, retVal %d, errno %d) Unexpected expectfds ready in fd %d",
selectForRead, retval, errno, socketDescriptor);
- }
+ }
#endif
return retval;
}
int QNativeSocketEnginePrivate::nativeSelect(int timeout, bool checkRead, bool checkWrite,
- bool *selectForRead, bool *selectForWrite) const
+ bool *selectForRead, bool *selectForWrite) const
{
fd_set fdread;
FD_ZERO(&fdread);
diff --git a/src/network/socket/qsocks5socketengine_p.h b/src/network/socket/qsocks5socketengine_p.h
index 19560f014e..04c6280517 100644
--- a/src/network/socket/qsocks5socketengine_p.h
+++ b/src/network/socket/qsocks5socketengine_p.h
@@ -117,7 +117,7 @@ public:
void setExceptionNotificationEnabled(bool enable);
private:
- Q_DECLARE_PRIVATE(QSocks5SocketEngine)
+ Q_DECLARE_SCOPED_PRIVATE(QSocks5SocketEngine)
Q_DISABLE_COPY(QSocks5SocketEngine)
Q_PRIVATE_SLOT(d_func(), void _q_controlSocketConnected())
Q_PRIVATE_SLOT(d_func(), void _q_controlSocketReadNotification())
diff --git a/src/network/socket/qtcpserver.h b/src/network/socket/qtcpserver.h
index 19f2a4514f..697f998b30 100644
--- a/src/network/socket/qtcpserver.h
+++ b/src/network/socket/qtcpserver.h
@@ -99,7 +99,7 @@ Q_SIGNALS:
private:
Q_DISABLE_COPY(QTcpServer)
- Q_DECLARE_PRIVATE(QTcpServer)
+ Q_DECLARE_SCOPED_PRIVATE(QTcpServer)
};
QT_END_NAMESPACE
diff --git a/src/network/socket/qtcpsocket.h b/src/network/socket/qtcpsocket.h
index 4e1003ab7b..b0bb80f865 100644
--- a/src/network/socket/qtcpsocket.h
+++ b/src/network/socket/qtcpsocket.h
@@ -65,7 +65,7 @@ protected:
private:
Q_DISABLE_COPY(QTcpSocket)
- Q_DECLARE_PRIVATE(QTcpSocket)
+ Q_DECLARE_SCOPED_PRIVATE(QTcpSocket)
};
QT_END_NAMESPACE
diff --git a/src/network/socket/qudpsocket.cpp b/src/network/socket/qudpsocket.cpp
index 32f72dfe34..71a71cb9c0 100644
--- a/src/network/socket/qudpsocket.cpp
+++ b/src/network/socket/qudpsocket.cpp
@@ -94,12 +94,12 @@
This enum describes the different flags you can pass to modify the
behavior of QUdpSocket::bind().
-
+
\note On Symbian OS bind flags behaviour depends on process capabilties.
- If process has NetworkControl capability, the bind attempt with
+ If process has NetworkControl capability, the bind attempt with
ReuseAddressHint will always succeed even the address and port is already
- bound by another socket with any flags. If process does not have
- NetworkControl capability, the bind attempt to address and port already
+ bound by another socket with any flags. If process does not have
+ NetworkControl capability, the bind attempt to address and port already
bound by another socket will always fail.
\value ShareAddress Allow other services to bind to the same address
@@ -356,7 +356,7 @@ qint64 QUdpSocket::pendingDatagramSize() const
as even if they are sent successfully, they are likely to be
fragmented by the IP layer before arriving at their final
destination.
-
+
\warning In S60 5.0 and earlier versions, the writeDatagram return
value is not reliable for large datagrams.
@@ -386,8 +386,8 @@ qint64 QUdpSocket::writeDatagram(const char *data, qint64 size, const QHostAddre
// As an workaround, we just set sent = size
if( sent == 0 )
sent = size;
- }
-#endif
+ }
+#endif
d->cachedSocketDescriptor = d->socketEngine->socketDescriptor();
if (sent >= 0) {
@@ -400,7 +400,7 @@ qint64 QUdpSocket::writeDatagram(const char *data, qint64 size, const QHostAddre
return sent;
}
-/*!
+/*!
\fn qint64 QUdpSocket::writeDatagram(const QByteArray &datagram,
const QHostAddress &host, quint16 port)
\overload
diff --git a/src/network/socket/qudpsocket.h b/src/network/socket/qudpsocket.h
index 078b8ad379..ea0c42c0ab 100644
--- a/src/network/socket/qudpsocket.h
+++ b/src/network/socket/qudpsocket.h
@@ -85,7 +85,7 @@ public:
private:
Q_DISABLE_COPY(QUdpSocket)
- Q_DECLARE_PRIVATE(QUdpSocket)
+ Q_DECLARE_SCOPED_PRIVATE(QUdpSocket)
};
Q_DECLARE_OPERATORS_FOR_FLAGS(QUdpSocket::BindMode)
diff --git a/src/network/ssl/qsslsocket.h b/src/network/ssl/qsslsocket.h
index cab06671af..f3600bff80 100644
--- a/src/network/ssl/qsslsocket.h
+++ b/src/network/ssl/qsslsocket.h
@@ -193,7 +193,7 @@ protected:
qint64 writeData(const char *data, qint64 len);
private:
- Q_DECLARE_PRIVATE(QSslSocket)
+ Q_DECLARE_SCOPED_PRIVATE(QSslSocket)
Q_DISABLE_COPY(QSslSocket)
Q_PRIVATE_SLOT(d_func(), void _q_connectedSlot())
Q_PRIVATE_SLOT(d_func(), void _q_hostFoundSlot())
diff --git a/src/network/ssl/qsslsocket_openssl_symbols.cpp b/src/network/ssl/qsslsocket_openssl_symbols.cpp
index 6b777e3715..2199a584de 100644
--- a/src/network/ssl/qsslsocket_openssl_symbols.cpp
+++ b/src/network/ssl/qsslsocket_openssl_symbols.cpp
@@ -602,7 +602,7 @@ bool q_resolveOpenSslSymbols()
RESOLVEFUNC(d2i_RSAPrivateKey, 2296, libs.second )
#endif
RESOLVEFUNC(OPENSSL_add_all_algorithms_noconf, 1153, libs.second )
- RESOLVEFUNC(OPENSSL_add_all_algorithms_conf, 1152, libs.second )
+ RESOLVEFUNC(OPENSSL_add_all_algorithms_conf, 1152, libs.second )
#else // Q_OS_SYMBIAN
#ifdef SSLEAY_MACROS
RESOLVEFUNC(ASN1_dup)
@@ -723,7 +723,7 @@ bool q_resolveOpenSslSymbols()
#endif
RESOLVEFUNC(OPENSSL_add_all_algorithms_noconf)
RESOLVEFUNC(OPENSSL_add_all_algorithms_conf)
-#endif // Q_OS_SYMBIAN
+#endif // Q_OS_SYMBIAN
symbolsResolved = true;
delete libs.first;
delete libs.second;
diff --git a/src/network/ssl/ssl.pri b/src/network/ssl/ssl.pri
index 6021d5da41..d07f4067ce 100644
--- a/src/network/ssl/ssl.pri
+++ b/src/network/ssl/ssl.pri
@@ -1,11 +1,11 @@
# OpenSSL support; compile in QSslSocket.
contains(QT_CONFIG, openssl) | contains(QT_CONFIG, openssl-linked) {
-
+
symbian {
INCLUDEPATH *= $$OS_LAYER_SSL_SYSTEMINCLUDE
} else {
- include($$QT_SOURCE_TREE/config.tests/unix/openssl/openssl.pri)
+ include($$QT_SOURCE_TREE/config.tests/unix/openssl/openssl.pri)
}
HEADERS += ssl/qssl.h \
diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h b/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h
index 906817b5b8..ccfd3b492b 100644
--- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h
+++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h
@@ -93,7 +93,7 @@ public:
class QGL2PaintEngineEx : public QPaintEngineEx
{
- Q_DECLARE_PRIVATE(QGL2PaintEngineEx)
+ Q_DECLARE_SCOPED_PRIVATE(QGL2PaintEngineEx)
public:
QGL2PaintEngineEx();
~QGL2PaintEngineEx();
diff --git a/src/opengl/qgl.h b/src/opengl/qgl.h
index 9ee200b1ad..fee19a52ba 100644
--- a/src/opengl/qgl.h
+++ b/src/opengl/qgl.h
@@ -266,7 +266,7 @@ Q_OPENGL_EXPORT bool operator!=(const QGLFormat&, const QGLFormat&);
class Q_OPENGL_EXPORT QGLContext
{
- Q_DECLARE_PRIVATE(QGLContext)
+ Q_DECLARE_SCOPED_PRIVATE(QGLContext)
public:
QGLContext(const QGLFormat& format, QPaintDevice* device);
QGLContext(const QGLFormat& format);
@@ -388,7 +388,7 @@ private:
class Q_OPENGL_EXPORT QGLWidget : public QWidget
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QGLWidget)
+ Q_DECLARE_SCOPED_PRIVATE(QGLWidget)
public:
explicit QGLWidget(QWidget* parent=0,
const QGLWidget* shareWidget = 0, Qt::WindowFlags f=0);
diff --git a/src/opengl/qglframebufferobject.h b/src/opengl/qglframebufferobject.h
index 108bbb400b..7130dec7dc 100644
--- a/src/opengl/qglframebufferobject.h
+++ b/src/opengl/qglframebufferobject.h
@@ -56,7 +56,7 @@ class QGLFramebufferObjectFormat;
class Q_OPENGL_EXPORT QGLFramebufferObject : public QPaintDevice
{
- Q_DECLARE_PRIVATE(QGLFramebufferObject)
+ Q_DECLARE_SCOPED_PRIVATE(QGLFramebufferObject)
public:
enum Attachment {
NoAttachment,
diff --git a/src/opengl/qglpaintdevice_qws_p.h b/src/opengl/qglpaintdevice_qws_p.h
index ec7d6c8fc3..08ad304807 100644
--- a/src/opengl/qglpaintdevice_qws_p.h
+++ b/src/opengl/qglpaintdevice_qws_p.h
@@ -64,7 +64,7 @@ class QWSGLPaintDevicePrivate;
class Q_OPENGL_EXPORT QWSGLPaintDevice : public QPaintDevice
{
- Q_DECLARE_PRIVATE(QWSGLPaintDevice)
+ Q_DECLARE_SCOPED_PRIVATE(QWSGLPaintDevice)
public:
QWSGLPaintDevice(QWidget *widget);
~QWSGLPaintDevice();
diff --git a/src/opengl/qglpixelbuffer.h b/src/opengl/qglpixelbuffer.h
index 06894c0013..f8b57074d9 100644
--- a/src/opengl/qglpixelbuffer.h
+++ b/src/opengl/qglpixelbuffer.h
@@ -55,7 +55,7 @@ class QGLPixelBufferPrivate;
class Q_OPENGL_EXPORT QGLPixelBuffer : public QPaintDevice
{
- Q_DECLARE_PRIVATE(QGLPixelBuffer)
+ Q_DECLARE_SCOPED_PRIVATE(QGLPixelBuffer)
public:
QGLPixelBuffer(const QSize &size, const QGLFormat &format = QGLFormat::defaultFormat(),
QGLWidget *shareWidget = 0);
diff --git a/src/opengl/qglscreen_qws.h b/src/opengl/qglscreen_qws.h
index 8f2ccb769d..4caa134caf 100644
--- a/src/opengl/qglscreen_qws.h
+++ b/src/opengl/qglscreen_qws.h
@@ -88,7 +88,7 @@ public:
class Q_OPENGL_EXPORT QGLScreen : public QScreen
{
- Q_DECLARE_PRIVATE(QGLScreen)
+ Q_DECLARE_SCOPED_PRIVATE(QGLScreen)
public:
QGLScreen(int displayId);
virtual ~QGLScreen();
diff --git a/src/opengl/qglwindowsurface_qws_p.h b/src/opengl/qglwindowsurface_qws_p.h
index 1def568266..f6d6713934 100644
--- a/src/opengl/qglwindowsurface_qws_p.h
+++ b/src/opengl/qglwindowsurface_qws_p.h
@@ -70,7 +70,7 @@ class QWSGLWindowSurfacePrivate;
class Q_OPENGL_EXPORT QWSGLWindowSurface : public QWSWindowSurface
{
- Q_DECLARE_PRIVATE(QWSGLWindowSurface)
+ Q_DECLARE_SCOPED_PRIVATE(QWSGLWindowSurface)
public:
QWSGLWindowSurface(QWidget *widget);
diff --git a/src/opengl/qpaintengine_opengl_p.h b/src/opengl/qpaintengine_opengl_p.h
index 439782bd07..e1cd8973b6 100644
--- a/src/opengl/qpaintengine_opengl_p.h
+++ b/src/opengl/qpaintengine_opengl_p.h
@@ -74,7 +74,7 @@ public:
class QOpenGLPaintEngine : public QPaintEngineEx
{
- Q_DECLARE_PRIVATE(QOpenGLPaintEngine)
+ Q_DECLARE_SCOPED_PRIVATE(QOpenGLPaintEngine)
public:
QOpenGLPaintEngine();
~QOpenGLPaintEngine();
diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.h b/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.h
index 6148b14ede..7585b4a97f 100644
--- a/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.h
+++ b/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.h
@@ -53,7 +53,7 @@ class QDirectFBPaintEnginePrivate;
class QDirectFBPaintEngine : public QRasterPaintEngine
{
- Q_DECLARE_PRIVATE(QDirectFBPaintEngine)
+ Q_DECLARE_SCOPED_PRIVATE(QDirectFBPaintEngine)
public:
QDirectFBPaintEngine(QPaintDevice *device);
virtual ~QDirectFBPaintEngine();
diff --git a/src/plugins/imageformats/mng/qmnghandler.h b/src/plugins/imageformats/mng/qmnghandler.h
index b9e37bf235..aa6efd36bb 100644
--- a/src/plugins/imageformats/mng/qmnghandler.h
+++ b/src/plugins/imageformats/mng/qmnghandler.h
@@ -74,7 +74,7 @@ class QMngHandler : public QImageIOHandler
virtual bool supportsOption(ImageOption option) const;
private:
- Q_DECLARE_PRIVATE(QMngHandler)
+ Q_DECLARE_SCOPED_PRIVATE(QMngHandler)
QScopedPointer<QMngHandlerPrivate> d_ptr;
};
diff --git a/src/plugins/qpluginbase.pri b/src/plugins/qpluginbase.pri
index b14f839749..10563c1967 100644
--- a/src/plugins/qpluginbase.pri
+++ b/src/plugins/qpluginbase.pri
@@ -16,6 +16,6 @@ wince*:LIBS += $$QMAKE_LIBS_GUI
symbian: {
TARGET.EPOCALLOWDLLDATA=1
- TARGET.CAPABILITY = All -Tcb
+ TARGET.CAPABILITY = All -Tcb
load(armcc_warnings)
}
diff --git a/src/plugins/s60/5_0/5_0.pro b/src/plugins/s60/5_0/5_0.pro
index 878a466a37..d7c3cb2bb1 100644
--- a/src/plugins/s60/5_0/5_0.pro
+++ b/src/plugins/s60/5_0/5_0.pro
@@ -8,7 +8,7 @@ contains(S60_VERSION, 3.1) {
} else {
SOURCES += ../src/qlocale_3_2.cpp \
../src/qdesktopservices_3_2.cpp
- LIBS += -ldirectorylocalizer
+ LIBS += -ldirectorylocalizer
INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
}
diff --git a/src/plugins/s60/bwins/qts60pluginu.def b/src/plugins/s60/bwins/qts60pluginu.def
index 549f71f138..a082262156 100644
--- a/src/plugins/s60/bwins/qts60pluginu.def
+++ b/src/plugins/s60/bwins/qts60pluginu.def
@@ -4,4 +4,3 @@ EXPORTS
?defaultGetLongDateFormatSpec@@YA?AVTPtrC16@@AAVTExtendedLocale@@@Z @ 3 NONAME ; class TPtrC16 defaultGetLongDateFormatSpec(class TExtendedLocale &)
?defaultGetShortDateFormatSpec@@YA?AVTPtrC16@@AAVTExtendedLocale@@@Z @ 4 NONAME ; class TPtrC16 defaultGetShortDateFormatSpec(class TExtendedLocale &)
?localizedDirectoryName@@YA?AVQString@@AAV1@@Z @ 5 NONAME ; class QString localizedDirectoryName(class QString &)
-
diff --git a/src/plugins/s60/eabi/qts60pluginu.def b/src/plugins/s60/eabi/qts60pluginu.def
index a433a5d30f..d76843644c 100644
--- a/src/plugins/s60/eabi/qts60pluginu.def
+++ b/src/plugins/s60/eabi/qts60pluginu.def
@@ -4,4 +4,3 @@ EXPORTS
_Z28defaultGetLongDateFormatSpecR15TExtendedLocale @ 3 NONAME
_Z29defaultGetShortDateFormatSpecR15TExtendedLocale @ 4 NONAME
_Z22localizedDirectoryNameR7QString @ 5 NONAME
-
diff --git a/src/plugins/s60/s60pluginbase.pri b/src/plugins/s60/s60pluginbase.pri
index 62100f929a..0e11c7e4a7 100644
--- a/src/plugins/s60/s60pluginbase.pri
+++ b/src/plugins/s60/s60pluginbase.pri
@@ -1,4 +1,4 @@
-# Note: These version based 'plugins' are not an actual Qt plugins,
+# Note: These version based 'plugins' are not an actual Qt plugins,
# they are just regular runtime loaded libraries
include(../../qpluginbase.pri)
diff --git a/src/plugins/s60/src/qdesktopservices_3_1.cpp b/src/plugins/s60/src/qdesktopservices_3_1.cpp
index 0551a74297..0f8e6a6986 100644
--- a/src/plugins/s60/src/qdesktopservices_3_1.cpp
+++ b/src/plugins/s60/src/qdesktopservices_3_1.cpp
@@ -47,4 +47,3 @@ EXPORT_C QString localizedDirectoryName(QString&)
qWarning("QDesktopServices::displayName() not implemented for this platform version");
return QString();
}
-
diff --git a/src/plugins/s60/src/qdesktopservices_3_2.cpp b/src/plugins/s60/src/qdesktopservices_3_2.cpp
index cbdc81064a..370843661c 100644
--- a/src/plugins/s60/src/qdesktopservices_3_2.cpp
+++ b/src/plugins/s60/src/qdesktopservices_3_2.cpp
@@ -52,14 +52,16 @@ EXPORT_C QString localizedDirectoryName(QString& rawPath)
QString ret;
TRAPD(err,
- CDirectoryLocalizer* localizer = CDirectoryLocalizer::NewL();
- CleanupStack::PushL(localizer);
- localizer->SetFullPath(qt_QString2TPtrC(QDir::toNativeSeparators(rawPath)));
- if(localizer->IsLocalized()){
- TPtrC locName(localizer->LocalizedName());
- ret = qt_TDesC2QStringL(locName);
- }
- CleanupStack::PopAndDestroy(localizer);
+ QT_TRYCATCH_LEAVING(
+ CDirectoryLocalizer* localizer = CDirectoryLocalizer::NewL();
+ CleanupStack::PushL(localizer);
+ localizer->SetFullPath(qt_QString2TPtrC(QDir::toNativeSeparators(rawPath)));
+ if(localizer->IsLocalized()){
+ TPtrC locName(localizer->LocalizedName());
+ ret = qt_TDesC2QString(locName);
+ }
+ CleanupStack::PopAndDestroy(localizer);
+ )
)
if (err != KErrNone)
@@ -75,4 +77,3 @@ EXPORT_C QString localizedDirectoryName(QString& /* rawPath */)
return QString();
}
#endif
-
diff --git a/src/plugins/sqldrivers/sqlite_symbian/sqlite_symbian.pro b/src/plugins/sqldrivers/sqlite_symbian/sqlite_symbian.pro
index 057434102b..473414486d 100644
--- a/src/plugins/sqldrivers/sqlite_symbian/sqlite_symbian.pro
+++ b/src/plugins/sqldrivers/sqlite_symbian/sqlite_symbian.pro
@@ -3,4 +3,3 @@ TEMPLATE = subdirs
# We just want to extract the zip file containing sqlite binaries for Symbian
BLD_INF_RULES.prj_exports += ":zip SQLite3_v9.2.zip"
-
diff --git a/src/qt3support/other/q3dragobject.h b/src/qt3support/other/q3dragobject.h
index 356e1f7498..c25e54b881 100644
--- a/src/qt3support/other/q3dragobject.h
+++ b/src/qt3support/other/q3dragobject.h
@@ -68,7 +68,7 @@ class QPixmap;
class Q_COMPAT_EXPORT Q3DragObject : public QObject, public QMimeSource {
Q_OBJECT
- Q_DECLARE_PRIVATE(Q3DragObject)
+ Q_DECLARE_SCOPED_PRIVATE(Q3DragObject)
public:
Q3DragObject(QWidget * dragSource = 0, const char *name = 0);
virtual ~Q3DragObject();
@@ -99,7 +99,7 @@ private:
class Q_COMPAT_EXPORT Q3StoredDrag: public Q3DragObject {
Q_OBJECT
- Q_DECLARE_PRIVATE(Q3StoredDrag)
+ Q_DECLARE_SCOPED_PRIVATE(Q3StoredDrag)
public:
Q3StoredDrag(const char *mimeType, QWidget *dragSource = 0, const char *name = 0);
~Q3StoredDrag();
@@ -118,7 +118,7 @@ private:
class Q_COMPAT_EXPORT Q3TextDrag: public Q3DragObject {
Q_OBJECT
- Q_DECLARE_PRIVATE(Q3TextDrag)
+ Q_DECLARE_SCOPED_PRIVATE(Q3TextDrag)
public:
Q3TextDrag(const QString &, QWidget *dragSource = 0, const char *name = 0);
Q3TextDrag(QWidget * dragSource = 0, const char * name = 0);
@@ -143,7 +143,7 @@ private:
class Q_COMPAT_EXPORT Q3ImageDrag: public Q3DragObject {
Q_OBJECT
- Q_DECLARE_PRIVATE(Q3ImageDrag)
+ Q_DECLARE_SCOPED_PRIVATE(Q3ImageDrag)
public:
Q3ImageDrag(QImage image, QWidget * dragSource = 0, const char * name = 0);
Q3ImageDrag(QWidget * dragSource = 0, const char * name = 0);
diff --git a/src/qt3support/painting/q3paintengine_svg_p.h b/src/qt3support/painting/q3paintengine_svg_p.h
index 26452ab364..1faffff06d 100644
--- a/src/qt3support/painting/q3paintengine_svg_p.h
+++ b/src/qt3support/painting/q3paintengine_svg_p.h
@@ -63,7 +63,7 @@ class Q3SVGPaintEnginePrivate;
class Q3SVGPaintEngine : public QPaintEngine
{
- Q_DECLARE_PRIVATE(Q3SVGPaintEngine)
+ Q_DECLARE_SCOPED_PRIVATE(Q3SVGPaintEngine)
public:
Q3SVGPaintEngine();
diff --git a/src/qt3support/widgets/q3mainwindow.h b/src/qt3support/widgets/q3mainwindow.h
index 60dea5d4eb..2e056b4dc7 100644
--- a/src/qt3support/widgets/q3mainwindow.h
+++ b/src/qt3support/widgets/q3mainwindow.h
@@ -66,7 +66,7 @@ template<class T> class QList;
class Q_COMPAT_EXPORT Q3MainWindow: public QWidget
{
Q_OBJECT
- Q_DECLARE_PRIVATE(Q3MainWindow)
+ Q_DECLARE_SCOPED_PRIVATE(Q3MainWindow)
Q_PROPERTY(bool rightJustification READ rightJustification WRITE setRightJustification DESIGNABLE false)
Q_PROPERTY(bool usesBigPixmaps READ usesBigPixmaps WRITE setUsesBigPixmaps)
diff --git a/src/qt3support/widgets/q3titlebar_p.h b/src/qt3support/widgets/q3titlebar_p.h
index c4be34e750..6b3c22c671 100644
--- a/src/qt3support/widgets/q3titlebar_p.h
+++ b/src/qt3support/widgets/q3titlebar_p.h
@@ -67,7 +67,7 @@ class QPixmap;
class Q_COMPAT_EXPORT Q3TitleBar : public QWidget
{
Q_OBJECT
- Q_DECLARE_PRIVATE(Q3TitleBar)
+ Q_DECLARE_SCOPED_PRIVATE(Q3TitleBar)
Q_PROPERTY(bool autoRaise READ autoRaise WRITE setAutoRaise)
Q_PROPERTY(bool movable READ isMovable WRITE setMovable)
diff --git a/src/s60installs/qt.iby b/src/s60installs/qt.iby
index 8a0e03cc41..dc9ec43f28 100644
--- a/src/s60installs/qt.iby
+++ b/src/s60installs/qt.iby
@@ -5,7 +5,7 @@
// Dependancies for more than one module
#include <base.iby>
-#include <openenv.iby> // QtCore, QtGui, QtNetwork, QtOpenGL, QSvgIconEngine,
+#include <openenv.iby> // QtCore, QtGui, QtNetwork, QtOpenGL, QSvgIconEngine,
#include <cone.iby> // QtGui, QtOpenGL
#include <stdcpp.iby> // for std C++ support
diff --git a/src/s60installs/qt_libs.pro b/src/s60installs/qt_libs.pro
index bd5c67faea..cb03a0592d 100644
--- a/src/s60installs/qt_libs.pro
+++ b/src/s60installs/qt_libs.pro
@@ -9,10 +9,10 @@ symbian: {
TARGET.UID3 = 0x2001E61C
VERSION=$${QT_MAJOR_VERSION}.$${QT_MINOR_VERSION}.$${QT_PATCH_VERSION}
- qtresources.sources = $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/s60main.rsc
+ qtresources.sources = $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/s60main.rsc
qtresources.path = $$APP_RESOURCE_DIR
- qtlibraries.sources = \
+ qtlibraries.sources = \
QtCore.dll \
QtXml.dll \
QtGui.dll \
@@ -23,28 +23,40 @@ symbian: {
qts60plugin_3_1.dll \
qts60plugin_3_2.dll \
qts60plugin_5_0.dll
-
+
# TODO: This should be conditional in PKG file, see commented code below
# However we don't yet have such mechanism in place
contains(S60_VERSION, 3.1)|contains(S60_VERSION, 3.2)|contains(S60_VERSION, 5.0) {
- contains(CONFIG, system-sqlite): qtlibraries.sources += sqlite3.dll
- }
-
+ contains(CONFIG, system-sqlite): qtlibraries.sources += sqlite3.dll
+ }
+
#; EXISTS statement does not resolve !. Lets check the most common drives
#IF NOT EXISTS("c:\sys\bin\sqlite3.dll") AND NOT EXISTS("e:\sys\bin\sqlite3.dll") AND NOT EXISTS("z:\sys\bin\sqlite3.dll")
#"\Epoc32\release\armv5\UREL\sqlite3.dll"-"!:\sys\bin\sqlite3.dll"
- #ENDIF
+ #ENDIF
qtlibraries.path = /sys/bin
- qtlibraries.depends = "(0x20013851), 1, 5, 1, {\"PIPS Installer\"}"
+
+ vendorinfo = \
+ "; Localised Vendor name" \
+ "%{\"Nokia, Qt Software\"}" \
+ " " \
+ "; Unique Vendor name" \
+ ":\"Nokia, Qt Software\"" \
+ " "
+
+
+ qtlibraries.pkg_prerules = vendorinfo
+ qtlibraries.pkg_prerules += "; Dependencies of Qt libraries"
+ qtlibraries.pkg_prerules += "(0x20013851), 1, 5, 1, {\"PIPS Installer\"}"
contains(QT_CONFIG, openssl) | contains(QT_CONFIG, openssl-linked) {
- qtlibraries.depends += "(0x200110CB), 1, 5, 1, {\"Open C LIBSSL Common\"}"
+ qtlibraries.pkg_prerules += "(0x200110CB), 1, 5, 1, {\"Open C LIBSSL Common\"}"
}
contains(CONFIG, stl) {
- qtlibraries.depends += "(0x2000F866), 1, 0, 0, {\"Standard C++ Library Common\"}"
+ qtlibraries.pkg_prerules += "(0x2000F866), 1, 0, 0, {\"Standard C++ Library Common\"}"
}
-
+
!contains(QT_CONFIG, no-jpeg): imageformats_plugins.sources += qjpeg.dll
!contains(QT_CONFIG, no-gif): imageformats_plugins.sources += qgif.dll
!contains(QT_CONFIG, no-mng): imageformats_plugins.sources += qmng.dll
@@ -54,10 +66,10 @@ symbian: {
codecs_plugins.sources = qcncodecs.dll qjpcodecs.dll qtwcodecs.dll qkrcodecs.dll
codecs_plugins.path = $$QT_PLUGINS_BASE_DIR/codecs
-
+
DEPLOYMENT += qtresources qtlibraries imageformats_plugins codecs_plugins graphicssystems_plugins
- contains(QT_CONFIG, svg): {
+ contains(QT_CONFIG, svg): {
qtlibraries.sources += QtSvg.dll
imageformats_plugins.sources += qsvg.dll
iconengines_plugins.sources = qsvgicon.dll
@@ -67,7 +79,7 @@ symbian: {
contains(QT_CONFIG, phonon): {
qtlibraries.sources += Phonon.dll
- }
+ }
graphicssystems_plugins.path = $$QT_PLUGINS_BASE_DIR/graphicssystems
contains(QT_CONFIG, openvg) {
diff --git a/src/s60main/qts60main.cpp b/src/s60main/qts60main.cpp
index d7daf4a716..67c20b7b93 100644
--- a/src/s60main/qts60main.cpp
+++ b/src/s60main/qts60main.cpp
@@ -48,16 +48,15 @@
* factory function to create the QtS60Main application class
*/
LOCAL_C CApaApplication* NewApplication()
- {
- return new CQtS60MainApplication;
- }
+{
+ return new CQtS60MainApplication;
+}
/**
* A normal Symbian OS executable provides an E32Main() function which is
* called by the operating system to start the program.
*/
GLDEF_C TInt E32Main()
- {
- return EikStart::RunApplication( NewApplication );
- }
-
+{
+ return EikStart::RunApplication(NewApplication);
+}
diff --git a/src/s60main/qts60main_mcrt0.cpp b/src/s60main/qts60main_mcrt0.cpp
index 49a47bdb8a..f591c89f6b 100644
--- a/src/s60main/qts60main_mcrt0.cpp
+++ b/src/s60main/qts60main_mcrt0.cpp
@@ -51,13 +51,13 @@
#ifdef __ARMCC__
__asm int CallMain(int argc, char *argv[], char *envp[])
{
- import main
- code32
- b main
+ import main
+ code32
+ b main
}
#define CALLMAIN(argc, argv, envp) CallMain(argc, argv, envp)
#else
-extern "C" int main (int argc, char *argv[], char *envp[]);
+extern "C" int main(int argc, char *argv[], char *envp[]);
#define CALLMAIN(argc, argv, envp) main(argc, argv, envp)
#endif
@@ -67,28 +67,21 @@ extern "C" GLDEF_C int __GccGlueInit()
return 0;
}
-extern "C" IMPORT_C void exit (int ret);
+extern "C" IMPORT_C void exit(int ret);
GLDEF_C TInt QtMainWrapper()
{
- int argc=0;
- char **argv=0;
- char **envp=0;
+ int argc = 0;
+ char **argv = 0;
+ char **envp = 0;
// get args & environment
- __crt0(argc,argv,envp);
+ __crt0(argc, argv, envp);
CleanupArrayDelete<char*>::PushL(argv);
CleanupArrayDelete<char*>::PushL(envp);
//Call user(application)'s main
- int ret = 0;
- try
- {
- ret = CALLMAIN(argc, argv, envp);
- }
- catch (...)
- {
- User::Leave(KErrGeneral);
- }
- CleanupStack::PopAndDestroy(2,argv);
+ int ret = 0;
+ QT_TRYCATCH_LEAVING(ret = CALLMAIN(argc, argv, envp););
+ CleanupStack::PopAndDestroy(2, argv);
return ret;
}
@@ -96,10 +89,10 @@ GLDEF_C TInt QtMainWrapper()
#ifdef __GCC32__
/* stub function inserted into main() by GCC */
-extern "C" void __gccmain (void) {}
+extern "C" void __gccmain(void) {}
/* Default GCC entrypoint */
-extern "C" TInt _mainCRTStartup (void)
+extern "C" TInt _mainCRTStartup(void)
{
extern TInt _E32Startup();
return _E32Startup();
diff --git a/src/s60main/qts60mainapplication.cpp b/src/s60main/qts60mainapplication.cpp
index 2fada3d51f..9ad7f68d48 100644
--- a/src/s60main/qts60mainapplication.cpp
+++ b/src/s60main/qts60mainapplication.cpp
@@ -49,7 +49,7 @@
// ============================ MEMBER FUNCTIONS ===============================
-_LIT( KQtWrapperResourceFile,"\\resource\\apps\\s60main.rsc" );
+_LIT(KQtWrapperResourceFile, "\\resource\\apps\\s60main.rsc");
// -----------------------------------------------------------------------------
// CQtS60MainApplication::CreateDocumentL()
@@ -57,10 +57,10 @@ _LIT( KQtWrapperResourceFile,"\\resource\\apps\\s60main.rsc" );
// -----------------------------------------------------------------------------
//
CApaDocument* CQtS60MainApplication::CreateDocumentL()
- {
+{
// Create an QtS60Main document, and return a pointer to it
- return (static_cast<CApaDocument*>( CQtS60MainDocument::NewL( *this ) ) );
- }
+ return (static_cast<CApaDocument*>(CQtS60MainDocument::NewL(*this)));
+}
// -----------------------------------------------------------------------------
// CQtS60MainApplication::AppDllUid()
@@ -68,10 +68,10 @@ CApaDocument* CQtS60MainApplication::CreateDocumentL()
// -----------------------------------------------------------------------------
//
TUid CQtS60MainApplication::AppDllUid() const
- {
+{
// Return the UID for the QtS60Main application
return ProcessUid();
- }
+}
// -----------------------------------------------------------------------------
// CQtS60MainApplication::ResourceFileName()
@@ -79,14 +79,13 @@ TUid CQtS60MainApplication::AppDllUid() const
// -----------------------------------------------------------------------------
//
TFileName CQtS60MainApplication::ResourceFileName() const
- {
+{
TFindFile finder(iCoeEnv->FsSession());
TInt err = finder.FindByDir(KQtWrapperResourceFile, KNullDesC);
if (err == KErrNone)
return finder.File();
return KNullDesC();
- }
+}
// End of File
-
diff --git a/src/s60main/qts60mainapplication.h b/src/s60main/qts60mainapplication.h
index 70b6909ae1..e1789369d0 100644
--- a/src/s60main/qts60mainapplication.h
+++ b/src/s60main/qts60mainapplication.h
@@ -91,4 +91,3 @@ class CQtS60MainApplication : public CAknApplication
#endif // __QtS60MainAPPLICATION_H__
// End of File
-
diff --git a/src/s60main/qts60mainappui.cpp b/src/s60main/qts60mainappui.cpp
index 85badcc127..ede96cb837 100644
--- a/src/s60main/qts60mainappui.cpp
+++ b/src/s60main/qts60mainappui.cpp
@@ -63,6 +63,11 @@
//
void CQtS60MainAppUi::ConstructL()
{
+ // Cone's heap and handle checks on app destruction are not suitable for Qt apps, as many
+ // objects can still exist in static data at that point. Instead we will print relevant information
+ // so that comparative checks may be made for memory leaks, using ~SPrintExitInfo in corelib.
+ iEikonEnv->DisableExitChecks(ETrue);
+
// Initialise app UI with standard value.
// ENoAppResourceFile and ENonStandardResourceFile makes UI to work without
// resource files in most SDKs. S60 3rd FP1 public seems to require resource file
@@ -71,11 +76,11 @@ void CQtS60MainAppUi::ConstructL()
CEikButtonGroupContainer* nativeContainer = Cba();
nativeContainer->SetCommandSetL(R_AVKON_SOFTKEYS_EMPTY_WITH_IDS);
-
+
// Create async callback to call Qt main,
// this is required to give S60 app FW to finish starting correctly
- TCallBack callBack( OpenCMainStaticCallBack, this );
- iAsyncCallBack = new(ELeave) CAsyncCallBack( callBack, CActive::EPriorityIdle );
+ TCallBack callBack(OpenCMainStaticCallBack, this);
+ iAsyncCallBack = new(ELeave) CAsyncCallBack(callBack, CActive::EPriorityIdle);
iAsyncCallBack->Call();
}
@@ -104,7 +109,7 @@ CQtS60MainAppUi::~CQtS60MainAppUi()
// Takes care of command handling.
// -----------------------------------------------------------------------------
//
-void CQtS60MainAppUi::HandleCommandL( TInt aCommand )
+void CQtS60MainAppUi::HandleCommandL(TInt aCommand)
{
if (qApp)
qApp->symbianHandleCommand(aCommand);
@@ -118,7 +123,7 @@ void CQtS60MainAppUi::HandleCommandL( TInt aCommand )
void CQtS60MainAppUi::HandleResourceChangeL(TInt aType)
{
CAknAppUi::HandleResourceChangeL(aType);
-
+
if (qApp)
qApp->symbianResourceChange(aType);
}
@@ -127,7 +132,7 @@ void CQtS60MainAppUi::HandleWsEventL(const TWsEvent& aEvent, CCoeControl *contro
{
int result = 0;
if (qApp)
- QT_TRANSLATE_EXCEPTION_TO_SYMBIAN_LEAVE(
+ QT_TRYCATCH_LEAVING(
result = qApp->s60ProcessEvent(const_cast<TWsEvent*>(&aEvent))
);
@@ -152,9 +157,9 @@ void CQtS60MainAppUi::HandleStatusPaneSizeChange()
// Called asynchronously from ConstructL() - passes call to nan static method
// -----------------------------------------------------------------------------
//
-TInt CQtS60MainAppUi::OpenCMainStaticCallBack( TAny* aObject )
+TInt CQtS60MainAppUi::OpenCMainStaticCallBack(TAny* aObject)
{
- CQtS60MainAppUi* myObj = static_cast<CQtS60MainAppUi*>( aObject );
+ CQtS60MainAppUi* myObj = static_cast<CQtS60MainAppUi*>(aObject);
myObj->OpenCMainCallBack();
return 0;
}
@@ -181,30 +186,28 @@ void CQtS60MainAppUi::DynInitMenuBarL(TInt, CEikMenuBar *)
void CQtS60MainAppUi::DynInitMenuPaneL(TInt aResourceId, CEikMenuPane *aMenuPane)
{
- if (aResourceId == R_QT_WRAPPERAPP_MENU){
+ if (aResourceId == R_QT_WRAPPERAPP_MENU) {
if (aMenuPane->NumberOfItemsInPane() <= 1)
qt_symbian_show_toplevel(aMenuPane);
-
- }
- else if( aResourceId != R_AVKON_MENUPANE_FEP_DEFAULT && aResourceId != R_AVKON_MENUPANE_EDITTEXT_DEFAULT && aResourceId != R_AVKON_MENUPANE_LANGUAGE_DEFAULT ){
+
+ } else if (aResourceId != R_AVKON_MENUPANE_FEP_DEFAULT && aResourceId != R_AVKON_MENUPANE_EDITTEXT_DEFAULT && aResourceId != R_AVKON_MENUPANE_LANGUAGE_DEFAULT) {
qt_symbian_show_submenu(aMenuPane, aResourceId);
}
}
-void CQtS60MainAppUi::RestoreMenuL(CCoeControl* aMenuWindow,TInt aMenuId,TMenuType aMenuType)
+void CQtS60MainAppUi::RestoreMenuL(CCoeControl* aMenuWindow, TInt aMenuId, TMenuType aMenuType)
{
- if ((aMenuId==R_QT_WRAPPERAPP_MENUBAR) || (aMenuId == R_AVKON_MENUPANE_FEP_DEFAULT)) {
+ if ((aMenuId == R_QT_WRAPPERAPP_MENUBAR) || (aMenuId == R_AVKON_MENUPANE_FEP_DEFAULT)) {
TResourceReader reader;
- iCoeEnv->CreateResourceReaderLC(reader,aMenuId);
+ iCoeEnv->CreateResourceReaderLC(reader, aMenuId);
aMenuWindow->ConstructFromResourceL(reader);
CleanupStack::PopAndDestroy();
}
- if (aMenuType==EMenuPane)
- DynInitMenuPaneL(aMenuId,(CEikMenuPane*)aMenuWindow);
+ if (aMenuType == EMenuPane)
+ DynInitMenuPaneL(aMenuId, (CEikMenuPane*)aMenuWindow);
else
- DynInitMenuBarL(aMenuId,(CEikMenuBar*)aMenuWindow);
- }
+ DynInitMenuBarL(aMenuId, (CEikMenuBar*)aMenuWindow);
+}
// End of File
-
diff --git a/src/s60main/qts60mainappui.h b/src/s60main/qts60mainappui.h
index 6bdeb2e64f..cec0d98d1d 100644
--- a/src/s60main/qts60mainappui.h
+++ b/src/s60main/qts60mainappui.h
@@ -96,7 +96,7 @@ class CQtS60MainAppUi : public CAknAppUi
* @param aType event type.
*/
void HandleResourceChangeL(TInt aType);
-
+
/**
* HandleStatusPaneSizeChange.
* Called by the framework when the application status pane
@@ -133,4 +133,3 @@ class CQtS60MainAppUi : public CAknAppUi
#endif // __QtS60MainAPPUI_H__
// End of File
-
diff --git a/src/s60main/qts60maindocument.cpp b/src/s60main/qts60maindocument.cpp
index eb7ea4235d..77d5cc8963 100644
--- a/src/s60main/qts60maindocument.cpp
+++ b/src/s60main/qts60maindocument.cpp
@@ -51,25 +51,25 @@
// Two-phased constructor.
// -----------------------------------------------------------------------------
//
-CQtS60MainDocument* CQtS60MainDocument::NewL( CEikApplication& aApp )
- {
- CQtS60MainDocument* self = NewLC( aApp );
- CleanupStack::Pop( self );
+CQtS60MainDocument* CQtS60MainDocument::NewL(CEikApplication& aApp)
+{
+ CQtS60MainDocument* self = NewLC(aApp);
+ CleanupStack::Pop(self);
return self;
- }
+}
// -----------------------------------------------------------------------------
// CQtS60MainDocument::NewLC()
// Two-phased constructor.
// -----------------------------------------------------------------------------
//
-CQtS60MainDocument* CQtS60MainDocument::NewLC( CEikApplication& aApp )
- {
- CQtS60MainDocument* self = new ( ELeave ) CQtS60MainDocument( aApp );
- CleanupStack::PushL( self );
+CQtS60MainDocument* CQtS60MainDocument::NewLC(CEikApplication& aApp)
+{
+ CQtS60MainDocument* self = new(ELeave) CQtS60MainDocument(aApp);
+ CleanupStack::PushL(self);
self->ConstructL();
return self;
- }
+}
// -----------------------------------------------------------------------------
// CQtS60MainDocument::ConstructL()
@@ -77,20 +77,20 @@ CQtS60MainDocument* CQtS60MainDocument::NewLC( CEikApplication& aApp )
// -----------------------------------------------------------------------------
//
void CQtS60MainDocument::ConstructL()
- {
+{
// No implementation required
- }
+}
// -----------------------------------------------------------------------------
// CQtS60MainDocument::CQtS60MainDocument()
// C++ default constructor can NOT contain any code, that might leave.
// -----------------------------------------------------------------------------
//
-CQtS60MainDocument::CQtS60MainDocument( CEikApplication& aApp )
- : CAknDocument( aApp )
- {
+CQtS60MainDocument::CQtS60MainDocument(CEikApplication& aApp)
+ : CAknDocument(aApp)
+{
// No implementation required
- }
+}
// ---------------------------------------------------------------------------
// CQtS60MainDocument::~CQtS60MainDocument()
@@ -98,9 +98,9 @@ CQtS60MainDocument::CQtS60MainDocument( CEikApplication& aApp )
// ---------------------------------------------------------------------------
//
CQtS60MainDocument::~CQtS60MainDocument()
- {
+{
// No implementation required
- }
+}
// ---------------------------------------------------------------------------
// CQtS60MainDocument::CreateAppUiL()
@@ -108,11 +108,10 @@ CQtS60MainDocument::~CQtS60MainDocument()
// ---------------------------------------------------------------------------
//
CEikAppUi* CQtS60MainDocument::CreateAppUiL()
- {
+{
// Create the application user interface, and return a pointer to it;
// the framework takes ownership of this object
- return ( static_cast <CEikAppUi*> ( new ( ELeave )CQtS60MainAppUi ) );
- }
+ return (static_cast <CEikAppUi*>(new(ELeave)CQtS60MainAppUi));
+}
// End of File
-
diff --git a/src/s60main/qts60maindocument.h b/src/s60main/qts60maindocument.h
index a95e6200f1..77c5aa7e62 100644
--- a/src/s60main/qts60maindocument.h
+++ b/src/s60main/qts60maindocument.h
@@ -120,4 +120,3 @@ class CQtS60MainDocument : public CAknDocument
#endif // __QTS60MAINDOCUMENT_H__
// End of File
-
diff --git a/src/s60main/s60main.pro b/src/s60main/s60main.pro
index f74943f54b..57c99495d4 100644
--- a/src/s60main/s60main.pro
+++ b/src/s60main/s60main.pro
@@ -9,7 +9,7 @@ CONFIG -= qt shared
symbian {
# Note: UID only needed for ensuring that no filename generation conflicts occur
- TARGET.UID3 = 0x2001E61F
+ TARGET.UID3 = 0x2001E61F
CONFIG += png zlib
CONFIG -= jpeg
INCLUDEPATH += tmp $$QMAKE_INCDIR_QT/QtCore $$MW_LAYER_SYSTEMINCLUDE
@@ -21,8 +21,8 @@ symbian {
HEADERS = qts60mainapplication.h \
qts60mainappui.h \
qts60maindocument.h
-
- # This block serves the minimalistic resource file for S60 3.1 platforms.
+
+ # This block serves the minimalistic resource file for S60 3.1 platforms.
# Note there is no way to ifdef S60 version in mmp file, that is why the resource
# file is always compiled for WINSCW
minimalAppResource31 = \
@@ -30,23 +30,23 @@ symbian {
"HEADER" \
"TARGETPATH resource\apps" \
"END"
- MMP_RULES += minimalAppResource31
+ MMP_RULES += minimalAppResource31
# s60main needs to be built in ARM mode for GCCE to work.
MMP_RULES+="ALWAYS_BUILD_AS_ARM"
# staticlib should not have any lib depencies in s60
# This seems not to work, some hard coded libs are still added as dependency
- LIBS =
+ LIBS =
} else {
error("$$_FILE_ is intended only for Symbian!")
}
symbian-abld: {
# abld build commands generated resources after the static library is built, and
- # we have dependency to resource from static lib -> resources need to be generated
+ # we have dependency to resource from static lib -> resources need to be generated
# explicitly before library
- rsgFix2.commands = "-$(DEL_FILE) $(EPOCROOT)Epoc32\Data\z\resource\apps\s60main.rsc >NUL 2>&1"
+ rsgFix2.commands = "-$(DEL_FILE) $(EPOCROOT)Epoc32\Data\z\resource\apps\s60main.rsc >NUL 2>&1"
rsgFix.commands = "-$(ABLD) resource $(PLATFORM) $(CFG) 2>NUL"
QMAKE_EXTRA_TARGETS += rsgFix rsgFix2
PRE_TARGETDEPS += rsgFix rsgFix2
diff --git a/src/s60main/s60main.rss b/src/s60main/s60main.rss
index 6e8004ccac..11c68a3b4e 100644
--- a/src/s60main/s60main.rss
+++ b/src/s60main/s60main.rss
@@ -83,4 +83,3 @@ RESOURCE MENU_PANE r_qt_wrapperapp_menu
{
}
// End of File
-
diff --git a/src/script/qscriptable.h b/src/script/qscriptable.h
index 76a0496375..11ecb6b8ac 100644
--- a/src/script/qscriptable.h
+++ b/src/script/qscriptable.h
@@ -78,7 +78,7 @@ private:
QScopedPointer<QScriptablePrivate> d_ptr;
Q_DISABLE_COPY(QScriptable)
- Q_DECLARE_PRIVATE(QScriptable)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptable)
};
#endif // QT_NO_QOBJECT
diff --git a/src/script/qscriptclass.h b/src/script/qscriptclass.h
index 707047056d..e821cf7226 100644
--- a/src/script/qscriptclass.h
+++ b/src/script/qscriptclass.h
@@ -107,7 +107,7 @@ protected:
QScopedPointer<QScriptClassPrivate> d_ptr;
private:
- Q_DECLARE_PRIVATE(QScriptClass)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptClass)
Q_DISABLE_COPY(QScriptClass)
};
diff --git a/src/script/qscriptclasspropertyiterator.h b/src/script/qscriptclasspropertyiterator.h
index 1570410e23..ce6d3d452b 100644
--- a/src/script/qscriptclasspropertyiterator.h
+++ b/src/script/qscriptclasspropertyiterator.h
@@ -84,7 +84,7 @@ protected:
QScopedPointer<QScriptClassPropertyIteratorPrivate> d_ptr;
private:
- Q_DECLARE_PRIVATE(QScriptClassPropertyIterator)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptClassPropertyIterator)
Q_DISABLE_COPY(QScriptClassPropertyIterator)
};
diff --git a/src/script/qscriptcontext.h b/src/script/qscriptcontext.h
index 5a86cba3bd..84d419272c 100644
--- a/src/script/qscriptcontext.h
+++ b/src/script/qscriptcontext.h
@@ -114,7 +114,7 @@ private:
QScopedPointer<QScriptContextPrivate> d_ptr;
- Q_DECLARE_PRIVATE(QScriptContext)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptContext)
Q_DISABLE_COPY(QScriptContext)
};
diff --git a/src/script/qscriptcontextinfo.h b/src/script/qscriptcontextinfo.h
index 3540060894..95e88e23be 100644
--- a/src/script/qscriptcontextinfo.h
+++ b/src/script/qscriptcontextinfo.h
@@ -107,7 +107,7 @@ public:
private:
QScopedSharedPointer<QScriptContextInfoPrivate> d_ptr;
- Q_DECLARE_PRIVATE(QScriptContextInfo)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptContextInfo)
};
typedef QList<QScriptContextInfo> QScriptContextInfoList;
diff --git a/src/script/qscriptengine.h b/src/script/qscriptengine.h
index 794c965560..4f39c57a12 100644
--- a/src/script/qscriptengine.h
+++ b/src/script/qscriptengine.h
@@ -117,7 +117,7 @@ private:
QScriptSyntaxCheckResult(QScriptSyntaxCheckResultPrivate *d);
QScopedSharedPointer<QScriptSyntaxCheckResultPrivate> d_ptr;
- Q_DECLARE_PRIVATE(QScriptSyntaxCheckResult)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptSyntaxCheckResult)
friend class QScriptEnginePrivate;
};
@@ -291,7 +291,7 @@ protected:
#endif
private:
- Q_DECLARE_PRIVATE(QScriptEngine)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptEngine)
Q_DISABLE_COPY(QScriptEngine)
#ifndef QT_NO_QOBJECT
Q_PRIVATE_SLOT(d_func(), void _q_objectDestroyed(QObject *))
diff --git a/src/script/qscriptengineagent.h b/src/script/qscriptengineagent.h
index e71560cf19..10209dfb32 100644
--- a/src/script/qscriptengineagent.h
+++ b/src/script/qscriptengineagent.h
@@ -100,7 +100,7 @@ protected:
QScopedPointer<QScriptEngineAgentPrivate> d_ptr;
private:
- Q_DECLARE_PRIVATE(QScriptEngineAgent)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptEngineAgent)
Q_DISABLE_COPY(QScriptEngineAgent)
};
diff --git a/src/script/qscriptstring.cpp b/src/script/qscriptstring.cpp
index 137c6d0c8c..945e532c07 100644
--- a/src/script/qscriptstring.cpp
+++ b/src/script/qscriptstring.cpp
@@ -55,7 +55,7 @@
QT_BEGIN_NAMESPACE
/*! \internal */
-struct QScriptStringPrivatePointerHandler
+struct QScriptStringPrivatePointerDeleter
{
static inline void cleanup(QScriptStringPrivate *d)
{
@@ -69,12 +69,6 @@ struct QScriptStringPrivatePointerHandler
delete d;
}
}
-
- static inline void reset(QScriptStringPrivate *&d, QScriptStringPrivate *other)
- {
- cleanup(d);
- d = other;
- }
};
/*!
diff --git a/src/script/qscriptstring.h b/src/script/qscriptstring.h
index 7256ee9af5..17cb68785b 100644
--- a/src/script/qscriptstring.h
+++ b/src/script/qscriptstring.h
@@ -56,7 +56,7 @@ QT_MODULE(Script)
class QScriptEngine;
class QScriptStringPrivate;
-struct QScriptStringPrivatePointerHandler;
+struct QScriptStringPrivatePointerDeleter;
class Q_SCRIPT_EXPORT QScriptString
{
@@ -76,9 +76,9 @@ public:
operator QString() const;
private:
- QScopedCustomPointer<QScriptStringPrivate, QScriptStringPrivatePointerHandler> d_ptr;
+ QCustomScopedPointer<QScriptStringPrivate, QScriptStringPrivatePointerDeleter> d_ptr;
- Q_DECLARE_PRIVATE(QScriptString)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptString)
};
QT_END_NAMESPACE
diff --git a/src/script/qscriptvalue.cpp b/src/script/qscriptvalue.cpp
index 884a4c0aba..4f75993473 100644
--- a/src/script/qscriptvalue.cpp
+++ b/src/script/qscriptvalue.cpp
@@ -59,7 +59,7 @@ QT_BEGIN_NAMESPACE
/*! \internal
*/
-struct QScriptValuePrivatePointerHandler
+struct QScriptValuePrivatePointerDeleter
{
static inline void cleanup(QScriptValuePrivate *d)
{
@@ -71,12 +71,6 @@ struct QScriptValuePrivatePointerHandler
delete d;
}
}
-
- static inline void reset(QScriptValuePrivate *&d, QScriptValuePrivate *other)
- {
- cleanup(d);
- d = other;
- }
};
/*!
diff --git a/src/script/qscriptvalue.h b/src/script/qscriptvalue.h
index 8125d017b4..5b10f9e22c 100644
--- a/src/script/qscriptvalue.h
+++ b/src/script/qscriptvalue.h
@@ -72,7 +72,7 @@ typedef QList<QScriptValue> QScriptValueList;
typedef double qsreal;
class QScriptValuePrivate;
-struct QScriptValuePrivatePointerHandler;
+struct QScriptValuePrivatePointerDeleter;
class Q_SCRIPT_EXPORT QScriptValue
{
public:
@@ -223,9 +223,9 @@ private:
inline QScriptValue(QScriptEngine *, void *);
private:
- QScopedCustomPointer<QScriptValuePrivate, QScriptValuePrivatePointerHandler> d_ptr;
+ QCustomScopedPointer<QScriptValuePrivate, QScriptValuePrivatePointerDeleter> d_ptr;
- Q_DECLARE_PRIVATE(QScriptValue)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptValue)
};
Q_DECLARE_OPERATORS_FOR_FLAGS(QScriptValue::ResolveFlags)
diff --git a/src/script/qscriptvalueiterator.h b/src/script/qscriptvalueiterator.h
index c8684eae37..a25d12c3b7 100644
--- a/src/script/qscriptvalueiterator.h
+++ b/src/script/qscriptvalueiterator.h
@@ -88,7 +88,7 @@ public:
private:
QScopedPointer<QScriptValueIteratorPrivate> d_ptr;
- Q_DECLARE_PRIVATE(QScriptValueIterator)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptValueIterator)
Q_DISABLE_COPY(QScriptValueIterator)
};
diff --git a/src/scripttools/debugging/qscriptbreakpointdata_p.h b/src/scripttools/debugging/qscriptbreakpointdata_p.h
index 6fcb3f3965..4f6d7b9e93 100644
--- a/src/scripttools/debugging/qscriptbreakpointdata_p.h
+++ b/src/scripttools/debugging/qscriptbreakpointdata_p.h
@@ -116,7 +116,7 @@ public:
private:
QScopedPointer<QScriptBreakpointDataPrivate> d_ptr;
- Q_DECLARE_PRIVATE(QScriptBreakpointData)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptBreakpointData)
};
typedef QMap<int, QScriptBreakpointData> QScriptBreakpointMap;
diff --git a/src/scripttools/debugging/qscriptbreakpointsmodel_p.h b/src/scripttools/debugging/qscriptbreakpointsmodel_p.h
index b6e11e547f..7c0ba01c0c 100644
--- a/src/scripttools/debugging/qscriptbreakpointsmodel_p.h
+++ b/src/scripttools/debugging/qscriptbreakpointsmodel_p.h
@@ -98,7 +98,7 @@ public:
Qt::ItemFlags flags(const QModelIndex &index) const;
private:
- Q_DECLARE_PRIVATE(QScriptBreakpointsModel)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptBreakpointsModel)
Q_DISABLE_COPY(QScriptBreakpointsModel)
};
diff --git a/src/scripttools/debugging/qscriptbreakpointswidget_p.h b/src/scripttools/debugging/qscriptbreakpointswidget_p.h
index 0717351745..e0bb25cc97 100644
--- a/src/scripttools/debugging/qscriptbreakpointswidget_p.h
+++ b/src/scripttools/debugging/qscriptbreakpointswidget_p.h
@@ -81,7 +81,7 @@ private:
Q_PRIVATE_SLOT(d_func(), void _q_onCurrentChanged(const QModelIndex &))
Q_PRIVATE_SLOT(d_func(), void _q_onNewBreakpointRequest(const QString &, int))
- Q_DECLARE_PRIVATE(QScriptBreakpointsWidget)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptBreakpointsWidget)
Q_DISABLE_COPY(QScriptBreakpointsWidget)
};
diff --git a/src/scripttools/debugging/qscriptbreakpointswidgetinterface_p.h b/src/scripttools/debugging/qscriptbreakpointswidgetinterface_p.h
index c2b6418686..74e775b0cf 100644
--- a/src/scripttools/debugging/qscriptbreakpointswidgetinterface_p.h
+++ b/src/scripttools/debugging/qscriptbreakpointswidgetinterface_p.h
@@ -83,7 +83,7 @@ protected:
QWidget *parent, Qt::WindowFlags flags);
private:
- Q_DECLARE_PRIVATE(QScriptBreakpointsWidgetInterface)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptBreakpointsWidgetInterface)
Q_DISABLE_COPY(QScriptBreakpointsWidgetInterface)
};
diff --git a/src/scripttools/debugging/qscriptcompletiontask_p.h b/src/scripttools/debugging/qscriptcompletiontask_p.h
index 1dd80c01b9..95afa8806e 100644
--- a/src/scripttools/debugging/qscriptcompletiontask_p.h
+++ b/src/scripttools/debugging/qscriptcompletiontask_p.h
@@ -81,7 +81,7 @@ public:
void start();
private:
- Q_DECLARE_PRIVATE(QScriptCompletionTask)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptCompletionTask)
Q_DISABLE_COPY(QScriptCompletionTask)
};
diff --git a/src/scripttools/debugging/qscriptcompletiontaskinterface_p.h b/src/scripttools/debugging/qscriptcompletiontaskinterface_p.h
index 6a47bed352..abe908c035 100644
--- a/src/scripttools/debugging/qscriptcompletiontaskinterface_p.h
+++ b/src/scripttools/debugging/qscriptcompletiontaskinterface_p.h
@@ -97,7 +97,7 @@ protected:
QScriptCompletionTaskInterfacePrivate &dd, QObject *parent);
private:
- Q_DECLARE_PRIVATE(QScriptCompletionTaskInterface)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptCompletionTaskInterface)
Q_DISABLE_COPY(QScriptCompletionTaskInterface)
};
diff --git a/src/scripttools/debugging/qscriptdebugger_p.h b/src/scripttools/debugging/qscriptdebugger_p.h
index ba27200f99..f9cbf74695 100644
--- a/src/scripttools/debugging/qscriptdebugger_p.h
+++ b/src/scripttools/debugging/qscriptdebugger_p.h
@@ -185,7 +185,7 @@ protected:
QScriptDebugger(QScriptDebuggerPrivate &dd, QObject *parent);
private:
- Q_DECLARE_PRIVATE(QScriptDebugger)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebugger)
Q_DISABLE_COPY(QScriptDebugger)
Q_PRIVATE_SLOT(d_func(), void _q_onLineEntered(const QString &))
diff --git a/src/scripttools/debugging/qscriptdebuggeragent_p.h b/src/scripttools/debugging/qscriptdebuggeragent_p.h
index ca4ab2e4cf..769ed5358d 100644
--- a/src/scripttools/debugging/qscriptdebuggeragent_p.h
+++ b/src/scripttools/debugging/qscriptdebuggeragent_p.h
@@ -125,7 +125,7 @@ public:
const QVariant &argument = QVariant());
private:
- Q_DECLARE_PRIVATE(QScriptDebuggerAgent)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerAgent)
Q_DISABLE_COPY(QScriptDebuggerAgent)
};
diff --git a/src/scripttools/debugging/qscriptdebuggerbackend_p.h b/src/scripttools/debugging/qscriptdebuggerbackend_p.h
index 759a304df9..64c6ef3cf3 100644
--- a/src/scripttools/debugging/qscriptdebuggerbackend_p.h
+++ b/src/scripttools/debugging/qscriptdebuggerbackend_p.h
@@ -147,7 +147,7 @@ protected:
QScopedPointer<QScriptDebuggerBackendPrivate> d_ptr;
private:
- Q_DECLARE_PRIVATE(QScriptDebuggerBackend)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerBackend)
Q_DISABLE_COPY(QScriptDebuggerBackend)
};
diff --git a/src/scripttools/debugging/qscriptdebuggercodefinderwidget_p.h b/src/scripttools/debugging/qscriptdebuggercodefinderwidget_p.h
index f6d000d1fb..b7d9392c28 100644
--- a/src/scripttools/debugging/qscriptdebuggercodefinderwidget_p.h
+++ b/src/scripttools/debugging/qscriptdebuggercodefinderwidget_p.h
@@ -78,7 +78,7 @@ protected:
void keyPressEvent(QKeyEvent *e);
private:
- Q_DECLARE_PRIVATE(QScriptDebuggerCodeFinderWidget)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerCodeFinderWidget)
Q_DISABLE_COPY(QScriptDebuggerCodeFinderWidget)
Q_PRIVATE_SLOT(d_func(), void _q_updateButtons())
diff --git a/src/scripttools/debugging/qscriptdebuggercodefinderwidgetinterface_p.h b/src/scripttools/debugging/qscriptdebuggercodefinderwidgetinterface_p.h
index 5848e34a07..e73be00261 100644
--- a/src/scripttools/debugging/qscriptdebuggercodefinderwidgetinterface_p.h
+++ b/src/scripttools/debugging/qscriptdebuggercodefinderwidgetinterface_p.h
@@ -84,7 +84,7 @@ protected:
QWidget *parent, Qt::WindowFlags flags);
private:
- Q_DECLARE_PRIVATE(QScriptDebuggerCodeFinderWidgetInterface)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerCodeFinderWidgetInterface)
Q_DISABLE_COPY(QScriptDebuggerCodeFinderWidgetInterface)
};
diff --git a/src/scripttools/debugging/qscriptdebuggercodeview_p.h b/src/scripttools/debugging/qscriptdebuggercodeview_p.h
index 174810200d..59453825bf 100644
--- a/src/scripttools/debugging/qscriptdebuggercodeview_p.h
+++ b/src/scripttools/debugging/qscriptdebuggercodeview_p.h
@@ -87,7 +87,7 @@ public:
bool event(QEvent *e);
private:
- Q_DECLARE_PRIVATE(QScriptDebuggerCodeView)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerCodeView)
Q_DISABLE_COPY(QScriptDebuggerCodeView)
};
diff --git a/src/scripttools/debugging/qscriptdebuggercodeviewinterface_p.h b/src/scripttools/debugging/qscriptdebuggercodeviewinterface_p.h
index ea9eb622e6..9bb4017da4 100644
--- a/src/scripttools/debugging/qscriptdebuggercodeviewinterface_p.h
+++ b/src/scripttools/debugging/qscriptdebuggercodeviewinterface_p.h
@@ -97,7 +97,7 @@ protected:
QWidget *parent, Qt::WindowFlags flags);
private:
- Q_DECLARE_PRIVATE(QScriptDebuggerCodeViewInterface)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerCodeViewInterface)
Q_DISABLE_COPY(QScriptDebuggerCodeViewInterface)
};
diff --git a/src/scripttools/debugging/qscriptdebuggercodewidget_p.h b/src/scripttools/debugging/qscriptdebuggercodewidget_p.h
index e072a3d7d7..f9a1b82220 100644
--- a/src/scripttools/debugging/qscriptdebuggercodewidget_p.h
+++ b/src/scripttools/debugging/qscriptdebuggercodewidget_p.h
@@ -82,7 +82,7 @@ public:
QScriptDebuggerCodeViewInterface *currentView() const;
private:
- Q_DECLARE_PRIVATE(QScriptDebuggerCodeWidget)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerCodeWidget)
Q_DISABLE_COPY(QScriptDebuggerCodeWidget)
Q_PRIVATE_SLOT(d_func(), void _q_onBreakpointToggleRequest(int,bool))
diff --git a/src/scripttools/debugging/qscriptdebuggercodewidgetinterface_p.h b/src/scripttools/debugging/qscriptdebuggercodewidgetinterface_p.h
index 03b813aa6d..d27af3dd7c 100644
--- a/src/scripttools/debugging/qscriptdebuggercodewidgetinterface_p.h
+++ b/src/scripttools/debugging/qscriptdebuggercodewidgetinterface_p.h
@@ -92,7 +92,7 @@ protected:
QWidget *parent, Qt::WindowFlags flags);
private:
- Q_DECLARE_PRIVATE(QScriptDebuggerCodeWidgetInterface)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerCodeWidgetInterface)
Q_DISABLE_COPY(QScriptDebuggerCodeWidgetInterface)
};
diff --git a/src/scripttools/debugging/qscriptdebuggercommand_p.h b/src/scripttools/debugging/qscriptdebuggercommand_p.h
index 8e44fcfbd9..ffdb107865 100644
--- a/src/scripttools/debugging/qscriptdebuggercommand_p.h
+++ b/src/scripttools/debugging/qscriptdebuggercommand_p.h
@@ -257,7 +257,7 @@ public:
private:
QScopedPointer<QScriptDebuggerCommandPrivate> d_ptr;
- Q_DECLARE_PRIVATE(QScriptDebuggerCommand)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerCommand)
};
Q_AUTOTEST_EXPORT QDataStream &operator<<(QDataStream &, const QScriptDebuggerCommand &);
diff --git a/src/scripttools/debugging/qscriptdebuggercommandexecutor_p.h b/src/scripttools/debugging/qscriptdebuggercommandexecutor_p.h
index 0da0d87c2a..d303d66034 100644
--- a/src/scripttools/debugging/qscriptdebuggercommandexecutor_p.h
+++ b/src/scripttools/debugging/qscriptdebuggercommandexecutor_p.h
@@ -78,7 +78,7 @@ protected:
QScopedPointer<QScriptDebuggerCommandExecutorPrivate> d_ptr;
private:
- Q_DECLARE_PRIVATE(QScriptDebuggerCommandExecutor)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerCommandExecutor)
Q_DISABLE_COPY(QScriptDebuggerCommandExecutor)
};
diff --git a/src/scripttools/debugging/qscriptdebuggercommandschedulerjob_p.h b/src/scripttools/debugging/qscriptdebuggercommandschedulerjob_p.h
index db9c50310e..3c80173e90 100644
--- a/src/scripttools/debugging/qscriptdebuggercommandschedulerjob_p.h
+++ b/src/scripttools/debugging/qscriptdebuggercommandschedulerjob_p.h
@@ -78,7 +78,7 @@ protected:
QScriptDebuggerCommandSchedulerInterface *commandScheduler);
private:
- Q_DECLARE_PRIVATE(QScriptDebuggerCommandSchedulerJob)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerCommandSchedulerJob)
Q_DISABLE_COPY(QScriptDebuggerCommandSchedulerJob)
};
diff --git a/src/scripttools/debugging/qscriptdebuggerconsole_p.h b/src/scripttools/debugging/qscriptdebuggerconsole_p.h
index 2e4a726c9b..5b88291689 100644
--- a/src/scripttools/debugging/qscriptdebuggerconsole_p.h
+++ b/src/scripttools/debugging/qscriptdebuggerconsole_p.h
@@ -112,7 +112,7 @@ public:
private:
QScopedPointer<QScriptDebuggerConsolePrivate> d_ptr;
- Q_DECLARE_PRIVATE(QScriptDebuggerConsole)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerConsole)
Q_DISABLE_COPY(QScriptDebuggerConsole)
};
diff --git a/src/scripttools/debugging/qscriptdebuggerconsolecommand_p.h b/src/scripttools/debugging/qscriptdebuggerconsolecommand_p.h
index c3801504ee..a335e56227 100644
--- a/src/scripttools/debugging/qscriptdebuggerconsolecommand_p.h
+++ b/src/scripttools/debugging/qscriptdebuggerconsolecommand_p.h
@@ -94,7 +94,7 @@ protected:
QScopedPointer<QScriptDebuggerConsoleCommandPrivate> d_ptr;
private:
- Q_DECLARE_PRIVATE(QScriptDebuggerConsoleCommand)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerConsoleCommand)
Q_DISABLE_COPY(QScriptDebuggerConsoleCommand)
};
diff --git a/src/scripttools/debugging/qscriptdebuggerconsolecommandgroupdata_p.h b/src/scripttools/debugging/qscriptdebuggerconsolecommandgroupdata_p.h
index 5e23628b43..b1dfecbc89 100644
--- a/src/scripttools/debugging/qscriptdebuggerconsolecommandgroupdata_p.h
+++ b/src/scripttools/debugging/qscriptdebuggerconsolecommandgroupdata_p.h
@@ -85,7 +85,7 @@ private:
QScopedSharedPointer<QScriptDebuggerConsoleCommandGroupDataPrivate> d_ptr;
private:
- Q_DECLARE_PRIVATE(QScriptDebuggerConsoleCommandGroupData)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerConsoleCommandGroupData)
};
typedef QMap<QString, QScriptDebuggerConsoleCommandGroupData> QScriptDebuggerConsoleCommandGroupMap;
diff --git a/src/scripttools/debugging/qscriptdebuggerconsolecommandjob_p.h b/src/scripttools/debugging/qscriptdebuggerconsolecommandjob_p.h
index ce35157369..65b2a4c169 100644
--- a/src/scripttools/debugging/qscriptdebuggerconsolecommandjob_p.h
+++ b/src/scripttools/debugging/qscriptdebuggerconsolecommandjob_p.h
@@ -77,7 +77,7 @@ protected:
QScriptDebuggerCommandSchedulerInterface *scheduler);
private:
- Q_DECLARE_PRIVATE(QScriptDebuggerConsoleCommandJob)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerConsoleCommandJob)
Q_DISABLE_COPY(QScriptDebuggerConsoleCommandJob)
};
diff --git a/src/scripttools/debugging/qscriptdebuggerconsolecommandmanager_p.h b/src/scripttools/debugging/qscriptdebuggerconsolecommandmanager_p.h
index c6de5b1766..0ffd61e069 100644
--- a/src/scripttools/debugging/qscriptdebuggerconsolecommandmanager_p.h
+++ b/src/scripttools/debugging/qscriptdebuggerconsolecommandmanager_p.h
@@ -88,7 +88,7 @@ public:
private:
QScopedPointer<QScriptDebuggerConsoleCommandManagerPrivate> d_ptr;
- Q_DECLARE_PRIVATE(QScriptDebuggerConsoleCommandManager)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerConsoleCommandManager)
};
QT_END_NAMESPACE
diff --git a/src/scripttools/debugging/qscriptdebuggerconsoleglobalobject_p.h b/src/scripttools/debugging/qscriptdebuggerconsoleglobalobject_p.h
index 0200a325d9..11451627bf 100644
--- a/src/scripttools/debugging/qscriptdebuggerconsoleglobalobject_p.h
+++ b/src/scripttools/debugging/qscriptdebuggerconsoleglobalobject_p.h
@@ -163,7 +163,7 @@ public Q_SLOTS:
void setEvaluateAction(int action);
private:
- Q_DECLARE_PRIVATE(QScriptDebuggerConsoleGlobalObject)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerConsoleGlobalObject)
Q_DISABLE_COPY(QScriptDebuggerConsoleGlobalObject)
};
diff --git a/src/scripttools/debugging/qscriptdebuggerconsolewidget_p.h b/src/scripttools/debugging/qscriptdebuggerconsolewidget_p.h
index 462d44574b..02e9e94243 100644
--- a/src/scripttools/debugging/qscriptdebuggerconsolewidget_p.h
+++ b/src/scripttools/debugging/qscriptdebuggerconsolewidget_p.h
@@ -85,7 +85,7 @@ protected:
QWidget *parent);
private:
- Q_DECLARE_PRIVATE(QScriptDebuggerConsoleWidget)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerConsoleWidget)
Q_DISABLE_COPY(QScriptDebuggerConsoleWidget)
Q_PRIVATE_SLOT(d_func(), void _q_onLineEntered(const QString &))
diff --git a/src/scripttools/debugging/qscriptdebuggerconsolewidgetinterface_p.h b/src/scripttools/debugging/qscriptdebuggerconsolewidgetinterface_p.h
index 486a19a023..a3b5b5fb2e 100644
--- a/src/scripttools/debugging/qscriptdebuggerconsolewidgetinterface_p.h
+++ b/src/scripttools/debugging/qscriptdebuggerconsolewidgetinterface_p.h
@@ -94,7 +94,7 @@ protected:
QWidget *parent, Qt::WindowFlags flags);
private:
- Q_DECLARE_PRIVATE(QScriptDebuggerConsoleWidgetInterface)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerConsoleWidgetInterface)
Q_DISABLE_COPY(QScriptDebuggerConsoleWidgetInterface)
};
diff --git a/src/scripttools/debugging/qscriptdebuggerevent_p.h b/src/scripttools/debugging/qscriptdebuggerevent_p.h
index 8c4e460da8..c6067d594f 100644
--- a/src/scripttools/debugging/qscriptdebuggerevent_p.h
+++ b/src/scripttools/debugging/qscriptdebuggerevent_p.h
@@ -140,7 +140,7 @@ public:
private:
QScopedPointer<QScriptDebuggerEventPrivate> d_ptr;
- Q_DECLARE_PRIVATE(QScriptDebuggerEvent)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerEvent)
};
Q_AUTOTEST_EXPORT QDataStream &operator<<(QDataStream &, const QScriptDebuggerEvent &);
diff --git a/src/scripttools/debugging/qscriptdebuggerfrontend_p.h b/src/scripttools/debugging/qscriptdebuggerfrontend_p.h
index 1f7b2ef853..04ebb5c873 100644
--- a/src/scripttools/debugging/qscriptdebuggerfrontend_p.h
+++ b/src/scripttools/debugging/qscriptdebuggerfrontend_p.h
@@ -93,7 +93,7 @@ protected:
QScopedPointer<QScriptDebuggerFrontendPrivate> d_ptr;
private:
- Q_DECLARE_PRIVATE(QScriptDebuggerFrontend)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerFrontend)
Q_DISABLE_COPY(QScriptDebuggerFrontend)
};
diff --git a/src/scripttools/debugging/qscriptdebuggerjob_p.h b/src/scripttools/debugging/qscriptdebuggerjob_p.h
index 099ad16344..0b723c7cca 100644
--- a/src/scripttools/debugging/qscriptdebuggerjob_p.h
+++ b/src/scripttools/debugging/qscriptdebuggerjob_p.h
@@ -80,7 +80,7 @@ protected:
QScopedPointer<QScriptDebuggerJobPrivate> d_ptr;
private:
- Q_DECLARE_PRIVATE(QScriptDebuggerJob)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerJob)
Q_DISABLE_COPY(QScriptDebuggerJob)
};
diff --git a/src/scripttools/debugging/qscriptdebuggerlocalsmodel_p.h b/src/scripttools/debugging/qscriptdebuggerlocalsmodel_p.h
index 172fb7e456..b93e490d5d 100644
--- a/src/scripttools/debugging/qscriptdebuggerlocalsmodel_p.h
+++ b/src/scripttools/debugging/qscriptdebuggerlocalsmodel_p.h
@@ -93,7 +93,7 @@ Q_SIGNALS:
void scopeObjectAvailable(const QModelIndex &index);
private:
- Q_DECLARE_PRIVATE(QScriptDebuggerLocalsModel)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerLocalsModel)
Q_DISABLE_COPY(QScriptDebuggerLocalsModel)
};
diff --git a/src/scripttools/debugging/qscriptdebuggerlocalswidget_p.h b/src/scripttools/debugging/qscriptdebuggerlocalswidget_p.h
index e68ce53188..6ef9b3732b 100644
--- a/src/scripttools/debugging/qscriptdebuggerlocalswidget_p.h
+++ b/src/scripttools/debugging/qscriptdebuggerlocalswidget_p.h
@@ -72,7 +72,7 @@ public:
void expand(const QModelIndex &index);
private:
- Q_DECLARE_PRIVATE(QScriptDebuggerLocalsWidget)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerLocalsWidget)
Q_DISABLE_COPY(QScriptDebuggerLocalsWidget)
Q_PRIVATE_SLOT(d_func(), void _q_onCompletionTaskFinished())
diff --git a/src/scripttools/debugging/qscriptdebuggerlocalswidgetinterface_p.h b/src/scripttools/debugging/qscriptdebuggerlocalswidgetinterface_p.h
index 45936de4fa..fd6ebae77c 100644
--- a/src/scripttools/debugging/qscriptdebuggerlocalswidgetinterface_p.h
+++ b/src/scripttools/debugging/qscriptdebuggerlocalswidgetinterface_p.h
@@ -83,7 +83,7 @@ protected:
QWidget *parent, Qt::WindowFlags flags);
private:
- Q_DECLARE_PRIVATE(QScriptDebuggerLocalsWidgetInterface)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerLocalsWidgetInterface)
Q_DISABLE_COPY(QScriptDebuggerLocalsWidgetInterface)
};
diff --git a/src/scripttools/debugging/qscriptdebuggerresponse_p.h b/src/scripttools/debugging/qscriptdebuggerresponse_p.h
index 645cab00e7..f372994209 100644
--- a/src/scripttools/debugging/qscriptdebuggerresponse_p.h
+++ b/src/scripttools/debugging/qscriptdebuggerresponse_p.h
@@ -129,7 +129,7 @@ public:
private:
QScopedPointer<QScriptDebuggerResponsePrivate> d_ptr;
- Q_DECLARE_PRIVATE(QScriptDebuggerResponse)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerResponse)
};
Q_AUTOTEST_EXPORT QDataStream &operator<<(QDataStream &, const QScriptDebuggerResponse &);
diff --git a/src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand.cpp b/src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand.cpp
index 92fa36c8f1..76f3a382ee 100644
--- a/src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand.cpp
+++ b/src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand.cpp
@@ -359,7 +359,7 @@ public:
int commandId);
private:
- Q_DECLARE_PRIVATE(QScriptDebuggerScriptedConsoleCommandJob)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerScriptedConsoleCommandJob)
Q_DISABLE_COPY(QScriptDebuggerScriptedConsoleCommandJob)
};
diff --git a/src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand_p.h b/src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand_p.h
index 0fefea6286..cea8ec94dd 100644
--- a/src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand_p.h
+++ b/src/scripttools/debugging/qscriptdebuggerscriptedconsolecommand_p.h
@@ -97,7 +97,7 @@ public:
QScriptDebuggerCommandSchedulerInterface *commandScheduler);
private:
- Q_DECLARE_PRIVATE(QScriptDebuggerScriptedConsoleCommand)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerScriptedConsoleCommand)
Q_DISABLE_COPY(QScriptDebuggerScriptedConsoleCommand)
};
diff --git a/src/scripttools/debugging/qscriptdebuggerscriptsmodel_p.h b/src/scripttools/debugging/qscriptdebuggerscriptsmodel_p.h
index 1988acea61..0e05d7e02f 100644
--- a/src/scripttools/debugging/qscriptdebuggerscriptsmodel_p.h
+++ b/src/scripttools/debugging/qscriptdebuggerscriptsmodel_p.h
@@ -92,7 +92,7 @@ public:
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
private:
- Q_DECLARE_PRIVATE(QScriptDebuggerScriptsModel)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerScriptsModel)
Q_DISABLE_COPY(QScriptDebuggerScriptsModel)
};
diff --git a/src/scripttools/debugging/qscriptdebuggerscriptswidget_p.h b/src/scripttools/debugging/qscriptdebuggerscriptswidget_p.h
index 4359ec15ae..4c17eda803 100644
--- a/src/scripttools/debugging/qscriptdebuggerscriptswidget_p.h
+++ b/src/scripttools/debugging/qscriptdebuggerscriptswidget_p.h
@@ -73,7 +73,7 @@ public:
void setCurrentScript(qint64 id);
private:
- Q_DECLARE_PRIVATE(QScriptDebuggerScriptsWidget)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerScriptsWidget)
Q_DISABLE_COPY(QScriptDebuggerScriptsWidget)
Q_PRIVATE_SLOT(d_func(), void _q_onCurrentChanged(const QModelIndex &))
diff --git a/src/scripttools/debugging/qscriptdebuggerscriptswidgetinterface_p.h b/src/scripttools/debugging/qscriptdebuggerscriptswidgetinterface_p.h
index eff08dcf59..8aa320302b 100644
--- a/src/scripttools/debugging/qscriptdebuggerscriptswidgetinterface_p.h
+++ b/src/scripttools/debugging/qscriptdebuggerscriptswidgetinterface_p.h
@@ -83,7 +83,7 @@ protected:
QWidget *parent, Qt::WindowFlags flags);
private:
- Q_DECLARE_PRIVATE(QScriptDebuggerScriptsWidgetInterface)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerScriptsWidgetInterface)
Q_DISABLE_COPY(QScriptDebuggerScriptsWidgetInterface)
};
diff --git a/src/scripttools/debugging/qscriptdebuggerstackmodel_p.h b/src/scripttools/debugging/qscriptdebuggerstackmodel_p.h
index ff493f2841..30755941e0 100644
--- a/src/scripttools/debugging/qscriptdebuggerstackmodel_p.h
+++ b/src/scripttools/debugging/qscriptdebuggerstackmodel_p.h
@@ -78,7 +78,7 @@ public:
QVariant headerData(int section, Qt::Orientation, int role) const;
private:
- Q_DECLARE_PRIVATE(QScriptDebuggerStackModel)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerStackModel)
Q_DISABLE_COPY(QScriptDebuggerStackModel)
};
diff --git a/src/scripttools/debugging/qscriptdebuggerstackwidget_p.h b/src/scripttools/debugging/qscriptdebuggerstackwidget_p.h
index eaa04f3509..4d8e6bc7a2 100644
--- a/src/scripttools/debugging/qscriptdebuggerstackwidget_p.h
+++ b/src/scripttools/debugging/qscriptdebuggerstackwidget_p.h
@@ -73,7 +73,7 @@ public:
void setCurrentFrameIndex(int frameIndex);
private:
- Q_DECLARE_PRIVATE(QScriptDebuggerStackWidget)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerStackWidget)
Q_DISABLE_COPY(QScriptDebuggerStackWidget)
Q_PRIVATE_SLOT(d_func(), void _q_onCurrentChanged(const QModelIndex &))
diff --git a/src/scripttools/debugging/qscriptdebuggerstackwidgetinterface_p.h b/src/scripttools/debugging/qscriptdebuggerstackwidgetinterface_p.h
index d3c466caaf..bf1b6981c5 100644
--- a/src/scripttools/debugging/qscriptdebuggerstackwidgetinterface_p.h
+++ b/src/scripttools/debugging/qscriptdebuggerstackwidgetinterface_p.h
@@ -82,7 +82,7 @@ protected:
QWidget *parent, Qt::WindowFlags flags);
private:
- Q_DECLARE_PRIVATE(QScriptDebuggerStackWidgetInterface)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerStackWidgetInterface)
Q_DISABLE_COPY(QScriptDebuggerStackWidgetInterface)
};
diff --git a/src/scripttools/debugging/qscriptdebuggervalue_p.h b/src/scripttools/debugging/qscriptdebuggervalue_p.h
index e701313e25..522f601095 100644
--- a/src/scripttools/debugging/qscriptdebuggervalue_p.h
+++ b/src/scripttools/debugging/qscriptdebuggervalue_p.h
@@ -105,7 +105,7 @@ public:
private:
QScopedSharedPointer<QScriptDebuggerValuePrivate> d_ptr;
- Q_DECLARE_PRIVATE(QScriptDebuggerValue)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerValue)
};
typedef QList<QScriptDebuggerValue> QScriptDebuggerValueList;
diff --git a/src/scripttools/debugging/qscriptdebuggervalueproperty_p.h b/src/scripttools/debugging/qscriptdebuggervalueproperty_p.h
index 5e8f72a9b3..af8b2d61df 100644
--- a/src/scripttools/debugging/qscriptdebuggervalueproperty_p.h
+++ b/src/scripttools/debugging/qscriptdebuggervalueproperty_p.h
@@ -88,7 +88,7 @@ public:
private:
QScopedSharedPointer<QScriptDebuggerValuePropertyPrivate> d_ptr;
- Q_DECLARE_PRIVATE(QScriptDebuggerValueProperty)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebuggerValueProperty)
};
typedef QList<QScriptDebuggerValueProperty> QScriptDebuggerValuePropertyList;
diff --git a/src/scripttools/debugging/qscriptdebugoutputwidget_p.h b/src/scripttools/debugging/qscriptdebugoutputwidget_p.h
index 21c7eb2a6b..e9fe1129f0 100644
--- a/src/scripttools/debugging/qscriptdebugoutputwidget_p.h
+++ b/src/scripttools/debugging/qscriptdebugoutputwidget_p.h
@@ -74,7 +74,7 @@ public:
void clear();
private:
- Q_DECLARE_PRIVATE(QScriptDebugOutputWidget)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebugOutputWidget)
Q_DISABLE_COPY(QScriptDebugOutputWidget)
};
diff --git a/src/scripttools/debugging/qscriptdebugoutputwidgetinterface_p.h b/src/scripttools/debugging/qscriptdebugoutputwidgetinterface_p.h
index 6a124e4494..22f9443f55 100644
--- a/src/scripttools/debugging/qscriptdebugoutputwidgetinterface_p.h
+++ b/src/scripttools/debugging/qscriptdebugoutputwidgetinterface_p.h
@@ -75,7 +75,7 @@ protected:
QWidget *parent, Qt::WindowFlags flags);
private:
- Q_DECLARE_PRIVATE(QScriptDebugOutputWidgetInterface)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptDebugOutputWidgetInterface)
Q_DISABLE_COPY(QScriptDebugOutputWidgetInterface)
};
diff --git a/src/scripttools/debugging/qscriptenginedebugger.h b/src/scripttools/debugging/qscriptenginedebugger.h
index b9061a2b43..f5fa5fcb24 100644
--- a/src/scripttools/debugging/qscriptenginedebugger.h
+++ b/src/scripttools/debugging/qscriptenginedebugger.h
@@ -120,7 +120,7 @@ Q_SIGNALS:
void evaluationResumed();
private:
- Q_DECLARE_PRIVATE(QScriptEngineDebugger)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptEngineDebugger)
Q_DISABLE_COPY(QScriptEngineDebugger)
Q_PRIVATE_SLOT(d_func(), void _q_showStandardWindow())
diff --git a/src/scripttools/debugging/qscriptenginedebuggerfrontend.cpp b/src/scripttools/debugging/qscriptenginedebuggerfrontend.cpp
index 5b58c52beb..6faad96407 100644
--- a/src/scripttools/debugging/qscriptenginedebuggerfrontend.cpp
+++ b/src/scripttools/debugging/qscriptenginedebuggerfrontend.cpp
@@ -111,7 +111,7 @@ protected:
void event(const QScriptDebuggerEvent &event);
private:
- Q_DECLARE_PRIVATE(QScriptEngineDebuggerBackend)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptEngineDebuggerBackend)
Q_DISABLE_COPY(QScriptEngineDebuggerBackend)
};
diff --git a/src/scripttools/debugging/qscriptenginedebuggerfrontend_p.h b/src/scripttools/debugging/qscriptenginedebuggerfrontend_p.h
index 226fecc197..9320461d8f 100644
--- a/src/scripttools/debugging/qscriptenginedebuggerfrontend_p.h
+++ b/src/scripttools/debugging/qscriptenginedebuggerfrontend_p.h
@@ -80,7 +80,7 @@ protected:
void processCommand(int id, const QScriptDebuggerCommand &command);
private:
- Q_DECLARE_PRIVATE(QScriptEngineDebuggerFrontend)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptEngineDebuggerFrontend)
Q_DISABLE_COPY(QScriptEngineDebuggerFrontend)
};
diff --git a/src/scripttools/debugging/qscripterrorlogwidget_p.h b/src/scripttools/debugging/qscripterrorlogwidget_p.h
index 75d3e57c31..f05b5fbdf1 100644
--- a/src/scripttools/debugging/qscripterrorlogwidget_p.h
+++ b/src/scripttools/debugging/qscripterrorlogwidget_p.h
@@ -74,7 +74,7 @@ public:
void clear();
private:
- Q_DECLARE_PRIVATE(QScriptErrorLogWidget)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptErrorLogWidget)
Q_DISABLE_COPY(QScriptErrorLogWidget)
};
diff --git a/src/scripttools/debugging/qscripterrorlogwidgetinterface_p.h b/src/scripttools/debugging/qscripterrorlogwidgetinterface_p.h
index 0ce86ff3f0..903bc21809 100644
--- a/src/scripttools/debugging/qscripterrorlogwidgetinterface_p.h
+++ b/src/scripttools/debugging/qscripterrorlogwidgetinterface_p.h
@@ -75,7 +75,7 @@ protected:
QWidget *parent, Qt::WindowFlags flags);
private:
- Q_DECLARE_PRIVATE(QScriptErrorLogWidgetInterface)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptErrorLogWidgetInterface)
Q_DISABLE_COPY(QScriptErrorLogWidgetInterface)
};
diff --git a/src/scripttools/debugging/qscriptscriptdata_p.h b/src/scripttools/debugging/qscriptscriptdata_p.h
index d5ef52df5d..750bd2ae12 100644
--- a/src/scripttools/debugging/qscriptscriptdata_p.h
+++ b/src/scripttools/debugging/qscriptscriptdata_p.h
@@ -93,7 +93,7 @@ public:
private:
QScopedSharedPointer<QScriptScriptDataPrivate> d_ptr;
- Q_DECLARE_PRIVATE(QScriptScriptData)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptScriptData)
};
typedef QMap<qint64, QScriptScriptData> QScriptScriptMap;
diff --git a/src/scripttools/debugging/qscriptstdmessagehandler_p.h b/src/scripttools/debugging/qscriptstdmessagehandler_p.h
index 6242c9476d..10accc2de4 100644
--- a/src/scripttools/debugging/qscriptstdmessagehandler_p.h
+++ b/src/scripttools/debugging/qscriptstdmessagehandler_p.h
@@ -76,7 +76,7 @@ private:
QScopedPointer<QScriptStdMessageHandlerPrivate> d_ptr;
private:
- Q_DECLARE_PRIVATE(QScriptStdMessageHandler)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptStdMessageHandler)
Q_DISABLE_COPY(QScriptStdMessageHandler)
};
diff --git a/src/scripttools/debugging/qscriptvalueproperty_p.h b/src/scripttools/debugging/qscriptvalueproperty_p.h
index b752272268..545047d2a5 100644
--- a/src/scripttools/debugging/qscriptvalueproperty_p.h
+++ b/src/scripttools/debugging/qscriptvalueproperty_p.h
@@ -84,7 +84,7 @@ public:
private:
QScopedSharedPointer<QScriptValuePropertyPrivate> d_ptr;
- Q_DECLARE_PRIVATE(QScriptValueProperty)
+ Q_DECLARE_SCOPED_PRIVATE(QScriptValueProperty)
};
typedef QList<QScriptValueProperty> QScriptValuePropertyList;
diff --git a/src/sql/kernel/qsqldriver.h b/src/sql/kernel/qsqldriver.h
index 3052be62e5..b411d659b5 100644
--- a/src/sql/kernel/qsqldriver.h
+++ b/src/sql/kernel/qsqldriver.h
@@ -69,7 +69,7 @@ class Q_SQL_EXPORT QSqlDriver : public QObject
{
friend class QSqlDatabase;
Q_OBJECT
- Q_DECLARE_PRIVATE(QSqlDriver)
+ Q_DECLARE_SCOPED_PRIVATE(QSqlDriver)
public:
enum DriverFeature { Transactions, QuerySize, BLOB, Unicode, PreparedQueries,
diff --git a/src/sql/models/qsqlquerymodel.h b/src/sql/models/qsqlquerymodel.h
index c81fa2c74f..bf9963420d 100644
--- a/src/sql/models/qsqlquerymodel.h
+++ b/src/sql/models/qsqlquerymodel.h
@@ -59,7 +59,7 @@ class QSqlQuery;
class Q_SQL_EXPORT QSqlQueryModel: public QAbstractTableModel
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QSqlQueryModel)
+ Q_DECLARE_SCOPED_PRIVATE(QSqlQueryModel)
public:
explicit QSqlQueryModel(QObject *parent = 0);
diff --git a/src/sql/models/qsqlrelationaltablemodel.h b/src/sql/models/qsqlrelationaltablemodel.h
index f476a483fd..fa060b89c0 100644
--- a/src/sql/models/qsqlrelationaltablemodel.h
+++ b/src/sql/models/qsqlrelationaltablemodel.h
@@ -102,7 +102,7 @@ protected:
QString orderByClause() const;
private:
- Q_DECLARE_PRIVATE(QSqlRelationalTableModel)
+ Q_DECLARE_SCOPED_PRIVATE(QSqlRelationalTableModel)
};
QT_END_NAMESPACE
diff --git a/src/sql/models/qsqltablemodel.h b/src/sql/models/qsqltablemodel.h
index a6f4469682..3e539beef1 100644
--- a/src/sql/models/qsqltablemodel.h
+++ b/src/sql/models/qsqltablemodel.h
@@ -59,7 +59,7 @@ class QSqlIndex;
class Q_SQL_EXPORT QSqlTableModel: public QSqlQueryModel
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QSqlTableModel)
+ Q_DECLARE_SCOPED_PRIVATE(QSqlTableModel)
public:
enum EditStrategy {OnFieldChange, OnRowChange, OnManualSubmit};
diff --git a/src/sql/sql.pro b/src/sql/sql.pro
index 60be7486e0..b8f819dfbd 100644
--- a/src/sql/sql.pro
+++ b/src/sql/sql.pro
@@ -19,9 +19,8 @@ include(models/models.pri)
symbian: {
TARGET.UID3=0x2001E61D
-
+
# Workaroud for problems with paging this dll
MMP_RULES -= PAGED
MMP_RULES *= UNPAGED
}
-
diff --git a/src/svg/qgraphicssvgitem.h b/src/svg/qgraphicssvgitem.h
index e7ef4b316f..9a41e9b542 100644
--- a/src/svg/qgraphicssvgitem.h
+++ b/src/svg/qgraphicssvgitem.h
@@ -87,7 +87,7 @@ public:
private:
Q_DISABLE_COPY(QGraphicsSvgItem)
- // Q_DECLARE_PRIVATE_WITH_BASE(QGraphicsSvgItem, QObject)
+ // Q_DECLARE_SCOPED_PRIVATE_WITH_BASE(QGraphicsSvgItem, QObject)
inline QGraphicsSvgItemPrivate *d_func()
{ return reinterpret_cast<QGraphicsSvgItemPrivate *>(QObject::d_ptr.data()); }
inline const QGraphicsSvgItemPrivate *d_func() const
diff --git a/src/svg/qsvggenerator.cpp b/src/svg/qsvggenerator.cpp
index 948647962b..b5c56cd5ad 100644
--- a/src/svg/qsvggenerator.cpp
+++ b/src/svg/qsvggenerator.cpp
@@ -155,7 +155,7 @@ static inline QPaintEngine::PaintEngineFeatures svgEngineFeatures()
class QSvgPaintEngine : public QPaintEngine
{
- Q_DECLARE_PRIVATE(QSvgPaintEngine)
+ Q_DECLARE_SCOPED_PRIVATE(QSvgPaintEngine)
public:
QSvgPaintEngine()
diff --git a/src/svg/qsvggenerator.h b/src/svg/qsvggenerator.h
index 5b60a05b31..951cee1b29 100644
--- a/src/svg/qsvggenerator.h
+++ b/src/svg/qsvggenerator.h
@@ -61,7 +61,7 @@ class QSvgGeneratorPrivate;
class Q_SVG_EXPORT QSvgGenerator : public QPaintDevice
{
- Q_DECLARE_PRIVATE(QSvgGenerator)
+ Q_DECLARE_SCOPED_PRIVATE(QSvgGenerator)
Q_PROPERTY(QSize size READ size WRITE setSize)
Q_PROPERTY(QRectF viewBox READ viewBoxF WRITE setViewBox)
diff --git a/src/svg/qsvgrenderer.h b/src/svg/qsvgrenderer.h
index 78e8a7e643..2b9a4f7dfe 100644
--- a/src/svg/qsvgrenderer.h
+++ b/src/svg/qsvgrenderer.h
@@ -109,7 +109,7 @@ Q_SIGNALS:
void repaintNeeded();
private:
- Q_DECLARE_PRIVATE(QSvgRenderer)
+ Q_DECLARE_SCOPED_PRIVATE(QSvgRenderer)
};
QT_END_NAMESPACE
diff --git a/src/svg/qsvgwidget.h b/src/svg/qsvgwidget.h
index ccf66bb158..1a2cdd1989 100644
--- a/src/svg/qsvgwidget.h
+++ b/src/svg/qsvgwidget.h
@@ -74,7 +74,7 @@ protected:
void paintEvent(QPaintEvent *event);
private:
Q_DISABLE_COPY(QSvgWidget)
- Q_DECLARE_PRIVATE(QSvgWidget)
+ Q_DECLARE_SCOPED_PRIVATE(QSvgWidget)
};
QT_END_NAMESPACE
diff --git a/src/testlib/qplaintestlogger.cpp b/src/testlib/qplaintestlogger.cpp
index db221dd34a..c529d3e75f 100644
--- a/src/testlib/qplaintestlogger.cpp
+++ b/src/testlib/qplaintestlogger.cpp
@@ -129,7 +129,11 @@ namespace QTest {
static const char *messageType2String(QAbstractTestLogger::MessageTypes type)
{
+#ifdef Q_OS_WIN
static bool colored = (!qgetenv("QTEST_COLORED").isEmpty());
+#else
+ static bool colored = ::getenv("QTEST_COLORED");
+#endif
switch (type) {
case QAbstractTestLogger::Skip:
return COLORED_MSG(0, 37, "SKIP "); //white
@@ -165,10 +169,16 @@ namespace QTest {
LeaveCriticalSection(&outputCriticalSection);
#elif defined(Q_OS_SYMBIAN)
TPtrC8 ptr(reinterpret_cast<const TUint8*>(str));
- HBufC* hbuffer = HBufC::NewL(ptr.Length());
- hbuffer->Des().Copy(ptr);
- RDebug::Print(_L("[QTestLib Message] %S"), hbuffer);
- delete hbuffer;
+ HBufC* hbuffer = HBufC::New(ptr.Length());
+ if (hbuffer) {
+ hbuffer->Des().Copy(ptr);
+ RDebug::Print(_L("[QTestLib Message] %S"), hbuffer);
+ delete hbuffer;
+ } else {
+ TBuf<256> tmp;
+ tmp.Copy(ptr.Left(Min(256, ptr.Length())));
+ RDebug::Print(_L("[QTestLib Message] %S"), &tmp);
+ }
#endif
QAbstractTestLogger::outputString(str);
}
diff --git a/src/xml/sax/qxml.h b/src/xml/sax/qxml.h
index 18dc332550..788f2e855c 100644
--- a/src/xml/sax/qxml.h
+++ b/src/xml/sax/qxml.h
@@ -272,7 +272,7 @@ public:
private:
Q_DISABLE_COPY(QXmlSimpleReader)
- Q_DECLARE_PRIVATE(QXmlSimpleReader)
+ Q_DECLARE_SCOPED_PRIVATE(QXmlSimpleReader)
QScopedPointer<QXmlSimpleReaderPrivate> d_ptr;
friend class QXmlSimpleReaderLocator;
diff --git a/src/xmlpatterns/api/qabstractmessagehandler.h b/src/xmlpatterns/api/qabstractmessagehandler.h
index 21c6fe5503..2c261432d5 100644
--- a/src/xmlpatterns/api/qabstractmessagehandler.h
+++ b/src/xmlpatterns/api/qabstractmessagehandler.h
@@ -70,7 +70,7 @@ protected:
const QUrl &identifier,
const QSourceLocation &sourceLocation) = 0;
private:
- Q_DECLARE_PRIVATE(QAbstractMessageHandler)
+ Q_DECLARE_SCOPED_PRIVATE(QAbstractMessageHandler)
Q_DISABLE_COPY(QAbstractMessageHandler)
};
diff --git a/src/xmlpatterns/api/qabstracturiresolver.h b/src/xmlpatterns/api/qabstracturiresolver.h
index c341ac2c13..db545ea9f7 100644
--- a/src/xmlpatterns/api/qabstracturiresolver.h
+++ b/src/xmlpatterns/api/qabstracturiresolver.h
@@ -64,7 +64,7 @@ public:
private:
Q_DISABLE_COPY(QAbstractUriResolver)
- Q_DECLARE_PRIVATE(QAbstractUriResolver)
+ Q_DECLARE_SCOPED_PRIVATE(QAbstractUriResolver)
};
QT_END_NAMESPACE
diff --git a/src/xmlpatterns/api/qsimplexmlnodemodel.h b/src/xmlpatterns/api/qsimplexmlnodemodel.h
index 1c70159fbc..3098604bed 100644
--- a/src/xmlpatterns/api/qsimplexmlnodemodel.h
+++ b/src/xmlpatterns/api/qsimplexmlnodemodel.h
@@ -67,7 +67,7 @@ public:
virtual QVector<QXmlNodeModelIndex> nodesByIdref(const QXmlName &idref) const;
private:
- Q_DECLARE_PRIVATE(QSimpleXmlNodeModel)
+ Q_DECLARE_SCOPED_PRIVATE(QSimpleXmlNodeModel)
};
QT_END_NAMESPACE
diff --git a/src/xmlpatterns/api/qxmlformatter.h b/src/xmlpatterns/api/qxmlformatter.h
index 9bec06da98..ca65331d62 100644
--- a/src/xmlpatterns/api/qxmlformatter.h
+++ b/src/xmlpatterns/api/qxmlformatter.h
@@ -84,7 +84,7 @@ public:
virtual void item(const QPatternist::Item &item);
private:
inline void startFormattingContent();
- Q_DECLARE_PRIVATE(QXmlFormatter)
+ Q_DECLARE_SCOPED_PRIVATE(QXmlFormatter)
};
QT_END_NAMESPACE
diff --git a/src/xmlpatterns/api/qxmlresultitems.h b/src/xmlpatterns/api/qxmlresultitems.h
index 6fc8d523f3..ad222edc9f 100644
--- a/src/xmlpatterns/api/qxmlresultitems.h
+++ b/src/xmlpatterns/api/qxmlresultitems.h
@@ -66,7 +66,7 @@ public:
private:
friend class QXmlQuery;
- Q_DECLARE_PRIVATE(QXmlResultItems)
+ Q_DECLARE_SCOPED_PRIVATE(QXmlResultItems)
QScopedPointer<QXmlResultItemsPrivate> d_ptr;
Q_DISABLE_COPY(QXmlResultItems)
};
diff --git a/src/xmlpatterns/api/qxmlserializer.h b/src/xmlpatterns/api/qxmlserializer.h
index d46a566a6d..2fcc454284 100644
--- a/src/xmlpatterns/api/qxmlserializer.h
+++ b/src/xmlpatterns/api/qxmlserializer.h
@@ -148,7 +148,7 @@ private:
*/
inline void write(const QString &content);
- Q_DECLARE_PRIVATE(QXmlSerializer)
+ Q_DECLARE_SCOPED_PRIVATE(QXmlSerializer)
};
QT_END_NAMESPACE