Revision control

++
++ Qt 3.1.2 is a bugfix release. It maintains both forward and backward
++ compatibility (source and binary) with Qt 3.1.1
++
++
++ ****************************************************************************
++ * General *
++ ****************************************************************************
++
++ Some build fixes on different platforms. Many small documentation
++ fixes.
++
++ XFree86 only: Tablet support now also looks for devices called "pen",
++ not just "stylus" and "eraser".
++
++ Animations: Less CPU-consuming roll effects.
++ X11 only: Disable effects on displays with <16bpp (rather than
++ falling back to the scrolling).
++
++
++ ****************************************************************************
++ * Library *
++ ****************************************************************************
++
++ - QAccel
++ Allow localization of status bar messages. Try harder to
++ distinguish between an accelerator and the identical
++ accelerator with Shift in case on of them is currently
++ disabled.
++
++ - QAccessible
++ Send accessibility notification for selection changes in
++ menubars and popup menus. Send accessibility
++ notifications for QListBox currentItem/selection changes.
++
++ - QActionGroup
++ Implement visibility for drop-down actiongroups.
++
++ - QApplication
++ Return focus to the widget that had it before a popup opened
++ even if the focus is passed on during the show event handling.
++ When the programmer/user explicitly sets the style (either
++ with QApplication::setStyle or the -style command line
++ option), do not reset the style on settings changes. Creating
++ a second QApplication reads the settings again.
++ Windows only: Emit aboutToQuit() when the user logs off. Send
++ a focusOut event to the focus widget when the user tries to
++ switch applications using Alt+Tab. Fixed setting of
++ desktop-wide fade and scroll effects.
++ Windows95/98/Me: Fixed enter/leave handling. Among other
++ benefits this makes tooltips work more reliably.
++ X11 only: Various fixes for input methods, e.g. Korean
++ 'ami'. Some startup performance improvements with
++ QSettings. Mark the internal wakeUpGuiThread() pipe with
++ FD_CLOEXEC. Call XFilterEvent before the public X11 event
++ filters to avoid applications filtering out events that are
++ necessary for input methods to operate. Removed old en_US
++ locale workaround for Solaris. Close all open popups when
++ clicking on a screen different from the popup's screen. Do not
++ force 256 colors on 8-bit display (used to be a workaround for
++ a vnc bug).
++ Mac only: Popupmenus that are dismissed by clicking outside of their
++ bounds will no longer send the event to the widget clicked on (to avoid
++ selection changing when canceling a context menu). QContextMenuEvents
++ will be sent in the same style as Windows/X11 to make the platforms
++ more consistent, additionally mapping of Ctrl+Click to RightButton has
++ been added to allow easy context menu handling. Added warnings when a
++ Qt application is run outside of an application bundle (in GUI mode)
++ this will prevent accidental starving from events. Correct state when a
++ modal dialog is shown (to disable the menubar) is used now, and is
++ emulated to feel like Carbon applications. Fixed bug so that
++ QApplication::processEvents() can be called before
++ QApplication::exec(). Window activation will not change when a popup
++ menu is displayed. Toolbar toggle button will only toggle the top dock
++ in a QMainWindow. European text composition is supported now to take
++ advantage of TextInput modules available on Mac OS X. Window activation
++ has been improved to allow interleaving windows of different classes
++ correctly (to decrease differences between X11/Windows and Mac).
++
++ - QBuffer
++ IO_Truncate no longer detaches the explicitly shared byte array.
++
++ - QButton
++ In setPixmap(), avoid laying out again if the new pixmap does
++ not change the size. Use QSharedDoubleBuffer only if it is
++ enabled (this avoids repainting errors).
++
++ - QButtonGroup
++ Improve hit testing for cursor navigation.
++
++ - QCanvas
++ Do not try to double buffer invalid areas.
++
++ - QCanvasEllipse
++ Windows only: Workaround a Windows limitation that does not
++ support 2x2 ellipse rendering without a pen. Do not try to
++ double buffer invalid areas.
++
++ - QColorDialog
++ Allow the setting of all 48 standard colors.
++
++ - QComboBox
++ Close any popup menus or listboxes when disabling the combobox.
++ Fix text alignment when large pixmaps were inserted into the
++ combobox.
++
++ - QComplexText
++ Added correct positioning specs for all of Thai and Lao. Some
++ reordering fixes.
++
++ - QCursor
++ Mac only: Correct interpretation of mask/data of a QCursor so that the
++ mask will can be used as documented.
++
++ - QDate
++ Fixed addYears() for days missing in certain years.
++
++ - QDateTimeEdit
++ Compute an improved layout for the QDateEdit and QTimeEdit
++ components of the QDateTimeEdit (based on the size hints). Set
++ the size policy of the QDateTimeEdit to (Minimum, Fixed).
++ In time edit: If the display is AM/PM, do not accept 13-24 as
++ valid input for the hours. Go to the min/max value when
++ stepping down/up goes out of the valid range.
++
++ - QDesktopWidget
++ Mac only: Fixes to availableGeometry().
++
++ - QDialog
++ Fixed a visibility issue with setExtension().
++ X11 only: Modal dialogs that have no parent set their
++ WM_TRANSIENT_FOR hint to the main application widget (not
++ root). Do not raise the active modal widget if another one
++ gets focus. This used to be an incorrect workaround for a
++ now-obsolete problem where CDE would not keep modal dialogs
++ above their parents.
++ Do not reposition laid out dialogs that restore their geometry
++ in a polish() reimplementation.
++
++ - QDict
++ Handle zero sized hash tables.
++
++ - QDns
++ Slightly more reliable now, fixed a memory leak.
++
++ - QDockArea
++ Fixed resizing of a QDockWindow is no longer affected by
++ another closed QDockWindow in the same QDockArea. If a QDockWindow
++ has changed its sizeHint layout items use now the new size.
++
++ - QDockWindow
++ When undocking a window, use the last undocked size if we have
++ one.
++ X11 only: Make sure the moving frame is drawn on the correct screen.
++ Windows only: Fixed some focus issues.
++
++ - QDom
++ Create entity references for unknown entities.
++
++ - QDragManager
++ X11 only: Raise cursor decoration. Improved Motif drop support
++ to support non-textual data.
++ Windows only: Do not send any drag events if we don't have a receiver.
++ Windows 2000 only: Ignore illegal requests for error-clipboard
++ format when dropping files onto Explorer.
++
++ - QEventLoop
++ Window only: Fixed mutex lock problem. Fixed processEvents()
++ with ExcludeUserInput. Fixed QSocketNotifiers not being
++ removed when the notifier gets deleted and the event
++ loop is blocking.
++ Unix only: Fixed a 64 bit problem.
++ Mac only: Fixed hasPendingEvents() for non-gui apps.
++
++ - QFileDialog
++ Fix drag'n'drop for the first click into the listbox. Do not
++ auto-complete when saving a file. Enabled drag'n'drop of files
++ for all modes. In Directory* mode, do not set the filter to a
++ non-existent directory if one is specified.
++ Windows only: Fixed icon lookup.
++ Win 98/Me only: Make sure getExistingDirectory() doesn't
++ modify the current directory.
++ Mac only: Encoding fixes.
++
++ - QFont
++ Win95 only: Make symbol fonts work.
++ X11 only: Don't change the Xft enabled/disabled setting
++ at runtime. Avoid some X server roundtrips when loading fonts.
++
++ - QFontDialog
++ Fixed getFont() in case no default font is specified.
++
++ - QFrame
++ Turn on focus and mouse-over style flags for frame painting.
++
++ - QFtp
++ If the server does not expect a password (i.e. if you are
++ already logged in after you sent the username), do not send
++ the password since this might lead to errors.
++
++ - QGLWidget
++ X11 only: Xft fonts won't work with glXUseXFont() - so do not
++ try to use them.
++ Win32 only: Fixed text rendering to pixmap issues.
++ Mac only: Improved responsiveness when resizing opengl widgets.
++ Mac only: Optimized swapping between accelerated and
++ non-accelerated case.
++ Mac 10.2 only: Improved performance in the case of overlapping
++ opengl widgets.
++
++ - QHBoxLayout
++ Handle direction changes in user code.
++
++ - QHeader
++ Improved sizeHint() takes the arrows of sorted columns
++ into account. Fix redrawing problems when moving header
++ sections. Ignore grip-margin in mouse handling for
++ non-resizable sections.
++
++ - QHttp
++ Fixed a memory leak. (With thanks to valgrind's developer for
++ this useful tool). Improved head() implementation to actually
++ use HEAD requests. Accepts responses from web servers that
++ return \n instead of \r\n as line separators. Fixed a rare
++ infinite loop issue.
++
++ - QIconView:
++ Clip item drawing to current container to fix drawing of
++ pixmaps with alpha channels.
++
++ - QImageIO
++ jpegio: Fixed potential buffer overrun.
++ gif: Fixed a crash for invalid gif files.
++
++ - QInputContext
++ X11 only: Try harder to provide the input method with an
++ appropriate - and available - fontset.
++
++ - QInputDialog
++ Fixed size hint when using height-for-width rich text.
++
++ - QKeySequence
++ Fixed operator==() for some special cases.
++
++ - QLabel
++ When the the label is disabled, use identical color roles for both
++ rich text and plain text.
++
++ - QLibrary
++ Mac only: Return failure response when a library cannot be opened
++ due to missing symbols.
++
++ - QLineEdit
++ Do not truncate the text when we validateAndSet a text which
++ is longer than maxLength, but disallow the input. Respect
++ maxLength() in setText(). Make displayText() and selectedText()
++ not strip non-breaking spaces anymore. Fixed memory leak when
++ adding and deleting line edits. Undo now clears the current
++ selection. Undo/redo now works when overwriting the selection.
++ Fixed memory leak on constructing/destructing line edits. Give
++ line edit ownership of the popup menu returned by the default
++ createPopupMenu() implementation.
++
++ - QListView
++ Fixed background brush origin when using double buffering. Do
++ not resize a stretchable column in widthChanged(). Fixed
++ selecting when auto-scrolling. Initialize multi-selection
++ anchor. Accept drops outside items when acceptDrops() is true.
++ Use anchor correctly in Extended selection mode (also for
++ mouseMove). Make right clicking on a selected item not change
++ the selection. The AlignHCenter flag of a QCheckListItem now
++ behaves like for normal QListViewItems. Speed up opening and
++ closing of invisible items. Fixed a memory leak in removeColumn()
++ Single selection mode: If the selected item is taken out of the
++ listview, unselect it and emit selectionChanged(). Fixed
++ deselecting in multi-selection modes. Right release outside an
++ item in a listview no longer clears the selection if
++ ControlButton is set.
++
++ - QListViewItem
++ Invalidate column sorting in moveToJustAfter().
++
++ - QLocalFs
++ The network protocol for local file systems sets sets the
++ right permissions for the QUrlInfo objects if you do a
++ QUrlOperator::listChildren().
++
++ - QMainWindow
++ Fixed orientation handler calls.
++
++ - QMap
++ Fixed conversion from std::map.
++
++ - QMenuBar
++ Mac only: Fix for destruction of menu bars.
++ Mac only: Use process name instead of argv.
++
++ - QObject
++ Always emit the destroyed() signal, even when signals are
++ blocked.
++
++ - QPaintDevice
++ Mac only: Fixed raster op. for bitBlt.
++
++ - QPainter
++ X11 only: Fix for rotated rectangles. Fixed drawPolygon() with
++ winding being false.
++ Mac only: drawText() fixes.
++ Mac only: Fix for drawPie().
++
++ - QPicture
++ Warn about and catch save operations on still active devices.
++
++ - QPixmap
++ Made grabWidget() more robust.
++ X11 only: Fixed a bug in grabWindow(), fixes in
++ convertFromImage() for MonoOnly.
++
++ - QPointArray
++ The makeArc() function is now inclusive in respect of the start and
++ end points.
++
++ - QPopupMenu
++ If there is a custom QWhatsThis installed for the whole menu
++ but no whatsThis set for the item, use the custom QWhatsThis
++ to get the help text. Improved size for multi-column popups.
++ Mac only: Improved scrollable popups
++ Mac only: Fix handling of popupmenu dismissing mouse presses.
++
++ - QPrintDialog
++ Fix reentrancy issues when reading printer dialog settings.
++ Windows only: Handle lack of default printers more
++ gracefully.
++
++ - QPrinter
++ Windows only: Fix reentrancy issues and make sure that all
++ handles are updated correctly. Improved bottom and right
++ margin calculation. Fixed some problems with image printing.
++ Mac only: Support for high resolution printing. Support 1-bit
++ masking for pixmaps.
++
++ - QProcess
++ If the process's file descriptor is closed for stdout or
++ stderr, but the line in the buffer does not end with a \n or
++ \r\n, it is still possible to read this data using readLine().
++ Windows only: Make it safe to call qApp->processEvents() in a
++ slot connected to QProcess::readyReadStdout(). Fixed start()
++ with no arguments. Use a non-blocking file descriptor for
++ writes to stdin. Avoid leaking of handles.
++
++ - QPSPrinter
++ Fixed codec for Korean PostScript fonts (ksc5601.1987-0, not
++ the listbox. Do not auto-complete when saving a
++ fileeucKR). Fixed memory leak.
++
++ - QRichText
++ Improved Asian line breaking: Avoid breaking before
++ punctuation and closing braces and after opening braces. Fixed
++ a freed memory access problem with floating items on
++ destruction. When copying rich application/x-qrichtext, include
++ format information for the initial characters until the first
++ complete span. Make text="color" attributes in qt and body
++ tags work again.
++
++ - QScrollView
++ Restored the Qt 3 default sizeHint() that depends on the
++ scroll view's content, restricted within a 'sane' range (this
++ has no impact on most child classes, which already reimplement
++ sizeHint()).
++
++ - QSemaphore
++ Fixed race condition in operator-=().
++ Unix only: A bit more robust.
++
++ - QSettings
++ Implement scoping for file-based settings (Unix and
++ Ini-modes). Support storing and reading null strings. Other
++ fixes.
++ X11 only: Fixed rehash issues when using multiple screens.
++ Windows and Mac: Completed Ini mode.
++
++ - QSocket
++ If the read retruns 0, safely assume that the peer closed the
++ connection. Fixed readyRead sometimes not being
++ emitted. Fixed a select bug when the other end terminates
++ the connection. Some 64 bit fixes.
++
++ - QSound
++ Mac only: Implemented stop().
++
++ - QSplitter
++ Make sizes() return 0 for collapsed widgets.
++
++ - QSqlDriver
++ All drivers: Fixed crashes when accessing out of bound
++ fields. Clear the openError() flag when opening a connection
++ successfully.
++ MySQL only: Make use of mysql_use_result() in forward-only mode.
++ TDS only: Return NULL QVariants for NULL fields.
++ ODBC only: Do not require the SERVER keyword to be in a
++ connection string. Fix Unicode issues with MS Access. Allow
++ MS Access people to create a connection string without
++ creating a DSN entry first.
++
++ - QSqlQuery
++ Real values in queries containing placeholders were in some
++ cases incorrectly replaced in emulated prepared queries.
++ Added support for forward only queries in MySQL.
++
++ - QStatusBar
++ Make sure QStatusBar updates the minimum height when a child
++ widget triggers a relayout (e.g. from size/font/etc. changes).
++
++ - QString
++ Safer QString->std::string conversion (handles null-string
++ case). Fixed 64-bit issue in toLong() and toULong(). Make
++ prepend(), append() and operator+=() work with a QByteArray
++ argument that is not 0-terminated. Since this
++ fix is done in inline functions, you must recompile your
++ application to benefit from it. Make QString(const
++ QByteArray&) respect the array's size where a codec for
++ C strings is defined. Performance improvements for lower()
++ and upper(). Fix toDouble() when string contains trailing
++ whitespace.
++
++ - QSvgDevice
++ No background for Bezier curves. Fixed omission of font-family
++ attribute in SVG generator. Fixed bounding rect mapping.
++
++ - QStyle (and subclasses)
++ Usable size for subcontrols for small scrollbars. Fixed MDI
++ document window titlebar clipping.
++ XP style: Support non-default group boxes. Corrected tab
++ widget border drawing. More compliant dock window
++ appearance. Fixed translations for QCheckTableItem and
++ QComboTableItem.
++ Windows style: Use the highlighted text color role for arrows
++ in menus. Allow drawing of list view expand controls without
++ branches.
++ SGI style: Use correct background brush on pushbuttons with
++ popdown arrows.
++ Mac style (Mac only): Comboboxes will now be smaller (and closer to
++ Aqua Style suggested sizes). Expansion widgets (in a listview) will
++ now draw in the correct background color to allow non-white listviews.
++
++ - QSpinBox
++ Stop spinning when users press a button other than the
++ left one. Support Key_Enter in addition to Key_Return as the
++ documentation always stated.
++
++ - QTabBar
++ Let arrow buttons react correctly on style changes.
++
++ - QTabDialog
++ Fix reverse layout for right to left languages.
++
++ - QTable
++ Catch hideColumn() on tables with too few columns. Fixed an
++ endless recursion when swapping header sections. Fixed SingleRow
++ selection when using the vertical header. Emit the
++ sizeChange() signal when resizing a table header section with
++ a double click. Fixed set*MovingEnabled() when the selection
++ mode is NoSelection. Fix selection drawing for focusStyle ==
++ FollowFocus. Fixed a memory leak.
++
++ - QTableItem
++ Use virtual text() method for calculations instead of accessing the
++ data member directly. Do not crash when destroying a table item that
++ is not in a table.
++
++ - QTextCodec:
++ Fixed a bug in the Unicode -> jisx0208 conversion table.
++
++ - QTextEdit
++ Made setFormat() much faster when undo/redo is
++ disabled. Fixed double deletion crash when clearing a document
++ with floating custom items. AccelOverride events with Shift
++ pressed now work the same as for a normal key press.
++ LogText mode: Allow spaces in the font color tag. Fixed
++ background redraw issue. Stop scrollbar from disappearing
++ due to laying out the document incorrectly.
++
++ - QThread
++ Unix only: Do not rely on PTHREAD_MUTEX_INITIALIZER and
++ PTHREAD_COND_INITIALIZER. Fixed timeout calculation in
++ sleep().
++
++ - QTimeEdit
++ Typing in input for the first time now overwrites the existing
++ value.
++
++ - QToolButton
++ Fixed width calculation for multiline text.
++
++ - QTooltip
++ Try hard to avoid tooltips for widgets in inactive
++ windows. Use screen geometry rather than available geometry
++ for positioning. Avoid the mouse cursor covering part of the
++ tooltip.
++
++ - QTranslator
++ Notify main windows when installing an empty translator.
++
++ - QUrlOperator
++ Make setNameFilter() work with FTP.
++
++ - QValueVector
++ Fix operator==() to work as expected if the two vectors do not have
++ the same size.
++
++ - QVariant
++ Fixed canCast() for Bool -> String and ByteArray -> String conversion.
++ Fixed operator==() for maps. Fixed the asDouble() function to
++ detach first before a conversion is done. After streaming into
++ a QVariant isNull() now returns false.
++
++ - QWaitCondition
++ Unix only: Make sure the mutex is destroyed after it is
++ unlocked.
++
++ - QWhatsThis
++ Use screen geometry rather than available geometry
++ for positioning.
++
++ - QWidget
++ In adjustSize(), process LayoutHint events for all widgets,
++ not only this widget. Fixed a visibility issue with
++ reparent(). Fixed recursive update of child widgets with
++ background origin not being WidgetOrigin. Fixed isEnabledTo().
++ Windows only: Fixed mapFromGlobal() / mapToGlobal() for
++ widgets that are not visible.
++ X11 only: Set the WM_CLIENT_LEADER and SM_CLIENT_ID properties
++ according to the ICCCM (section 5.1). We accomplish this by
++ creating a hidden toplevel window to act as the client leader,
++ and all toplevel widgets will use this window as the client
++ leader. Fixed calling show() on minimized windows. Fixes to
++ grabWindow() for platforms that support different color depths
++ on one display.
++ Windows only: Handle frameGeometry() changes when users change
++ the titlebar font.
++ Mac only: Reparent fixes so that visiblity of a toplevel window
++ will be retained as well as to avoid painting errors when reparented
++ onto a different window. Fixed painting errors when a widget is
++ interactively moved off screen. showNormal() will now toggle
++ correctly when a window is minimized, additionally toggling between
++ showMaximized()/showNormal() will operate as expected. Qt will now
++ try to prevent placing a window partially offscreen. This will not
++ over-ride explicit window positioning, but it will correct default
++ placement.
++
++ - QWidgetStack
++ Make removeWidget() safe when there are several widgets
++ with the same id.
++
++ - QWorkspace
++ If the active window is clicked on, transfer focus to
++ the child. Restore focus to old subcontrol when changing the
++ active MDI window. Make sure a MDI window is not resized below
++ a child widget's minimum size. Do not allow resizing windows
++ when we have an active popup window. Another fix to the
++ windowActivated() signal. Fixed resize handling for fixed-size
++ windows.
++
++ - QXmlSimpleReader
++ Fixed a memory leak for incremental parsing.
++
++
++ ****************************************************************************
++ * Tools *
++ ****************************************************************************
++
++ - Qt Designer
++ Some small usability improvements and crash fixes. Fixed
++ editing properties of multiple selected widgets for custom
++ widgets. Fixed some problems with pixmaps, when using a pixmap
++ function. Allow entering ':' in the class name in the
++ form settings dialog (for namespaces). Do not show deleted
++ toolbars in the object explorer. Fixed inserting widgets into
++ toolbars. Fixed displaying nested widget stacks in the object
++ explorer. Added an option to enable auto saving. Fixed some
++ issues with auto-indent in the C++ editor plugin. Fixed
++ problems with slots which have namespaces in their function
++ arguments. Do not save invalid pixmaps. whatsThis properties
++ can now be edited with the richtext editor.
++
++ - Qt Assistant
++ Fixed crash when printing to file was cancelled. Fixed
++ mimesource settings when a link is opened in a new window.
++ Added missing translator. Fixed reloading pages when the
++ font was changed. Added accelerator for exiting Assistant.
++ Full text search now supports Unicode. Search accepts special
++ characters like '_'. Added option for disabling the first run
++ initialization. Now it is possible to open a link or new
++ window directly from the sidebar.
++
++ - moc
++ Make 'moc -p foo bar/baz.h' generates #include "foo/baz.h"
++ instead of #include "foo/bar/baz.h". Also avoid redundant "./"
++ at the beginning. Accept identifiers trailing the function
++ signature to allows sneaking in compiler specific attributes
++ via a macro.
++
++ - qmake
++ Qmake will no longer put the version number on plugins. These are
++ not a necessary part of the filename. A parser bug got into qmake
++ causing (right hand side) functions from being evaluated properly,
++ additionally the argument parser has been improved to allow functions
++ calling functions. Qmake now has support for ProjectBuilder 2.1, it
++ will no longer respect OBJECTS_DIR in ProjectBuilder (as this exposed
++ a bug in ProjectBuilder itself). It will automatically detect qt-mt
++ (when linking against Qt) so "CONFIG += thread" is not necessary,
++ however this will not turn on Q_THREAD_SUPPORT. A new test operator
++ has been added 'equals()' to allow testing for equality to a variable.
++ In 'project mode' qmake will now detect TRANSLATIONS files
++ automatically.
++
++ - uic
++ Some small fixes in code generation.
++
++ ****************************************************************************
++ * Extensions *
++ ****************************************************************************
++
++ - Netscape Plugin
++ The Netscape Plugin is supported again, now on both Netscape 4.x and
++ current versions based on the Mozilla code.
++
++ - ActiveQt
++ Activate socket notifiers and process config requests even if
++ Qt does not own the event loop.
++