Revision 7e0fa2fc75a9c9ca3466d0a3fb6c9f302fc22a62 authored by Marc Mutz on 10 July 2012, 13:27:48 UTC, committed by Qt by Nokia on 26 August 2012, 12:29:49 UTC
Currently, we have a C++11 version that requires Q_COMPILER_DECLTYPE support, and can deal with final classes, and a C++98 version that doesn't require any C++11 features, but fails on final classes. What we're missing is a version that works for MSVC v8 and v9 (2005 and 2008), which sport the 'sealed' non-standard keywords but lack decltype support. So far, we tried to solve the problem by making class-level final special (Q_DECL_FINAL_CLASS), not defining that macro for these two compilers, even though we did define Q_DECL_FINAL, the method-level keyword. This new formulation, taken from http://stackoverflow.com/a/9655327/134841 supposedly supports all compilers with a minor #ifdef for MSVC which doesn't like applying sizeof() the way we do. However, testing has shown this to blow up on OSX. So we use the less intrusive approach: add this variant as a third version, only used by VC 2005 and 2008. Change-Id: If1945f8a6e9ed36cb68212fa781d5e29eb2a082d Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
1 parent 9090e0d
changes-1.39-19980623
doc/annotated.doc 1.5 warwick +6 -3
Try new tabled annotated list.
doc/tutorial.doc 2.14 agulbra +4 -4
new header files
examples/application/application.cpp 1.13 warwick +2 -2
examples/layout/layout.cpp 1.7 warwick +2 -2
examples/network/finger.cpp 1.8 warwick +2 -2
examples/pref/pref.cpp 1.21 warwick +2 -2
examples/qwerty/qwerty.h 1.9 warwick +2 -2
examples/scrollview/scrollview.cpp 1.16 warwick +2 -2
examples/widgets/widgets.cpp 2.44 warwick +2 -2
src/widgets/qmultilinedit.cpp 2.94 warwick +2 -2
Rename fix - "qmultilinedit.h" not "qmultilined.h"
examples/application/application.cpp 1.14 agulbra +32 -18
use QWhatsThis
examples/application/application.cpp 1.15 warwick +7 -6
examples/application/application.h 1.5 warwick +2 -1
Use persistent QPrinter.
examples/dragdrop/.cvsignore 1.1 warwick initial checkin
examples/dragdrop/dragdrop.pro 1.1 warwick initial checkin
examples/dragdrop/main.cpp 1.6 warwick +20 -7
src/qt.pro 2.28 warwick +3 -3
upd
examples/dragdrop/GNUmakefile 1.1 warwick initial checkin
examples/dragdrop/Makefile 1.1 warwick initial checkin
examples/dragdrop/main.cpp 1.2 warwick +2 -1
Quit.
examples/dragdrop/dropsite.cpp 1.1 agulbra initial checkin
examples/dragdrop/dropsite.h 1.1 agulbra initial checkin
examples/dragdrop/main.cpp 1.1 agulbra initial checkin
kind of like simple.c, except not 2000 lines
examples/dragdrop/dropsite.cpp 1.2 warwick +22 -3
examples/dragdrop/main.cpp 1.3 warwick +3 -3
Fixes, more debug options.
examples/dragdrop/dropsite.cpp 1.3 warwick +36 -34
examples/dragdrop/main.cpp 1.4 warwick +2 -2
Better feedback, more examples.
examples/dragdrop/dropsite.cpp 1.4 warwick +5 -3
Visualize DragLeave events.
examples/dragdrop/dropsite.cpp 1.5 warwick +15 -43
examples/dragdrop/dropsite.h 1.2 warwick +1 -7
examples/dragdrop/main.cpp 1.5 warwick +2 -10
Remove format choice - QImageDragObject deals with that.
examples/dragdrop/dropsite.cpp 1.6 warwick +4 -5
src/kernel/qdragobject.cpp 2.25 warwick +11 -6
src/kernel/qdragobject.h 2.12 warwick +3 -2
Set MIME format in QStoredDragObject constructor.
examples/dragdrop/dropsite.cpp 1.7 warwick +10 -3
examples/dragdrop/dropsite.h 1.3 warwick +2 -1
Use Event_DragEnter
examples/movies/main.cpp 1.12 warwick +4 -4
Warnings, robustness.
examples/showimg/.cvsignore 2.1 warwick +5 -0
Ignore images
extensions/nsplugin/examples/Makefile 1.1 warwick initial checkin
extensions/xt/doc.conf 1.4 warwick +1 -1
Oddsnends
extensions/nsplugin/src/qnp.cpp 1.20 warwick +19 -20
show() not required now.
extensions/nsplugin/src/qnp.pro 1.2 warwick +1 -1
tmake workaround
src/compat/qmlined.h 1.2 warwick +1 -1
edit not ed
src/compat/qobjcoll.h 1.1 warwick initial checkin
src/compat/qwidcoll.h 1.1 warwick initial checkin
src/kernel/qobjcoll.h 2.8 warwick +1 -1
src/kernel/qwidcoll.h 2.7 warwick +1 -1
Moved.
src/dialogs/qfiledialog.cpp 2.72 agulbra +79 -54
avoid one more static
src/dialogs/qfiledialog.cpp 2.73 agulbra +3 -3
use the right column width in multi-column mode
src/dialogs/qfiledialog.cpp 2.74 agulbra +1 -2
commit -without- debug feature
src/dialogs/qfiledialog.cpp 2.75 agulbra +22 -8
handle "type name of directory then press enter" case by switching to
that directory
src/dialogs/qfiledialog.cpp 2.76 agulbra +10 -7
minor tweak to make the ok button change less often
src/dialogs/qfiledialog.cpp 2.77 agulbra +2 -2
slightly better row height in the multi-column view
src/kernel/qapp.cpp 2.56 agulbra +14 -6
src/kernel/qapplication.cpp 2.56 agulbra +14 -6
src/kernel/qasyncimageio.cpp 1.34 agulbra +53 -15
src/kernel/qregion.cpp 2.13 agulbra +1 -8
src/kernel/qregion.h 2.13 agulbra +1 -4
src/widgets/qheader.cpp 2.44 agulbra +4 -5
Reginald Stadlbauer's alpha's egcs said to do this. it doesn't like
static objects with non-default constructors.
src/kernel/qapplication_win.cpp 2.91 warwick +10 -1
src/kernel/qdnd_x11.cpp 2.20 warwick +1 -7
src/kernel/qdragobject.h 2.9 warwick +1 -4
src/kernel/qwidget.cpp 2.112 warwick +4 -11
src/kernel/qwidget_win.cpp 2.57 warwick +20 -3
src/kernel/qwidget_x11.cpp 2.97 warwick +12 -4
src/kernel/qwindowdefs.h 2.24 warwick +5 -1
Drag&dropery.
src/kernel/qapplication_win.cpp 2.93 warwick +4 -2
src/kernel/qdnd_win.cpp 2.10 warwick +483 -135
src/kernel/qdnd_x11.cpp 2.24 warwick +21 -1
src/kernel/qdragobject.cpp 2.18 warwick +5 -5
src/kernel/qevent.cpp 2.17 warwick +1 -21
src/kernel/qimage.cpp 2.93 warwick +73 -34
src/kernel/qwidget_win.cpp 2.59 warwick +4 -3
Windows Drap & Drop.
src/kernel/qasyncimageio.cpp 1.35 agulbra +2 -2
make cleanup() static
src/kernel/qasyncimageio.cpp 1.37 warwick +4 -2
src/kernel/qasyncimageio.cpp 1.36 warwick +30 -7
src/kernel/qdragobject.cpp 2.22 warwick +7 -5
src/kernel/qimage.cpp 2.96 warwick +4 -1
src/kernel/qimage.cpp 2.95 agulbra +8 -9
src/kernel/qimage.cpp 2.92 warwick +3 -3
src/tools/qdir.cpp 2.24 agulbra +7 -1
doc
src/kernel/qclipboard_x11.cpp 2.14 agulbra +26 -20
avoid statics that are troublesome on the alpha
src/kernel/qdialog.cpp 2.20 agulbra +39 -18
frameGeometry() is normally not meaningful before show(), so I
switched to a different way of ensuring that the dialog's default
position is entirely on-screen. may not work perfectly with
Enlightenment :)
src/kernel/qdnd_win.cpp 2.11 warwick +5 -1
src/kernel/qdnd_x11.cpp 2.25 warwick +56 -1
src/kernel/qdragobject.cpp 2.19 warwick +8 -59
Move QDragManager::eventFilter code to X11-specifics.
src/kernel/qdnd_win.cpp 2.12 warwick +44 -31
Follow DnD API changes.
Add leave event.
src/kernel/qdnd_win.cpp 2.13 warwick +8 -3
src/kernel/qevent.h 2.19 warwick +15 -5
DragEnter events and final DragLeave to DropEvent targets.
src/kernel/qdnd_win.cpp 2.14 warwick +2 -6
spacing
src/kernel/qdnd_win.cpp 2.7 warwick +989 -12
First inclusion from tests/olednd code.
src/kernel/qdnd_win.cpp 2.9 warwick +162 -98
DND.
src/kernel/qdnd_x11.cpp 2.17 warwick +9 -9
src/kernel/qpainter.cpp 2.52 warwick +14 -11
src/kernel/qwid_x11.cpp 2.95 warwick +2 -2
src/kernel/qwidget_x11.cpp 2.95 warwick +2 -2
src/widgets/qwellarray.cpp 1.3 warwick +10 -1
src/widgets/qwellarray.h 1.4 warwick +2 -1
Avoid HPUX warnings.
src/kernel/qdnd_x11.cpp 2.19 agulbra +29 -25
egcs/alpha workarounds.
src/kernel/qdnd_x11.cpp 2.22 agulbra +2 -2
src/kernel/qwidget_x11.cpp 2.98 agulbra +2 -2
don't segfault on first registerDropType()
src/kernel/qdnd_x11.cpp 2.23 paul +5 -3
Ignore windows without clients.
src/kernel/qdnd_x11.cpp 2.26 warwick +18 -1
src/kernel/qdragobject.cpp 2.20 warwick +1 -16
Move DND cursor into X11-specifics.
src/kernel/qdnd_x11.cpp 2.27 warwick +16 -10
src/kernel/qdragobject.cpp 2.23 warwick +130 -71
src/kernel/qdragobject.h 2.11 warwick +14 -25
Multi-format QDragObject API.
src/kernel/qdnd_x11.cpp 2.28 agulbra +47 -18
updated to match windows version
src/kernel/qdragobject.cpp 2.21 warwick +99 -14
src/kernel/qdragobject.h 2.10 warwick +45 -3
QImageDragObject
Mark out problem areas for fixing.
src/kernel/qdragobject.cpp 2.24 agulbra +2 -2
src/kernel/qlayout.cpp 2.35 agulbra +3 -3
src/kernel/qpixmapcache.cpp 2.8 agulbra +2 -1
src/tools/qgcache.cpp 2.7 agulbra +12 -8
src/widgets/qpushbutton.cpp 2.43 agulbra +3 -3
speling
src/kernel/qdragobject.cpp 2.26 warwick +9 -17
src/kernel/qdragobject.h 2.13 warwick +3 -4
Simplify QStoredDragObject.
src/kernel/qevent.h 2.20 agulbra +9 -3
added no-answer-necessary rectangle to drag move event
src/kernel/qfocusdata.h 2.3 warwick +11 -3
src/widgets/qscrollview.cpp 2.48 warwick +12 -7
src/widgets/qscrollview.cpp 2.47 warwick +6 -4
Focus wrapping.
src/kernel/qfont.cpp 2.36 agulbra +19 -7
more alpha/egcs/linux workarounds
src/kernel/qfont_x11.cpp 2.40 warwick +3 -3
Go gray.
src/kernel/qimage.cpp 2.94 warwick +22 -1
src/kernel/qimage.h 2.28 warwick +2 -1
src/kernel/qpixmap.cpp 2.27 warwick +24 -1
src/kernel/qpixmap.h 2.21 warwick +5 -2
Convenient input from QByteArray.
src/kernel/qimage.cpp 2.97 warwick +2 -2
src/kernel/qpixmap.cpp 2.28 warwick +2 -2
Fix.
src/kernel/qmovie.cpp 1.34 warwick +11 -2
Code to be added and tested later.
src/kernel/qmovie.cpp 1.35 warwick +5 -9
src/kernel/qmovie.h 1.11 warwick +3 -2
Provide QDataSource source to QMovie.
src/kernel/qobjcoll.h 2.7 warwick +4 -20
src/kernel/qwidcoll.h 2.6 warwick +3 -14
Broken in rename.
src/kernel/qprinter_x11.cpp 2.17 agulbra +4 -3
roll back to 1.33 version
src/kernel/qwidget.cpp 2.113 paul +3 -2
Send queued-up childEvents before the first resize event
src/kernel/qwidget.h 2.51 warwick +3 -1
Separate sys-dep extra data create/delete.
src/qt.pro 2.27 warwick +1 -0
src/dialogs/qfiledlg.cpp 2.72 warwick +2 -1
src/kernel/qapplication_win.cpp 2.92 warwick +4 -4
src/kernel/qdnd_win.cpp 2.8 warwick +115 -505
src/kernel/qdnd_x11.cpp 2.21 warwick +2 -2
src/kernel/qevent.h 2.18 warwick +2 -2
src/kernel/qwidget_win.cpp 2.58 warwick +3 -1
Drag&Dropery.
src/qt.pro 2.29 warwick +2 -0
src/kernel/qfocusdata.cpp 2.1 warwick initial checkin
src/kernel/qfocusdata.h 2.4 warwick +6 -12
src/kernel/qwidget.cpp 2.114 warwick +3 -1
src/widgets/qscrollview.cpp 2.49 warwick +5 -8
Make QFocusData clean and public.
src/tools/qdir.cpp 2.23 agulbra +2 -2
avoid a static. saves some memory.
src/tools/qglobal.cpp 2.16 agulbra +6 -4
void statics
src/widgets/qbutton.cpp 2.62 agulbra +5 -9
emit toggled() and clicked() even if this is a toggle button and will
not toggle off.
src/widgets/qbutton.cpp 2.63 agulbra +4 -4
correct toggling-when-in-group behaviour
src/widgets/qheader.cpp 2.46 paul +4 -4
Fix off by one error that caused "index out of range".
src/widgets/qlistview.cpp 2.118 agulbra +19 -12
much faster scrolling in unsorted mode; use about half as much memory
per item; free the items properly
src/widgets/qlistview.cpp 2.119 agulbra +2 -2
unsort/sort correctly
src/widgets/qlistview.cpp 2.120 agulbra +3 -3
finalize QListViewItem in the right way
src/widgets/qlistview.cpp 2.121 agulbra +35 -17
cut memory usage by another fifty per cent in the common case. QLVI
now uses 150-200 bytes of memory, down from ~800 last week.
default to the correct height (including itemMargin()).
change itemMargin default to one pixel, from two.
use itemMargin both on the left and on the right edge of each column.
ensure that children are sorted correctly in QLV::firstChild(), as
they are in QLVI::firstChild().
src/widgets/qlistview.h 2.51 agulbra +2 -2
make setItemMargin() virtual. who put in a non-virtual setter
function?
src/widgets/qmenudata.cpp 2.17 agulbra +8 -6
DWIM: call setCheckable() in setItemChecked() if necessary
src/widgets/qmultilinedit.h 2.37 warwick +3 -3
EDIT, not ED.
src/widgets/qpopupmenu.cpp 2.79 warwick +2 -4
Roll-back my menu-stays-up "fix".
src/widgets/qpopupmenu.cpp 2.80 warwick +7 -2
Worse but better fix for allow both popup and pulldown/pushup menus.
src/widgets/qpushbutton.cpp 2.42 agulbra +16 -57
use alternative (windows-like) motif indication of default button
status, rather than the nextstep/xforms/gtk-like indication.
src/widgets/qsplitter.cpp 1.17 paul +6 -5
src/widgets/qsplitter.h 1.9 paul +3 -2
Changed QSplitter::setFixed() to start counting at 0 instead of 1.
*** WILL BREAK OLD CODE ***
Also introduced FirstWidget and SecondWidget enum values to make setFixed()
calls more readable.
src/widgets/qsplitter.cpp 1.18 paul +160 -141
src/widgets/qsplitter.h 1.10 paul +16 -17
Reworked QSplitter API. Splitter now detects its children, addFirstWidget etc
disappears.
*** WILL BREAK OLD CODE ***
src/widgets/qtooltip.cpp 2.48 agulbra +4 -4
tweak periods a bit
src/widgets/qtooltip.cpp 2.49 agulbra +4 -3
paranoia fix: don't let buggy programs introduce an infinte loop by
calling tip() with the "wrong" rectangle.
src/widgets/qwidgetstack.cpp 2.8 agulbra +4 -1
src/widgets/qwidgetstack.h 2.5 agulbra +5 -1
aboutToShow()
src/widgets/qwidgetstack.cpp 2.9 agulbra +69 -12
src/widgets/qwidgetstack.h 2.6 agulbra +4 -2
added decent docs.
added a visibleWidget() access function
added an aboutToShow() signal.
fixed "value of NaN" bug (0 vs. -1)
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...