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-3.3.5
Qt 3.3.5 is a bug-fix release. It maintains both forward and backward
compatibility (source and binary) with Qt 3.3.4, Qt 3.3.3, Qt 3.3.2,
Qt 3.3.1 and Qt 3.3.0.
****************************************************************************
* General *
****************************************************************************
Platforms
---------
- Qt now supports Mac OS X 10.4 (Tiger)
Compilers
---------
- Added support for VS 2005
- Added support for GCC 4
Windows Installer
-----------------
- The environment variables no longer contain invalid paths.
- The user is warned if QTDIR is not set and the evaluation edition is
already installed, to avoid conflicts between the two packages.
- A bug was fixed where a '\0' was appended to the end of a path.
- Fixed the dependencies for image formats and styles.
Qt Designer
-----------
- Fixed a problem with long string literals on certain Visual Studio
C++ compilers.
- UIC now uses the include hints from the .ui file when generating
source files.
- The "paste" action is now enabled and disabled correctly.
- QWidgetFactory::supportsWidget() now returns true for QSplitter.
- Parse files with more than one '.' in the file name correctly.
- The project name is now displayed correctly also when the project is
created in a root directory.
- Fixed a bug where Windows end-of-line terminators would be included
in string literals, which broke translation.
- Several crashes were fixed related to cutting/copying/pasting menu
items.
- Fixed some problems with designer generating corrupted pro files.
- A crash was fixed for when designer loads a pro file with the same
file listed more than once.
- The action editor is now closed when there is no main window form.
- Stability fixes
Qt Linguist
-----------
- lupdate now understands strings longer than 16384 characters.
- Fixed escaping bugs for string that contain both ampersands and
double quotes.
Qt Assistant
------------
- When printing, assistant now always uses the Active color group.
- Fixed a rendering bug for paragraphs that start with a line break.
- Support for setting the documentation root path, allowing
documentation files to be moved.
- When opening a link in a new window, assistant will now properly
scroll to the correct anchor after the window has been shown.
- Fixed full text search for documents not listed in the 'ref'
attribute of the <section> tag in the current .adp file.
- The state of the forward/backward buttons now work properly when the
tabs are changed.
****************************************************************************
* Library *
****************************************************************************
General Fixes
-------------
Added security patches for zlib: CAN-2005-1849, CAN-2005-2096
The FreeType library was upgraded from version 2.0.9 to 2.1.9
- Build system
Improved build keys for gcc 4 compilers, so plugins no longer
need rebuilding after upgrading gcc to a new patch release.
- QCanvas
Fixed wrong text scaling and cut-off text.
Fixed drawing with a brush when double buffering is enabled.
- QCommonStyle
Fixed the appearance of QSlider after setBackgroundOrigin has
been called.
Fixed an overflow in calculating the handle position for
QScrollBar.
- QCString
Fixed a crash in qUncompress() if the resulting QByteArray was
too large to fit in memory.
Fixed potential security problems by using vsnprintf() instead
of the less secure vsprintf().
- QDataStream
Fixed a data corruption bug when using stream version Qt_3_1 and using
operator<<(qint64).
- QDateTime
Fixed QDateTime::secsTo() when crossing daylight savings hours
boundaries.
- QDockWindow
Undocked windows now remember their size also if the user
changes it.
- QDom
The default constructor for QDocDocument now creates an empty
document that can be used to create elements.
A warning is now displayed when trying to construct or save an
invalid document.
Characters that are not allowed in XML are now escaped
properly when saving.
- QFileDialog
Shortcuts now show the icons of what they point to.
Entry sorting is now locale-aware, as opposed to sorting based
on Unicode order.
You can now select files by pressing 'enter' when using
QFileDialog::getOpenFileNames().
Fixed a missing repaint in contents preview after selecting a
file, then a directory, then the same file again.
dirPath() no longer chops off the last directory in a path.
- QGVector
Fixed a bug that caused a memory leak and data corruption if
resize() failed.
- QHeader
The header text is now rendered correctly next to the icon in
reverse layout mode.
- QImage
Fixed comparison of images with alpha data, but with the alpha
channel disabled.
- QKeySequence
Key sequences that ended with a ',' now work properly.
- QLineEdit
Fixed the behavior of the delete key on the keypad.
Fixed support for transparent line edits.
Fixed a crash when opening the context menu in a QTextEdit
subclass that returns 0 for createPopupMenu().
- QListBox
Fixed a crash when removing the current item while selecting
items with a rubberband.
- QListView
Fixed the behavior of the Home and End keys when QListView
contains disabled and hidden items.
Fixed a problem with the QListView::...Clicked() signals were
emitted also when the root decorated section was not in the
left-most column.
HTML control characters in QListView's tool tip text are now
escaped properly.
sortChildren() now also sorts children of items with no
siblings.
Fixed a missing redraw after removing columns.
contentsWidth() now returns the correct value after
setContentsWidth() has been called.
Fixed a crash after a sequence of deleting and selecting
items.
Fixed the size of headers with multi-line text.
Fixed a lock-up and possible crash caused by an internal state
restore on controllers with no children.
Fixed keyboard navigation when jumping to entries by pressing
the key for the first character in the text of an item.
- QLocale
Fixed support for NaN, which failed on certain compilers.
Passing Q_LLONG to toString() now properly includes the group
symbols.
Fixed locale detection when locale environment variables are
not set.
Added workarounds for compiler optimization bugs when parsing
doubles.
- QLocalFS
Fixed a crash when canceling a QUrlOperator transfer before
completion.
- QMenuData
Fixed a crash when closing an MDI application while the menu
bar has Alt-focus.
- QMessageBox
Message boxes now work correctly in right-to-left mode.
- QPaintDevice
Fixed drawing errors when using bitBlt() on a printer.
- QPainter
Fixed drawing of rectangles with a negative (or 0) width.
- QPopupMenu
The height of new columns is now initialized properly when
menu items are shown in multiple columns.
- QProcess
Close socket connections properly when a
process is created after creating the socket connection.
- QPSPrinter
Generate PS font names correctly.
- QPushButton
Fixed a crash caused by deleting the button while the popup
menu is shown.
- QRichText
Tab stops are now adjusted correctly when printing in high
resolution mode.
Reduced the number of memory allocations when deleting large
blocks of text.
Fixed parsing of hexadecimal HTML entities
Fixed a bug where the font changed after calling setText()
repeatedly.
- QScriptEngine
Fixed an issue with shaping of Hebrew text, which lead to
layout problems in QTextLayout.
Fixed rendering of Hebrew text with punctuation.
Fixed bugs in Gurmukhi shaping.
- QScrollView
Fixed the size hint when scrollbars are set to be permanently
on.
Fixed a drawing error seen on certain graphics drivers when a
scroll view spans multiple screens.
Fixed a bug where wheel events' horizontal/vertical status
were not forwarded to viewportWheelEvent().
Fixed a crash when mouse wheel events were sent to a scroll
view with disabled scroll bars.
- QSettings
Fixed a bug when comparing keys with common prefixes.
- QSGIStyle
Fixed the size of QComboBox.
- QSizeGrip
Fixed a bug that caused the window to move when resizing to
the minimum size using the size grip.
- QSocketDevice
Improved error reporting when the connection is unexpectedly
closed.
Fixed a bug where the socket would be closed if 0 was passed
as maxlen to readBlock().
- QString
Fixed a lock-up in QString::section().
Let replace() behave as documented when the index is larger
than the length of the string.
- QTable
Fixed positioning of QComboTableItems that span several rows.
- QTextCodec
Fixed occasional crash in fromUnicode().
Fixed Big5 support to comply with the standards.
- QTextEdit
Fixed bug in undo/redo history when input methods are used.
Fixed a crash caused by inserting text with an input method
during a focus change.
Fixed the behavior of the delete key on the keypad.
Fixed setMaxLogLines() when there are already too many lines.
Fixed crash when clearing a QTextEdit when the IME is active.
Fixed crash when the text edit is deleted while dragging text.
- QTextLayout
Fixed layout of lines that are too long and do not contain a
possible break point.
- QTimeEdit
Fixed several issues with stepUp() and stepDown().
- QToolButton
Fixed a crash when assigning a tooltip to a tool button which
does not have QMainWindow as an ancestor.
- QToolTip
Fixed an occasional crash.
- QTranslator
Fixed a bug when calling messages() before tr() when using
compressed .qm files.
- QUrlOperator
Fixed a crash when accessing invalid paths on an FTP server
using QFileDialog.
Fixed a bug where the source would be removed if the source
and destination were the same.
- QVariant
Fixed a memory leak in clear().
- QWidget
Fixed excessive flicker when reparenting a widget that has
tool windows.
- QWorkspace
Fixed flickering when switching between maximized windows.
Fixed a lock-up when modal dialogs were created with
QWorkspace as parent.
Fixed a bug where modeless dialogs with QWorkspace as parent
would be drawn with no title bar.
- SQL, DB2 driver
Compile fixes.
Fixed a bug where QSqlCursor::insert() would fail to insert
two blob fields at the same time.
- SQL, MySQL driver
Fixed a crash when using empty database names.
- SQL, Oracle driver
Fixed truncation of numeric data types to 22 digits.
Fixed UTF-8 support by ensuring that there is enough space to
store the text.
- SQL, ODBC driver
Fixed problems with sorting and comparing strings larger than
8192 characters.
- SQl, PostgreSQL driver
Temporary tables are now only visible for the connection that
created them.
- SQL, TDS driver
Fixed problems with compiling the plugin with later versions
of the TDS library.
- SVG support
Fixed support for SVG viewbox.
Added basic support for stroke-dasharray.
Platform-Specific Issues
------------------------
Windows:
- ActiveQt
Unrelated types are no longer converted.
The control container is now only reset if the CLSID changes.
Fixed a bug where QAxObject::clear() did not reset the
metaobject when it was cached.
Fixed a memory leak.
Fixed a bug that caused flicker when navigating away from a
page embedding a control.
The VARIANT out-parameters in signals now map to "QVariant &"
and not "const QVariant &".
Signal parameters of type "bool" are marshalled to the bool
slot also when the control sends an integer parameter.
- Drag & drop
Fixed a bug with sending single-color pixmaps.
Fixed a crash caused by reading a drag object after it has
been deleted (before the drop event).
Dragged pixmaps are now cleaned up before drawn to avoid
problems with broken alpha values and resetting masked pixels.
- QApplication
Fixed a lockup caused by showing a dialog while resizing a
window.
QWidget::grabKeyboard() now also grabs the menu button.
Fixed a bug where mouse events were sent to the wrong widget
after calling QEventLoop::processEvents() with
ExcludeUserInput.
Windows Server 2003 can now also use the Windows XP style.
Fixed a memory leak in QEventLoop.
- QColor
Fixed failed initialization of the Qt colors (e.g., Qt::red) when
using the MinGW compiler.
- QFile
Fixed a bug where a read error was not handled properly.
- QFileInfo
permission() now uses the correct file name on Windows 9x.
- QFontDataBase
Added support for scalable fonts.
- QFontEngine
Fixed a problem with symbol fonts.
Fixed support for user defined characters.
- QLibrary
Fixed the directory separators.
Fixed some library loading errors.
- QLocale
The locale() function now returns the correct ISO name instead
of a number.
- QNPWidget (NPAPI)
Fixed a bug where the widget was not clipped properly by the
browser.
- QPainter
Fixed a bug where QPainter failed to fill ellipses of size
2x2.
Fixed a potential lock-up after failed GDI allocations.
- QPrinter
Rich text tables are now printed correctly when the table
spans pages.
Fixed text printing errors on page 2 and out caused by the
background mode being reset to OPAQUE.
- QProcess
The directory separators for the current working directory are
now converted properly, so that a UNC path can be used on
Windows.
- QTranslator
Fixed an issue with isReadable() on NTFS.
- QWindowsXPStyle
XP style now works when compiled as a plugin.
Fixed menu bar placement.
Fixed a bug in setting the background color of QTabWidget.
Fixed the position of the size grip in large QSizeGrip
widgets.
QGroupBox now uses the correct colors.
- QWorkspace
Fixed bug where hidden windows would be shown after restoring
from maximized mode.
- qmake
The Makefile generator now only searches for the latest
version of the Qt library, as opposed to searching all
libraries.
Dependency checking for pre-compiled headers were fixed.
Fixed support for listing .pro files in SUBDIRS in subdir .pro
files.
Fixed support for multiple -L and -I entries in QMAKE_LIBS.
Mac:
- Build system
When using Xcode, the optimization level is set to 0 in debug
mode.
Added support for Xcode 2.1 and up.
Fixed copying of target files when DESTDIR is set.
- Drag & drop
Fixed a crash when deleting the drag object before dropping.
- QApplication
The default font is now only set if the user has not set one.
Fixed a problem where popup menus would not go away after
releasing the mouse button outside the popup.
Added support for dual axis mouse wheels.
Fixed a bug in tablet identification.
Added support for tablet erasers.
Fixed a deadlock in postEvent() when there was contention for
a wakeup.
Fixed a crash when switching displays at the same time as
QApplication is destroyed.
Stability fixes.
- QColorDialog
Fixed modality support.
- QFileDialog
Let the file dialog remember the previous directory.
Fixed keyboard navigation when jumping to entries using the
first letter of a file name.
Fixed a memory leak.
- QFontDatabase
Fall back to the "Geneva" font, which is guaranteed to be
available, instead of "Helvetica".
- QFontEngine
Fixed a memory leak.
Fixed rendering of glyphs that modify previous glyphs,
including Indic text.
- QMacStyle
Title bars are now shown as deactivated when the window is
deactivated.
Fixed a bug where buttons in button groups inside a container
would look like they were pressed.
Fixed a crash caused by drawing onto a non-pixmap background.
Fixed the width of QComboBox.
Improved drawing of size grips.
Improved drawing of sliders, and made QSlider slightly wider
by default.
- QMenuBar
Fixed a lockup caused by menu items ending with an '&'.
Menu items with disabled popups are now also disabled.
- QMessageBox
The resize handle is now shown.
- QPainter
Fixed double transformation of ellipses with a transformed
width or height of 1.
- QPixmap
Fixed a crash when loading a cursor from an embedded image.
The color depth is now set properly when converting a QBitmap.
- QPrinter
Fixed a crash when using bitBlt() to copy a QBitmap onto a
printer.
- QProcess
Fixed support for launching bundles.
- QPushButton
Icons are now drawn properly.
- QTextBrowser
Fixed a bug where a text browser popup triggered by a
hyperlink would pop up again when the user clicks inside the
first popup.
- QToolButton
Fixed a painting problem when the button was pressed.
- QWidget
Menubar popups no longer steal focus from QTextEdit.
Fixed collapsing of windows with no title bar decorations.
Several window activation bugs have been fixed.
Fixed a bug where modal dialogs would be modal to its own
children.
Fixed tablet support for multiple screens.
Fixed a memory leak.
X11:
- Build system
Removed aliasing/redefinitions of the 'which' command to fix
failures in the configure script on certain Unix systems.
Added some missing flags for the yacc tool on 64-bit Linux.
The -fn application command line option, which selects the
default application font, works again.
Fixed copying of target files when DESTDIR is set.
- Drag and drop
Fixed a crash in the dragging application when the drop target
crashes.
Fixed a bug in finding the widget under the cursor while
dragging.
Some problems were fixed with the internal timestamp in the
drop event.
- OpenGL
Fixed colors when rendering using glColor() onto an 8 bit
pixmap.
- QApplication
Support the F11 and F12 keys on Sun keyboards.
- QCanvasView
Support multiple shared views of a single canvas on multiple X11
screens.
- QClipboard
Fixed a rare crash related to cut & paste with the Motif
extension.
- QFontDatabase
Fixed a bug where QFontInfo would return an empty family and
point size after trying to select a font that was not
installed on the system.
- QFontEngine
Fixed a bug where scaling italic fonts would sometimes cut
overhangs.
- QInputContext
Fixed a bug that led to a corrupted display in QLineEdit and
QTextEdit when using Japanese input methods with very long
input selections.
- QPainter
Fixed a crash when setting a pen on an inactive painter.
- QPrinter
Fixed printing on Tru64 by removing the -o argument to the lp
command.
- QScriptEngine
Added support for Khmer fonts.
Fixed shaping of Telugu text.
Fixed a crash when scaling Japanese XLFD fonts by a factor of
1000.
Embedded:
- QApplication
Fixed a memory leak.
- VNC driver
Fixed a memory leak.
- QWidget
Fixed a potential crash when reparenting widgets.
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...