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
Raw File
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)

back to top