2 Qt 3.1.2 is a bugfix release. It maintains both forward and backward
3 compatibility (source and binary) with Qt 3.1.1
6 ****************************************************************************
8 ****************************************************************************
10 Some build fixes on different platforms. Many small documentation
13 XFree86 only: Tablet support now also looks for devices called "pen",
14 not just "stylus" and "eraser".
16 Animations: Less CPU-consuming roll effects.
17 X11 only: Disable effects on displays with <16bpp (rather than
18 falling back to the scrolling).
21 ****************************************************************************
23 ****************************************************************************
26 Allow localization of status bar messages. Try harder to
27 distinguish between an accelerator and the identical
28 accelerator with Shift in case on of them is currently
32 Send accessibility notification for selection changes in
33 menubars and popup menus. Send accessibility
34 notifications for QListBox currentItem/selection changes.
37 Implement visibility for drop-down actiongroups.
40 Return focus to the widget that had it before a popup opened
41 even if the focus is passed on during the show event handling.
42 When the programmer/user explicitly sets the style (either
43 with QApplication::setStyle or the -style command line
44 option), do not reset the style on settings changes. Creating
45 a second QApplication reads the settings again.
46 Windows only: Emit aboutToQuit() when the user logs off. Send
47 a focusOut event to the focus widget when the user tries to
48 switch applications using Alt+Tab. Fixed setting of
49 desktop-wide fade and scroll effects.
50 Windows95/98/Me: Fixed enter/leave handling. Among other
51 benefits this makes tooltips work more reliably.
52 X11 only: Various fixes for input methods, e.g. Korean
53 'ami'. Some startup performance improvements with
54 QSettings. Mark the internal wakeUpGuiThread() pipe with
55 FD_CLOEXEC. Call XFilterEvent before the public X11 event
56 filters to avoid applications filtering out events that are
57 necessary for input methods to operate. Removed old en_US
58 locale workaround for Solaris. Close all open popups when
59 clicking on a screen different from the popup's screen. Do not
60 force 256 colors on 8-bit display (used to be a workaround for
62 Mac only: Popupmenus that are dismissed by clicking outside of their
63 bounds will no longer send the event to the widget clicked on (to avoid
64 selection changing when canceling a context menu). QContextMenuEvents
65 will be sent in the same style as Windows/X11 to make the platforms
66 more consistent, additionally mapping of Ctrl+Click to RightButton has
67 been added to allow easy context menu handling. Added warnings when a
68 Qt application is run outside of an application bundle (in GUI mode)
69 this will prevent accidental starving from events. Correct state when a
70 modal dialog is shown (to disable the menubar) is used now, and is
71 emulated to feel like Carbon applications. Fixed bug so that
72 QApplication::processEvents() can be called before
73 QApplication::exec(). Window activation will not change when a popup
74 menu is displayed. Toolbar toggle button will only toggle the top dock
75 in a QMainWindow. European text composition is supported now to take
76 advantage of TextInput modules available on Mac OS X. Window activation
77 has been improved to allow interleaving windows of different classes
78 correctly (to decrease differences between X11/Windows and Mac).
81 IO_Truncate no longer detaches the explicitly shared byte array.
84 In setPixmap(), avoid laying out again if the new pixmap does
85 not change the size. Use QSharedDoubleBuffer only if it is
86 enabled (this avoids repainting errors).
89 Improve hit testing for cursor navigation.
92 Do not try to double buffer invalid areas.
95 Windows only: Workaround a Windows limitation that does not
96 support 2x2 ellipse rendering without a pen. Do not try to
97 double buffer invalid areas.
100 Allow the setting of all 48 standard colors.
103 Close any popup menus or listboxes when disabling the combobox.
104 Fix text alignment when large pixmaps were inserted into the
108 Added correct positioning specs for all of Thai and Lao. Some
112 Mac only: Correct interpretation of mask/data of a QCursor so that the
113 mask will can be used as documented.
116 Fixed addYears() for days missing in certain years.
119 Compute an improved layout for the QDateEdit and QTimeEdit
120 components of the QDateTimeEdit (based on the size hints). Set
121 the size policy of the QDateTimeEdit to (Minimum, Fixed).
122 In time edit: If the display is AM/PM, do not accept 13-24 as
123 valid input for the hours. Go to the min/max value when
124 stepping down/up goes out of the valid range.
127 Mac only: Fixes to availableGeometry().
130 Fixed a visibility issue with setExtension().
131 X11 only: Modal dialogs that have no parent set their
132 WM_TRANSIENT_FOR hint to the main application widget (not
133 root). Do not raise the active modal widget if another one
134 gets focus. This used to be an incorrect workaround for a
135 now-obsolete problem where CDE would not keep modal dialogs
137 Do not reposition laid out dialogs that restore their geometry
138 in a polish() reimplementation.
141 Handle zero sized hash tables.
144 Slightly more reliable now, fixed a memory leak.
147 Fixed resizing of a QDockWindow is no longer affected by
148 another closed QDockWindow in the same QDockArea. If a QDockWindow
149 has changed its sizeHint layout items use now the new size.
152 When undocking a window, use the last undocked size if we have
154 X11 only: Make sure the moving frame is drawn on the correct screen.
155 Windows only: Fixed some focus issues.
158 Create entity references for unknown entities.
161 X11 only: Raise cursor decoration. Improved Motif drop support
162 to support non-textual data.
163 Windows only: Do not send any drag events if we don't have a receiver.
164 Windows 2000 only: Ignore illegal requests for error-clipboard
165 format when dropping files onto Explorer.
168 Window only: Fixed mutex lock problem. Fixed processEvents()
169 with ExcludeUserInput. Fixed QSocketNotifiers not being
170 removed when the notifier gets deleted and the event
172 Unix only: Fixed a 64 bit problem.
173 Mac only: Fixed hasPendingEvents() for non-gui apps.
176 Fix drag'n'drop for the first click into the listbox. Do not
177 auto-complete when saving a file. Enabled drag'n'drop of files
178 for all modes. In Directory* mode, do not set the filter to a
179 non-existent directory if one is specified.
180 Windows only: Fixed icon lookup.
181 Win 98/Me only: Make sure getExistingDirectory() doesn't
182 modify the current directory.
183 Mac only: Encoding fixes.
186 Win95 only: Make symbol fonts work.
187 X11 only: Don't change the Xft enabled/disabled setting
188 at runtime. Avoid some X server roundtrips when loading fonts.
191 Fixed getFont() in case no default font is specified.
194 Turn on focus and mouse-over style flags for frame painting.
197 If the server does not expect a password (i.e. if you are
198 already logged in after you sent the username), do not send
199 the password since this might lead to errors.
202 X11 only: Xft fonts won't work with glXUseXFont() - so do not
204 Win32 only: Fixed text rendering to pixmap issues.
205 Mac only: Improved responsiveness when resizing opengl widgets.
206 Mac only: Optimized swapping between accelerated and
207 non-accelerated case.
208 Mac 10.2 only: Improved performance in the case of overlapping
212 Handle direction changes in user code.
215 Improved sizeHint() takes the arrows of sorted columns
216 into account. Fix redrawing problems when moving header
217 sections. Ignore grip-margin in mouse handling for
218 non-resizable sections.
221 Fixed a memory leak. (With thanks to valgrind's developer for
222 this useful tool). Improved head() implementation to actually
223 use HEAD requests. Accepts responses from web servers that
224 return \n instead of \r\n as line separators. Fixed a rare
228 Clip item drawing to current container to fix drawing of
229 pixmaps with alpha channels.
232 jpegio: Fixed potential buffer overrun.
233 gif: Fixed a crash for invalid gif files.
236 X11 only: Try harder to provide the input method with an
237 appropriate - and available - fontset.
240 Fixed size hint when using height-for-width rich text.
243 Fixed operator==() for some special cases.
246 When the the label is disabled, use identical color roles for both
247 rich text and plain text.
250 Mac only: Return failure response when a library cannot be opened
251 due to missing symbols.
254 Do not truncate the text when we validateAndSet a text which
255 is longer than maxLength, but disallow the input. Respect
256 maxLength() in setText(). Make displayText() and selectedText()
257 not strip non-breaking spaces anymore. Fixed memory leak when
258 adding and deleting line edits. Undo now clears the current
259 selection. Undo/redo now works when overwriting the selection.
260 Fixed memory leak on constructing/destructing line edits. Give
261 line edit ownership of the popup menu returned by the default
262 createPopupMenu() implementation.
265 Fixed background brush origin when using double buffering. Do
266 not resize a stretchable column in widthChanged(). Fixed
267 selecting when auto-scrolling. Initialize multi-selection
268 anchor. Accept drops outside items when acceptDrops() is true.
269 Use anchor correctly in Extended selection mode (also for
270 mouseMove). Make right clicking on a selected item not change
271 the selection. The AlignHCenter flag of a QCheckListItem now
272 behaves like for normal QListViewItems. Speed up opening and
273 closing of invisible items. Fixed a memory leak in removeColumn()
274 Single selection mode: If the selected item is taken out of the
275 listview, unselect it and emit selectionChanged(). Fixed
276 deselecting in multi-selection modes. Right release outside an
277 item in a listview no longer clears the selection if
278 ControlButton is set.
281 Invalidate column sorting in moveToJustAfter().
284 The network protocol for local file systems sets sets the
285 right permissions for the QUrlInfo objects if you do a
286 QUrlOperator::listChildren().
289 Fixed orientation handler calls.
292 Fixed conversion from std::map.
295 Mac only: Fix for destruction of menu bars.
296 Mac only: Use process name instead of argv.
299 Always emit the destroyed() signal, even when signals are
303 Mac only: Fixed raster op. for bitBlt.
306 X11 only: Fix for rotated rectangles. Fixed drawPolygon() with
308 Mac only: drawText() fixes.
309 Mac only: Fix for drawPie().
312 Warn about and catch save operations on still active devices.
315 Made grabWidget() more robust.
316 X11 only: Fixed a bug in grabWindow(), fixes in
317 convertFromImage() for MonoOnly.
320 The makeArc() function is now inclusive in respect of the start and
324 If there is a custom QWhatsThis installed for the whole menu
325 but no whatsThis set for the item, use the custom QWhatsThis
326 to get the help text. Improved size for multi-column popups.
327 Mac only: Improved scrollable popups
328 Mac only: Fix handling of popupmenu dismissing mouse presses.
331 Fix reentrancy issues when reading printer dialog settings.
332 Windows only: Handle lack of default printers more
336 Windows only: Fix reentrancy issues and make sure that all
337 handles are updated correctly. Improved bottom and right
338 margin calculation. Fixed some problems with image printing.
339 Mac only: Support for high resolution printing. Support 1-bit
343 If the process's file descriptor is closed for stdout or
344 stderr, but the line in the buffer does not end with a \n or
345 \r\n, it is still possible to read this data using readLine().
346 Windows only: Make it safe to call qApp->processEvents() in a
347 slot connected to QProcess::readyReadStdout(). Fixed start()
348 with no arguments. Use a non-blocking file descriptor for
349 writes to stdin. Avoid leaking of handles.
352 Fixed codec for Korean PostScript fonts (ksc5601.1987-0, not
353 the listbox. Do not auto-complete when saving a
354 fileeucKR). Fixed memory leak.
357 Improved Asian line breaking: Avoid breaking before
358 punctuation and closing braces and after opening braces. Fixed
359 a freed memory access problem with floating items on
360 destruction. When copying rich application/x-qrichtext, include
361 format information for the initial characters until the first
362 complete span. Make text="color" attributes in qt and body
366 Restored the Qt 3 default sizeHint() that depends on the
367 scroll view's content, restricted within a 'sane' range (this
368 has no impact on most child classes, which already reimplement
372 Fixed race condition in operator-=().
373 Unix only: A bit more robust.
376 Implement scoping for file-based settings (Unix and
377 Ini-modes). Support storing and reading null strings. Other
379 X11 only: Fixed rehash issues when using multiple screens.
380 Windows and Mac: Completed Ini mode.
383 If the read retruns 0, safely assume that the peer closed the
384 connection. Fixed readyRead sometimes not being
385 emitted. Fixed a select bug when the other end terminates
386 the connection. Some 64 bit fixes.
389 Mac only: Implemented stop().
392 Make sizes() return 0 for collapsed widgets.
395 All drivers: Fixed crashes when accessing out of bound
396 fields. Clear the openError() flag when opening a connection
398 MySQL only: Make use of mysql_use_result() in forward-only mode.
399 TDS only: Return NULL QVariants for NULL fields.
400 ODBC only: Do not require the SERVER keyword to be in a
401 connection string. Fix Unicode issues with MS Access. Allow
402 MS Access people to create a connection string without
403 creating a DSN entry first.
406 Real values in queries containing placeholders were in some
407 cases incorrectly replaced in emulated prepared queries.
408 Added support for forward only queries in MySQL.
411 Make sure QStatusBar updates the minimum height when a child
412 widget triggers a relayout (e.g. from size/font/etc. changes).
415 Safer QString->std::string conversion (handles null-string
416 case). Fixed 64-bit issue in toLong() and toULong(). Make
417 prepend(), append() and operator+=() work with a QByteArray
418 argument that is not 0-terminated. Since this
419 fix is done in inline functions, you must recompile your
420 application to benefit from it. Make QString(const
421 QByteArray&) respect the array's size where a codec for
422 C strings is defined. Performance improvements for lower()
423 and upper(). Fix toDouble() when string contains trailing
427 No background for Bezier curves. Fixed omission of font-family
428 attribute in SVG generator. Fixed bounding rect mapping.
430 - QStyle (and subclasses)
431 Usable size for subcontrols for small scrollbars. Fixed MDI
432 document window titlebar clipping.
433 XP style: Support non-default group boxes. Corrected tab
434 widget border drawing. More compliant dock window
435 appearance. Fixed translations for QCheckTableItem and
437 Windows style: Use the highlighted text color role for arrows
438 in menus. Allow drawing of list view expand controls without
440 SGI style: Use correct background brush on pushbuttons with
442 Mac style (Mac only): Comboboxes will now be smaller (and closer to
443 Aqua Style suggested sizes). Expansion widgets (in a listview) will
444 now draw in the correct background color to allow non-white listviews.
447 Stop spinning when users press a button other than the
448 left one. Support Key_Enter in addition to Key_Return as the
449 documentation always stated.
452 Let arrow buttons react correctly on style changes.
455 Fix reverse layout for right to left languages.
458 Catch hideColumn() on tables with too few columns. Fixed an
459 endless recursion when swapping header sections. Fixed SingleRow
460 selection when using the vertical header. Emit the
461 sizeChange() signal when resizing a table header section with
462 a double click. Fixed set*MovingEnabled() when the selection
463 mode is NoSelection. Fix selection drawing for focusStyle ==
464 FollowFocus. Fixed a memory leak.
467 Use virtual text() method for calculations instead of accessing the
468 data member directly. Do not crash when destroying a table item that
472 Fixed a bug in the Unicode -> jisx0208 conversion table.
475 Made setFormat() much faster when undo/redo is
476 disabled. Fixed double deletion crash when clearing a document
477 with floating custom items. AccelOverride events with Shift
478 pressed now work the same as for a normal key press.
479 LogText mode: Allow spaces in the font color tag. Fixed
480 background redraw issue. Stop scrollbar from disappearing
481 due to laying out the document incorrectly.
484 Unix only: Do not rely on PTHREAD_MUTEX_INITIALIZER and
485 PTHREAD_COND_INITIALIZER. Fixed timeout calculation in
489 Typing in input for the first time now overwrites the existing
493 Fixed width calculation for multiline text.
496 Try hard to avoid tooltips for widgets in inactive
497 windows. Use screen geometry rather than available geometry
498 for positioning. Avoid the mouse cursor covering part of the
502 Notify main windows when installing an empty translator.
505 Make setNameFilter() work with FTP.
508 Fix operator==() to work as expected if the two vectors do not have
512 Fixed canCast() for Bool -> String and ByteArray -> String conversion.
513 Fixed operator==() for maps. Fixed the asDouble() function to
514 detach first before a conversion is done. After streaming into
515 a QVariant isNull() now returns false.
518 Unix only: Make sure the mutex is destroyed after it is
522 Use screen geometry rather than available geometry
526 In adjustSize(), process LayoutHint events for all widgets,
527 not only this widget. Fixed a visibility issue with
528 reparent(). Fixed recursive update of child widgets with
529 background origin not being WidgetOrigin. Fixed isEnabledTo().
530 Windows only: Fixed mapFromGlobal() / mapToGlobal() for
531 widgets that are not visible.
532 X11 only: Set the WM_CLIENT_LEADER and SM_CLIENT_ID properties
533 according to the ICCCM (section 5.1). We accomplish this by
534 creating a hidden toplevel window to act as the client leader,
535 and all toplevel widgets will use this window as the client
536 leader. Fixed calling show() on minimized windows. Fixes to
537 grabWindow() for platforms that support different color depths
539 Windows only: Handle frameGeometry() changes when users change
541 Mac only: Reparent fixes so that visiblity of a toplevel window
542 will be retained as well as to avoid painting errors when reparented
543 onto a different window. Fixed painting errors when a widget is
544 interactively moved off screen. showNormal() will now toggle
545 correctly when a window is minimized, additionally toggling between
546 showMaximized()/showNormal() will operate as expected. Qt will now
547 try to prevent placing a window partially offscreen. This will not
548 over-ride explicit window positioning, but it will correct default
552 Make removeWidget() safe when there are several widgets
556 If the active window is clicked on, transfer focus to
557 the child. Restore focus to old subcontrol when changing the
558 active MDI window. Make sure a MDI window is not resized below
559 a child widget's minimum size. Do not allow resizing windows
560 when we have an active popup window. Another fix to the
561 windowActivated() signal. Fixed resize handling for fixed-size
565 Fixed a memory leak for incremental parsing.
568 ****************************************************************************
570 ****************************************************************************
573 Some small usability improvements and crash fixes. Fixed
574 editing properties of multiple selected widgets for custom
575 widgets. Fixed some problems with pixmaps, when using a pixmap
576 function. Allow entering ':' in the class name in the
577 form settings dialog (for namespaces). Do not show deleted
578 toolbars in the object explorer. Fixed inserting widgets into
579 toolbars. Fixed displaying nested widget stacks in the object
580 explorer. Added an option to enable auto saving. Fixed some
581 issues with auto-indent in the C++ editor plugin. Fixed
582 problems with slots which have namespaces in their function
583 arguments. Do not save invalid pixmaps. whatsThis properties
584 can now be edited with the richtext editor.
587 Fixed crash when printing to file was cancelled. Fixed
588 mimesource settings when a link is opened in a new window.
589 Added missing translator. Fixed reloading pages when the
590 font was changed. Added accelerator for exiting Assistant.
591 Full text search now supports Unicode. Search accepts special
592 characters like '_'. Added option for disabling the first run
593 initialization. Now it is possible to open a link or new
594 window directly from the sidebar.
597 Make 'moc -p foo bar/baz.h' generates #include "foo/baz.h"
598 instead of #include "foo/bar/baz.h". Also avoid redundant "./"
599 at the beginning. Accept identifiers trailing the function
600 signature to allows sneaking in compiler specific attributes
604 Qmake will no longer put the version number on plugins. These are
605 not a necessary part of the filename. A parser bug got into qmake
606 causing (right hand side) functions from being evaluated properly,
607 additionally the argument parser has been improved to allow functions
608 calling functions. Qmake now has support for ProjectBuilder 2.1, it
609 will no longer respect OBJECTS_DIR in ProjectBuilder (as this exposed
610 a bug in ProjectBuilder itself). It will automatically detect qt-mt
611 (when linking against Qt) so "CONFIG += thread" is not necessary,
612 however this will not turn on Q_THREAD_SUPPORT. A new test operator
613 has been added 'equals()' to allow testing for equality to a variable.
614 In 'project mode' qmake will now detect TRANSLATIONS files
618 Some small fixes in code generation.
620 ****************************************************************************
622 ****************************************************************************
625 The Netscape Plugin is supported again, now on both Netscape 4.x and
626 current versions based on the Mozilla code.
629 Activate socket notifiers and process config requests even if
630 Qt does not own the event loop.