Revision control

++ ****************************************************************************
++ * Important Notices *
++ ****************************************************************************
++
++ Meta-Object System
++ ------------------
++
++ Qt 4.0.0 introduced a change to the way type names outside the current
++ scope were handled in signals and slots declarations and connections
++ which differed from the behavior in Qt 3.x.
++
++ Unfortunately, this could lead to signal-slot connections that were
++ potentially type-unsafe. Therefore, in Qt 4.0.1 type names must be fully
++ qualified in signal-slot declarations and connections.
++
++ For example, in Qt 4.0.0, it was possible to write:
++
++ connect(socket, SIGNAL(error(SocketError)), ...);
++
++ In Qt 4.0.1, the above connection must be made in the following way:
++
++ connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), ...);
++
++
++ Library
++ -------
++
++ Support for SGI Altix has been added for both gcc and Intel icc.
++
++
++ QX11EmbedContainer and QX11EmbedWidget are now exported classes.
++
++ This change only affects developers using Qt/X11 with gcc >= 4.0 and
++ symbol visibility enabled. Applications built against Qt 4.0.1 that
++ use these classes cannot be linked against Qt 4.0.0.
++
++
++ ****************************************************************************
++ * Changes *
++ ****************************************************************************
++
++ Qt Designer
++ -----------
++
++ Fixed crash in designer when using fonts in custom widgets that
++ don't have a point size set but use a pixel size instead.
++
++ Fixed initial positions of the form windows in the MDI mode.
++
++ Ensured that the object inspector is updated when a page is added
++ to a widget stack.
++
++ Ensured that the SDK is installed and the library symbols are
++ exported.
++
++ Fixed crash when breaking a layout after deleting all widgets within.
++
++ Fixed handling of nested action groups.
++
++ Fixed mouse handling to match user expectations on different
++ platforms.
++
++ Don't change system setting for double click interval.
++
++ Disabled the richtext editor for the "statusTip" property.
++
++ Improved widget handling, loading and saving for QFrame, QTabWidget,
++ and Q3GroupBox.
++
++ Added a platform-neutral mechanism for saving key sequences.
++
++ Used Qt's list of supported image formats rather than an incomplete
++ static list.
++
++ Provided a way for plugins to access to the layout of container
++ widgets.
++
++ Added support for editable byte arrays.
++
++
++ Qt Linguist
++ -----------
++
++ Made lupdate handle cases where the compiler converts strings using
++ a different codec to that used by lupdate.
++
++ Fixed bug in lupdate and lrelease's .pro file parser.
++
++ Fixed lupdate's octal sequence handling.
++
++ Fixed duplicate context when two contexts have the same hash value.
++
++
++ Qt 3 to 4 Porting Tool
++ ----------------------
++
++ Fixed connnect statement that did not work with the new stricter moc.
++
++ Fixed incorrect porting of enum values in switch statements.
++
++ Fixed header file name replacements in include directives.
++
++
++ Meta Object Compiler (moc)
++ --------------------------
++
++ Fixed VC6 compilation of moc generated code with namespaced
++ superclasses.
++
++ Fixed parsing of functions that throw exceptions.
++
++ Fixed compilation of moc generated code with VC6 when inheriting
++ from classes inside namespaces.
++
++ Improved the efficiency of signals with default arguments.
++
++
++ Qt Assistant
++ ------------
++
++ Fixed the document list for full text search indexing.
++
++ Fixed case sensitive completion in the find dialog combobox.
++
++ Re-enabled the "add content file" option.
++
++ Removed the "General" tab in the settings dialog.
++
++ Fixed registry key handling and deletion of cache files.
++
++ Made it possible to read titles in the tabs in assistant.
++
++ Updated the QAssistantClient documentation.
++
++ Added the QtAssistantClient headers to the other library headers
++ for installation.
++
++ Fixed full text search for phrases.
++
++
++ General Fixes
++ -------------
++
++ - Dialogs
++ Removed hard-coded margin and spacing values from built-in
++ dialogs.
++
++ - QAbstractItemModel
++ Fixed crash caused by removing an item with expanded children.
++ Added some more see also links and defined QModelIndexList.
++
++ - QAbstractItemView
++ Fixed rendering and selection issues with MultiSelection
++ mode.
++ Improved handling of persistent editors.
++ Improved performance of item insertion.
++ Improved signal handling and emission.
++
++ - QAbstractSlider
++ Ensured that no changes occur if the orientation doesn't
++ change in a call to setOrientation().
++ Introduced better keyboard control for sliders.
++ Fixed sliderPressed() and sliderReleased() signal emissions.
++
++ - QAbstractSocket
++ Fixed race condition in connectToHost().
++ Made bytesAvailable() return the unget buffer size as well
++ as the size of any pending data.
++ Made NetworkLayerProtocol non-internal.
++
++ - QAbstractSpinBox
++ Fixed problems with locale and the "." and "," separators.
++ Improved handling of extra whitespace at the beginning and
++ end of user input.
++
++ - QApplication
++ Made closeAllWindows() respect windows that reject the close
++ event.
++ Fixed crash caused by calling QApplication::setStyle()
++ before a qApp was created.
++ Improved handling of the last open window for most cases.
++ Improved event handling.
++
++ - QBezier
++ Used a new algorithm for offsetting curves.
++ Improved performance by using a more sophisticated
++ algorithm and by making QBezier a POD type.
++
++ - QBrush
++ Improved radial gradient rendering.
++
++ - QColorDialog
++ Process the return key correctly.
++
++ - QComboBox
++ Fixed behaviour of setMaxItems() to enable new items to be
++ inserted within the range allowed.
++
++ - QCommonStyle
++ Ensured that mnemonics are always shown for buttons.
++ Fixed position of right corner widget when used on its own.
++
++ - QDateTimeEdit
++ Improved the range of input allowed for numbers.
++
++ - QDial
++ Fixed valueChanged() signal emission.
++
++ - QDialog
++ Fixed Lower QSizeGrip in QDialog instead of raising it.
++
++ - QDir
++ Fixed relative path handling on Windows.
++ Reverted empty string matching behavior to match Qt 3's
++ behavior.
++ Restored API compatibility with Qt 3.
++
++ - QDirModel
++ Fixed accidental deletion of directories in read-only mode.
++
++ - QDockWidget
++ Ensured that the size of a floating dock widget is the same
++ regardless of how it was floated.
++ Reintroduced double-clicking behavior to float a dock
++ widget.
++ Fixed incorrect moving behavior for floating widgets.
++ Ensured that dock widgets display a close icon only if they
++ can be closed.
++
++ - QDockWidgetLayout
++ See QMainWindow.
++
++ - QDomNodeList
++ Fixed handling of out-of-range items.
++
++ - QDoubleSpinBox
++ Improved decimals handling and rounding behavior in
++ QDoubleSpinBox.
++
++ - QFile
++ Fixed problems with carriage return and line feed handling
++ in readLine().
++ Ensured that pos() returns the correct value if the file
++ shrinks.
++
++ - QFileDialog
++ Fixed incorrect behavior where the dialog would go to the
++ root directory if the user tried to enter a non-existent
++ directory.
++ Fixed sorting by type behavior.
++
++ - QFontDatabase
++ Fixed loading of special fonts.
++ Fixed sample characters for Chinese scripts.
++
++ - QFontDialog
++ Switched the locations of the OK and Cancel buttons.
++ Made items in the font dialog read-only.
++ Improved handling of the OK and Cancel buttons when the
++ dialog is in reverse layout mode.
++
++ - QGifHandler
++ Reintroduced GIF plugin support.
++
++ - QGridLayout
++ Improved default size handling.
++
++ - QHeaderView
++ Fixed section hiding behavior.
++ Fixed Out of bounds error and improper calculation of last
++ column.
++ Improved mouse handling and widget updating.
++ Fixed crashes caused by moving or removing sections, or by
++ updating the current section.
++ Improved signal behavior for resized or removed sections.
++
++ - QHttp
++ Fixed proxy authentication.
++ Fixed broken behavior when scheduling many requests to
++ different hosts.
++ Fixed socket object ownership issues with setSocket() that
++ could lead to a crash.
++
++ - QImage
++ Fixed smooth scaling for image formats other than RGB and
++ ARGB32.
++
++ - QImageReader
++ Fixed the default implementation of imageCount() to return a
++ valid number of images.
++
++ - QInputDialog
++ Switched the locations of the OK and Cancel buttons.
++
++ - QIODevice
++ Fixed problems with carriage return and line feed handling
++ in readLine().
++ Made bytesAvailable() return the unget buffer size as well
++ as the size of any pending data.
++ Fixed error handling when reading lines with QFile.
++ Fixed seek() behavior with regard to the unget buffer.
++
++ - QItemDelegate
++ Improved layout handling, redrawing, signal emission,
++ and mouse click behavior.
++
++ - QKeySequence
++ Fixed accidental HTML escaping of ampersands.
++
++ - QLayout
++ Print out object names in warnings.
++
++ - QLineEdit
++ Enabled textChanged() signal emission when using input
++ methods.
++ Improved return key press handling for users of the
++ returnPressed() signal.
++ Fixed context menu action handling.
++ Fixed editingFinished() signal emission behavior.
++ Fixed Ctrl-K and Ctrl-U behavior to cut text rather than
++ just deleting it.
++ Fixed line edit selection behavior to maintain any current
++ selection when the widget receives the keyboard focus.
++
++ - QListView
++ Improved handling of hidden rows.
++ Fixed rendering when used in reverse mode.
++
++ - QListWidget
++ Fixed the size policy for laying out items in the list.
++ Improved sorting performance.
++ Fixed persistent index handling when sorting.
++
++ - QMainWindow
++ Fixed problems with multiple connections from QMainWindow
++ signals to QToolBar slots.
++ Fixed dock widget handling (adding a widget to all dock
++ areas) and incorrect dock area splitting behavior that
++ could lead to crashes in QMainWindow.
++ Made QMainWindow's status bar have an "Ignored" horizontal
++ size policy.
++
++ - QMetaObject
++ Fixed meta objects that reported far too many enums.
++ Fixed the behavior of sender() to return the correct value
++ during queued activation.
++
++ - QMetaType
++ Fixed whitespace handling in template specialization.
++ Fixed missing qt_metatype_id implementation for <void *>.
++ Added more support for compilation with QT_NO_DATASTREAM.
++
++ - QMenu
++ Fixed keyboard navigation when mouse navigation is also
++ being used.
++ Fixed menu bar merging behavior.
++
++ - QMenuBar
++ Fixed Alt key navigation.
++
++ - QObject
++ Fixed incorrect exception handling.
++
++ - QPaintEngine
++ Suppressed warnings when drawing "empty" text.
++ Fixed rendering of Underline, Overline, and StrikeOut for
++ text drawn using outlines.
++
++ - QPainter
++ Improved handling of clip regions when restore() is called.
++ Improved text drawing performance.
++
++ - QPaintDevice
++ Allowed construction of QImage before QApplication.
++
++ - QPainterPath
++ Improved performance and rendering accuracy.
++
++ - QPen
++ Fixed missing detach in setWidth().
++
++ - QPixmap
++ Improved drawing speed and mask handling.
++
++ - QPlastiqueStyle
++ Improved visual feedback for scrollbar page buttons and
++ slider handle.
++ Improved Plastique style on non-XRender-enabled displays.
++
++ - QProcess
++ Fixed endless loop of signal being emitted if model dialog
++ is used in slot.
++ Made bytesAvailable() return the unget buffer size as well
++ as the size of any pending data.
++
++ - QProxyModel
++ Improved signal handling for propagated signals.
++
++ - QResource
++ Fixed Latin-1 string handling.
++ Fixed unloading of resources.
++
++ - QScrollArea
++ Fixed widget resizing so that widgets that are smaller than
++ the viewport remain visible.
++
++ - QSettings
++ Made it possible to store QImage/QPixmap settings.
++ Fixed race conditions in QSettings with INI files.
++ Improved handling of non-terminated strings in INI files.
++
++ - QSizeGrip
++ Made the Qt 3-style constructor public.
++
++ - QSpinBox
++ Fixed problems with out-of-range integers and doubles.
++
++ - QSqlQueryModel
++ Fixed integration between QSqlTableModel and MS Access.
++ Fixed signal emissions for tables with only one row.
++
++ - QSqlTableModel
++ Fixed problems with multiple record insertion.
++
++ - QStatusBar
++ Fixed status bar height without size grip.
++
++ - QTabBar
++ Fixed handling of the current page index when adding the
++ first page to QTabWidget.
++ Improved tab bar icon handling to enable icons to be updated
++ without redrawing the entire tab bar.
++
++ - QTableView
++ Improved text cursor handling and support for keyboard
++ modifiers.
++ Fixed problems with disappearing headers.
++ Disallowed selection of hidden rows and columns.
++ Fixed crashes involving empty models and tables with headers
++ but no rows or columns.
++
++ - QTableWidget
++ Improved sorting and signal emission behavior.
++
++ - QTabWidget
++ Fixed handling of the current widget to keep the tab bar
++ updated.
++
++ - QTextBrowser
++ Removed temporary visible text selection when activating
++ anchors with Shift-click.
++
++ - QTextCursor
++ Fixed selection behavior for words at the beginning of lines.
++ Fixed incorrect use of character formats when calling
++ insertFragment().
++ Fixed incorrect text insertion where line feeds and carriage
++ returns would not be transformed into Unicode block
++ separators.
++
++ - QTextDocument
++ Added support for page breaking.
++ Added support for relative font sizes.
++ Added support for <hr /> tags.
++ Fixed clipboard handling and drag and drop of text frames.
++ Fixed handling of closing HTML </center> tags.
++ Fixed crash (failing assertion) on import of nested empty
++ HTML tables.
++ Fixed data corruption in fromPlainText().
++ Corrected the handling of image tags inside anchors.
++ Fixed introduction of empty spaces or lines before and after
++ tables.
++ Fixed misrendering of some nested HTML tables with variable
++ sized columns.
++ Fixed crash in table drawing due to out-of-bounds access.
++ Added support for the pageCountChanged() signal.
++ Improved performance and size of PostScript images when
++ printing high resolution or scaled images.
++
++ - QTextEdit
++ Improved layout and selection handling.
++ Added configuration support for non-blinking cursors.
++ Improved keyboard handling.
++ Improved text insertion handling.
++
++ - QTextFormat
++ Added support for horizontal rules.
++ Improved font handling.
++
++ - QTextLayout
++ Allow line breaking at tabs.
++ Improved reporting of line widths for lines ending with a
++ QChar::LineSeparator.
++ Fixed reporting of the minimum width for layouts that have
++ NoWrap/ManualWrap as their wrap policy.
++
++ - QTextStream
++ Fixed locking behavior when reading from stdin.
++ Fixed seek() behavior.
++ Improved Latin-1 string handling.
++
++ - QTextTable
++ Improved performance and selection handling.
++
++ - QToolBar
++ Fixed toolbar resizing behavior to handle icon size changes.
++
++ - QTreeView
++ Improved handling of hidden rows, columns, and child items.
++ Fixed repainting issues with newly inserted child items
++ and selections.
++ Improved scrolling behavior.
++ Fixed crashes involving column handling and empty views.
++ Fixed sorting indicator behavior.
++
++ - QTreeWidget
++ Improved item insertion performance.
++ Fixed clone() and operator=() for QTreeWidgetItem.
++ Fixed crash when removing or deleting items with children.
++ Improved sorting performance.
++ Fixed sorting indicator behavior.
++ Fixed persistent index handling when sorting.
++
++ - QUrl
++ Improved the performance of removeDots().
++
++ - QWidget
++ Fixed problems with adding an action multiple times.
++
++ - QXmlInputSource
++ Improved heuristics for determining character encodings.
++
++ - Q3FileDialog
++ Fixed file selection handling.
++
++
++ Platform-Specific Issues
++ ------------------------
++
++ Windows:
++
++ - QApplication
++ Fixed Block modeless elements of client when ActiveX opens a
++ modal dialog
++ Enabled tablet support.
++ Improved event handling for popup widgets.
++
++ - QAxWidget
++ Support a document site only if the COM object allows proper
++ initialization with a storage.
++
++ - QFileDialog
++ Updated to use the latest native Windows dialogs.
++
++ - QProcess
++ Fixed behavior of forwarded read channels.
++
++ - QSettings
++ Fixed behavior of childKeys() with respect to the default
++ key.
++
++ - QWindowsStyle
++ Fixed menu item size.
++ Improved drawing of default push buttons.
++ Fixed rendering of sliders to correctly differentiate
++ between those in enabled and disabled states.
++
++ - QWindowsXPStyle
++ Fixed menu frame rendering.
++ Reduced the space allocate to menu items.
++
++
++ X11:
++
++ - QApplication
++ Fixed incorrect initialization of screen and resolution.
++ Improved mouse button handling.
++ Fixed handling of withdrawn windows.
++
++ - QBitmap
++ Fixed bitmap brush textures to ensure that they use the
++ correct color with XRender.
++
++ - QFont
++ Fixed handle() to return useful values.
++
++ - QFontDatabase
++ Fixed fonts for some writing systems not being loaded on X11
++
++ - QPaintEngine
++ Fixed multi-screen support.
++ Improved performance and rendering accuracy.
++ Fixed dot-dash patterns when drawing with large pen widths.
++ Improved text rendering on exported displays.
++
++ - QWidget
++ Implemented support for window opacity.
++ Added support for widgets with 32 bit sizes.
++ Improved support for different active and inactive background
++ brushes.
++ Fixed window icons on X servers that have truecolor and
++ pseudocolor visuals with different depths.
++ Fixed text rendering on exported displays.
++
++ - QXIMInputContext
++ Fixed crash in XIM code with newer x.org libraries.
++ Fixed support for switching input method styles.
++
++ - QX11Embed
++ Exported QX11Embed (see the Important Changes section
++ above).
++ Improved handling of non-XEmbed clients.
++ Improved geometry and focus handling.
++
++
++ UNIX:
++
++ - QPageSetupDialog
++ Reduced the size of the dialog.
++
++ - QPrintDialog
++ Fixed initialization of color and grayscale radio buttons.
++
++ - QProcess
++ Fixed incorrect notification of process termination on
++ Linux kernels up to and including the 2.4 series.
++ Made QProcess emit an error() when failing to launch a
++ program.
++
++
++ Mac OS X:
++
++ - QApplication
++ Fixed widgetAt() to handle transparent widgets.
++ Handle keyboard events in the active window if no focus
++ window is available.
++ Changed wheel mouse scrolling speed to match that of
++ other applications.
++
++ - QComboBox
++ Fixed rendering of combobox frames.
++
++ - QDnD
++ Fixed URL handling.
++
++ - QClipboard
++ Fixed Junk at end of pasted text on Qt/Mac.
++
++ - QCursor
++ Fixed incorrect pixmap handling.
++
++ - QFileDialog
++ Fixed sheet modality issues to prevent the dialog from being
++ hidden behind other windows.
++
++ - QFont
++ Default to using the Geneva font.
++ Enable kerning and fix Arabic text handling.
++
++ - QLibraryInfo
++ Fixed location of qt.conf in Mac OS X bundles.
++
++ - QMacStyle
++ Improvements to rendering accuracy of comboboxes, tab bars,
++ workspace windows, tool buttons, and push buttons.
++ Fixed incorrect drawing of scrollbars with "inverted
++ appearance".
++ Fixed font-related crash for applications configured to
++ use the standard desktop settings.
++
++ - QMenu
++ Improved menu bar handling on navigation dialogs.
++
++ - QMenuBar
++ Improved menu bar hiding/wrapping behavior.
++
++ - QPaintDevice
++ Removed byte order assumptions.
++
++ - QPaintEngine
++ Improved brush handling, clipping, masking, and tiling
++ operations.
++
++ - QPixmap
++ Improvements to pixmap copying and conversion, masking, and
++ alpha channel handling.
++ Removed byte order assumptions.
++
++ - QPrintEngine
++ Made color printing the default behavior.
++
++ - QSettings
++ Sync the application's setting on construction of a
++ QSettings object.
++
++ - QSysInfo
++ Included enum values for Mac OS X codenames in the
++ MacVersion version enum.
++
++ - QWidget
++ Improved mouse event handling.
++ Improved interoperability between modal widgets.
++
++
++ Tools
++ -----
++
++ - uic3
++ Fixed class name handling when used in "-convert" mode.
++ Fixed vertical space issues with .ui files converted from
++ Qt 3 to Qt 4.
++ Improved support for Qt3Support widgets.
++ Improved support for deprecated enums.
++ Added a generator for dependencies in Qt 3 .ui files.
++
++ - rcc
++ Added better error reporting.
++
++ - uic
++ Added code generation for tab attributes.
++ Fixed text codec handling.
++ Used UTF-8 as the default enconding in .ui files.
++ Fixed code generation for QWizard.
++
++
++ Documentation
++ -------------
++
++ Porting:
++
++ Removed QMovie from the list of implicitly shared classes that were
++ previously explicitly shared.
++
++ Added .ui porting document to the 4.0.1 documentation.
++
++ Added sections about QHBox, QVBox, and QGrid to the porting guide.
++
++ Added QImageIO and QMovie to the porting guide.
++
++ Added QRegExp and some QDir functions to the porting guide.
++
++ Added QObject::objectTrees() to the porting guide.
++
++ Added QPopupMenu to the porting guide.
++
++
++ General:
++
++ Fix documentation of amortized container behavior.
++
++ Added information about using specific compilers to build Qt.
++
++ Removed QtMotif documentation because it is now part of Qt Solutions.
++
++ Clarify parent-child relationship within QThreads.
++
++ Documented potential file name clashes when using precompiled headers.
++
++ Added a Windows XP gallery.
++
++ Added pages to contain lists of classes for each Commercial Edition.
++
++ Reintroduced the QAssistantClient documentation as part of the
++ QtAssistant module.
++
++ Added missing Qt Designer API documentation.
++
++ - QApplication
++ Documented correct use of QApplication::setStyle().
++
++ - QComboBox
++ Made removeItem() and setRootModelIndex() visible in the
++ documentation.
++
++ - QMetaObject
++ Added missing documentation for QGenericArgument and
++ QGenericReturnArgument, making them visible in the
++ documentation, but not recommended for casual use.
++
++ - QPainter
++ Make QPainter::setRedirected() visible and fix its
++ description.
++
++ - QSqlDatabase
++ Document what happens when passing an existing connection
++ name to addDatabase().