1Qt 3.3.5 is a bug-fix release. It maintains both forward and backward
2compatibility (source and binary) with Qt 3.3.4, Qt 3.3.3, Qt 3.3.2,
3Qt 3.3.1 and Qt 3.3.0.
4
5****************************************************************************
6*                           General                                        *
7****************************************************************************
8
9Platforms
10---------
11
12- Qt now supports Mac OS X 10.4 (Tiger)
13
14Compilers
15---------
16
17- Added support for VS 2005
18- Added support for GCC 4
19
20Windows Installer
21-----------------
22
23- The environment variables no longer contain invalid paths.
24- The user is warned if QTDIR is not set and the evaluation edition is
25  already installed, to avoid conflicts between the two packages.
26- A bug was fixed where a '\0' was appended to the end of a path.
27- Fixed the dependencies for image formats and styles.
28
29Qt Designer
30-----------
31
32- Fixed a problem with long string literals on certain Visual Studio
33  C++ compilers.
34- UIC now uses the include hints from the .ui file when generating
35  source files.
36- The "paste" action is now enabled and disabled correctly.
37- QWidgetFactory::supportsWidget() now returns true for QSplitter.
38- Parse files with more than one '.' in the file name correctly.
39- The project name is now displayed correctly also when the project is
40  created in a root directory.
41- Fixed a bug where Windows end-of-line terminators would be included
42  in string literals, which broke translation.
43- Several crashes were fixed related to cutting/copying/pasting menu
44  items.
45- Fixed some problems with designer generating corrupted pro files.
46- A crash was fixed for when designer loads a pro file with the same
47  file listed more than once.
48- The action editor is now closed when there is no main window form.
49- Stability fixes
50
51Qt Linguist
52-----------
53
54- lupdate now understands strings longer than 16384 characters.
55- Fixed escaping bugs for string that contain both ampersands and
56  double quotes.
57
58Qt Assistant
59------------
60
61- When printing, assistant now always uses the Active color group.
62- Fixed a rendering bug for paragraphs that start with a line break.
63- Support for setting the documentation root path, allowing
64  documentation files to be moved.
65- When opening a link in a new window, assistant will now properly
66  scroll to the correct anchor after the window has been shown.
67- Fixed full text search for documents not listed in the 'ref'
68  attribute of the <section> tag in the current .adp file.
69- The state of the forward/backward buttons now work properly when the
70  tabs are changed.
71
72****************************************************************************
73*                          Library                                         *
74****************************************************************************
75
76General Fixes
77-------------
78
79Added security patches for zlib: CAN-2005-1849, CAN-2005-2096
80The FreeType library was upgraded from version 2.0.9 to 2.1.9
81
82- Build system
83        Improved build keys for gcc 4 compilers, so plugins no longer
84        need rebuilding after upgrading gcc to a new patch release.
85
86- QCanvas
87        Fixed wrong text scaling and cut-off text.
88        Fixed drawing with a brush when double buffering is enabled.
89
90- QCommonStyle
91        Fixed the appearance of QSlider after setBackgroundOrigin has
92        been called.
93        Fixed an overflow in calculating the handle position for
94        QScrollBar.
95
96- QCString
97        Fixed a crash in qUncompress() if the resulting QByteArray was
98        too large to fit in memory.
99        Fixed potential security problems by using vsnprintf() instead
100        of the less secure vsprintf().
101
102- QDataStream
103        Fixed a data corruption bug when using stream version Qt_3_1 and using
104        operator<<(qint64).
105
106- QDateTime
107        Fixed QDateTime::secsTo() when crossing daylight savings hours
108        boundaries.
109
110- QDockWindow
111        Undocked windows now remember their size also if the user
112        changes it.
113
114- QDom
115        The default constructor for QDocDocument now creates an empty
116        document that can be used to create elements.
117        A warning is now displayed when trying to construct or save an
118        invalid document.
119        Characters that are not allowed in XML are now escaped
120        properly when saving.
121
122- QFileDialog
123        Shortcuts now show the icons of what they point to.
124        Entry sorting is now locale-aware, as opposed to sorting based
125        on Unicode order.
126        You can now select files by pressing 'enter' when using
127        QFileDialog::getOpenFileNames().
128        Fixed a missing repaint in contents preview after selecting a
129        file, then a directory, then the same file again.
130        dirPath() no longer chops off the last directory in a path.
131
132- QGVector
133        Fixed a bug that caused a memory leak and data corruption if
134        resize() failed.
135
136- QHeader
137        The header text is now rendered correctly next to the icon in
138        reverse layout mode.
139
140- QImage
141        Fixed comparison of images with alpha data, but with the alpha
142        channel disabled.
143
144- QKeySequence
145        Key sequences that ended with a ',' now work properly.
146
147- QLineEdit
148        Fixed the behavior of the delete key on the keypad.
149        Fixed support for transparent line edits.
150        Fixed a crash when opening the context menu in a QTextEdit
151        subclass that returns 0 for createPopupMenu().
152
153- QListBox
154        Fixed a crash when removing the current item while selecting
155        items with a rubberband.
156
157- QListView
158        Fixed the behavior of the Home and End keys when QListView
159        contains disabled and hidden items.
160        Fixed a problem with the QListView::...Clicked() signals were
161        emitted also when the root decorated section was not in the
162        left-most column.
163        HTML control characters in QListView's tool tip text are now
164        escaped properly.
165        sortChildren() now also sorts children of items with no
166        siblings.
167        Fixed a missing redraw after removing columns.
168        contentsWidth() now returns the correct value after
169        setContentsWidth() has been called.
170        Fixed a crash after a sequence of deleting and selecting
171        items.
172        Fixed the size of headers with multi-line text.
173        Fixed a lock-up and possible crash caused by an internal state
174        restore on controllers with no children.
175        Fixed keyboard navigation when jumping to entries by pressing
176        the key for the first character in the text of an item.
177
178- QLocale
179        Fixed support for NaN, which failed on certain compilers.
180        Passing Q_LLONG to toString() now properly includes the group
181        symbols.
182        Fixed locale detection when locale environment variables are
183        not set.
184        Added workarounds for compiler optimization bugs when parsing
185        doubles.
186
187- QLocalFS
188        Fixed a crash when canceling a QUrlOperator transfer before
189        completion.
190
191- QMenuData
192        Fixed a crash when closing an MDI application while the menu
193        bar has Alt-focus.
194
195- QMessageBox
196        Message boxes now work correctly in right-to-left mode.
197
198- QPaintDevice
199        Fixed drawing errors when using bitBlt() on a printer.
200
201- QPainter
202        Fixed drawing of rectangles with a negative (or 0) width.
203
204- QPopupMenu
205        The height of new columns is now initialized properly when
206        menu items are shown in multiple columns.
207
208- QProcess
209        Close socket connections properly when a
210        process is created after creating the socket connection.
211
212- QPSPrinter
213        Generate PS font names correctly.
214
215- QPushButton
216        Fixed a crash caused by deleting the button while the popup
217        menu is shown.
218
219- QRichText
220        Tab stops are now adjusted correctly when printing in high
221        resolution mode.
222        Reduced the number of memory allocations when deleting large
223        blocks of text.
224        Fixed parsing of hexadecimal HTML entities
225        Fixed a bug where the font changed after calling setText()
226        repeatedly.
227
228- QScriptEngine
229        Fixed an issue with shaping of Hebrew text, which lead to
230        layout problems in QTextLayout.
231        Fixed rendering of Hebrew text with punctuation.
232        Fixed bugs in Gurmukhi shaping.
233
234- QScrollView
235        Fixed the size hint when scrollbars are set to be permanently
236        on.
237        Fixed a drawing error seen on certain graphics drivers when a
238        scroll view spans multiple screens.
239        Fixed a bug where wheel events' horizontal/vertical status
240        were not forwarded to viewportWheelEvent().
241        Fixed a crash when mouse wheel events were sent to a scroll
242        view with disabled scroll bars.
243
244- QSettings
245        Fixed a bug when comparing keys with common prefixes.
246
247- QSGIStyle
248        Fixed the size of QComboBox.
249
250- QSizeGrip
251        Fixed a bug that caused the window to move when resizing to
252        the minimum size using the size grip.
253
254- QSocketDevice
255        Improved error reporting when the connection is unexpectedly
256        closed.
257        Fixed a bug where the socket would be closed if 0 was passed
258        as maxlen to readBlock().
259
260- QString
261        Fixed a lock-up in QString::section().
262        Let replace() behave as documented when the index is larger
263        than the length of the string.
264
265- QTable
266        Fixed positioning of QComboTableItems that span several rows.
267
268- QTextCodec
269        Fixed occasional crash in fromUnicode().
270        Fixed Big5 support to comply with the standards.
271
272- QTextEdit
273        Fixed bug in undo/redo history when input methods are used.
274        Fixed a crash caused by inserting text with an input method
275        during a focus change.
276        Fixed the behavior of the delete key on the keypad.
277        Fixed setMaxLogLines() when there are already too many lines.
278        Fixed crash when clearing a QTextEdit when the IME is active.
279        Fixed crash when the text edit is deleted while dragging text.
280
281- QTextLayout
282        Fixed layout of lines that are too long and do not contain a
283        possible break point.
284
285- QTimeEdit
286        Fixed several issues with stepUp() and stepDown().
287
288- QToolButton
289        Fixed a crash when assigning a tooltip to a tool button which
290        does not have QMainWindow as an ancestor.
291
292- QToolTip
293        Fixed an occasional crash.
294
295- QTranslator
296        Fixed a bug when calling messages() before tr() when using
297        compressed .qm files.
298
299- QUrlOperator
300        Fixed a crash when accessing invalid paths on an FTP server
301        using QFileDialog.
302        Fixed a bug where the source would be removed if the source
303        and destination were the same.
304
305- QVariant
306        Fixed a memory leak in clear().
307
308- QWidget
309        Fixed excessive flicker when reparenting a widget that has
310        tool windows.
311
312- QWorkspace
313        Fixed flickering when switching between maximized windows.
314        Fixed a lock-up when modal dialogs were created with
315        QWorkspace as parent.
316        Fixed a bug where modeless dialogs with QWorkspace as parent
317        would be drawn with no title bar.
318
319- SQL, DB2 driver
320        Compile fixes.
321        Fixed a bug where QSqlCursor::insert() would fail to insert
322        two blob fields at the same time.
323
324- SQL, MySQL driver
325        Fixed a crash when using empty database names.
326
327- SQL, Oracle driver
328        Fixed truncation of numeric data types to 22 digits.
329        Fixed UTF-8 support by ensuring that there is enough space to
330        store the text.
331
332- SQL, ODBC driver
333        Fixed problems with sorting and comparing strings larger than
334        8192 characters.
335
336- SQl, PostgreSQL driver
337        Temporary tables are now only visible for the connection that
338        created them.
339
340- SQL, TDS driver
341        Fixed problems with compiling the plugin with later versions
342        of the TDS library.
343
344- SVG support
345        Fixed support for SVG viewbox.
346        Added basic support for stroke-dasharray.
347
348
349Platform-Specific Issues
350------------------------
351
352Windows:
353
354- ActiveQt
355        Unrelated types are no longer converted.
356        The control container is now only reset if the CLSID changes.
357        Fixed a bug where QAxObject::clear() did not reset the
358        metaobject when it was cached.
359        Fixed a memory leak.
360        Fixed a bug that caused flicker when navigating away from a
361        page embedding a control.
362        The VARIANT out-parameters in signals now map to "QVariant &"
363        and not "const QVariant &".
364        Signal parameters of type "bool" are marshalled to the bool
365        slot also when the control sends an integer parameter.
366
367- Drag & drop
368        Fixed a bug with sending single-color pixmaps.
369        Fixed a crash caused by reading a drag object after it has
370        been deleted (before the drop event).
371        Dragged pixmaps are now cleaned up before drawn to avoid
372        problems with broken alpha values and resetting masked pixels.
373
374- QApplication
375        Fixed a lockup caused by showing a dialog while resizing a
376        window.
377        QWidget::grabKeyboard() now also grabs the menu button.
378        Fixed a bug where mouse events were sent to the wrong widget
379        after calling QEventLoop::processEvents() with
380        ExcludeUserInput.
381        Windows Server 2003 can now also use the Windows XP style.
382        Fixed a memory leak in QEventLoop.
383
384- QColor
385        Fixed failed initialization of the Qt colors (e.g., Qt::red) when
386        using the MinGW compiler.
387
388- QFile
389        Fixed a bug where a read error was not handled properly.
390
391- QFileInfo
392        permission() now uses the correct file name on Windows 9x.
393
394- QFontDataBase
395        Added support for scalable fonts.
396
397- QFontEngine
398        Fixed a problem with symbol fonts.
399        Fixed support for user defined characters.
400
401- QLibrary
402        Fixed the directory separators.
403        Fixed some library loading errors.
404
405- QLocale
406        The locale() function now returns the correct ISO name instead
407        of a number.
408
409- QNPWidget (NPAPI)
410        Fixed a bug where the widget was not clipped properly by the
411        browser.
412
413- QPainter
414        Fixed a bug where QPainter failed to fill ellipses of size
415        2x2.
416        Fixed a potential lock-up after failed GDI allocations.
417
418- QPrinter
419        Rich text tables are now printed correctly when the table
420        spans pages.
421        Fixed text printing errors on page 2 and out caused by the
422        background mode being reset to OPAQUE.
423
424- QProcess
425        The directory separators for the current working directory are
426        now converted properly, so that a UNC path can be used on
427        Windows.
428
429- QTranslator
430        Fixed an issue with isReadable() on NTFS.
431
432- QWindowsXPStyle
433        XP style now works when compiled as a plugin.
434        Fixed menu bar placement.
435        Fixed a bug in setting the background color of QTabWidget.
436        Fixed the position of the size grip in large QSizeGrip
437        widgets.
438        QGroupBox now uses the correct colors.
439
440- QWorkspace
441        Fixed bug where hidden windows would be shown after restoring
442        from maximized mode.
443
444- qmake
445        The Makefile generator now only searches for the latest
446        version of the Qt library, as opposed to searching all
447        libraries.
448        Dependency checking for pre-compiled headers were fixed.
449        Fixed support for listing .pro files in SUBDIRS in subdir .pro
450        files.
451        Fixed support for multiple -L and -I entries in QMAKE_LIBS.
452
453Mac:
454
455- Build system
456        When using Xcode, the optimization level is set to 0 in debug
457        mode.
458        Added support for Xcode 2.1 and up.
459        Fixed copying of target files when DESTDIR is set.
460
461- Drag & drop
462        Fixed a crash when deleting the drag object before dropping.
463
464- QApplication
465        The default font is now only set if the user has not set one.
466        Fixed a problem where popup menus would not go away after
467        releasing the mouse button outside the popup.
468        Added support for dual axis mouse wheels.
469        Fixed a bug in tablet identification.
470        Added support for tablet erasers.
471        Fixed a deadlock in postEvent() when there was contention for
472        a wakeup.
473        Fixed a crash when switching displays at the same time as
474        QApplication is destroyed.
475        Stability fixes.
476
477- QColorDialog
478        Fixed modality support.
479
480- QFileDialog
481        Let the file dialog remember the previous directory.
482        Fixed keyboard navigation when jumping to entries using the
483        first letter of a file name.
484        Fixed a memory leak.
485
486- QFontDatabase
487        Fall back to the "Geneva" font, which is guaranteed to be
488        available, instead of "Helvetica".
489
490- QFontEngine
491        Fixed a memory leak.
492        Fixed rendering of glyphs that modify previous glyphs,
493        including Indic text.
494
495- QMacStyle
496        Title bars are now shown as deactivated when the window is
497        deactivated.
498        Fixed a bug where buttons in button groups inside a container
499        would look like they were pressed.
500        Fixed a crash caused by drawing onto a non-pixmap background.
501        Fixed the width of QComboBox.
502        Improved drawing of size grips.
503        Improved drawing of sliders, and made QSlider slightly wider
504        by default.
505
506- QMenuBar
507        Fixed a lockup caused by menu items ending with an '&'.
508        Menu items with disabled popups are now also disabled.
509
510- QMessageBox
511        The resize handle is now shown.
512
513- QPainter
514        Fixed double transformation of ellipses with a transformed
515        width or height of 1.
516
517- QPixmap
518        Fixed a crash when loading a cursor from an embedded image.
519        The color depth is now set properly when converting a QBitmap.
520
521- QPrinter
522        Fixed a crash when using bitBlt() to copy a QBitmap onto a
523        printer.
524
525- QProcess
526        Fixed support for launching bundles.
527
528- QPushButton
529        Icons are now drawn properly.
530
531- QTextBrowser
532        Fixed a bug where a text browser popup triggered by a
533        hyperlink would pop up again when the user clicks inside the
534        first popup.
535
536- QToolButton
537        Fixed a painting problem when the button was pressed.
538
539- QWidget
540        Menubar popups no longer steal focus from QTextEdit.
541        Fixed collapsing of windows with no title bar decorations.
542        Several window activation bugs have been fixed.
543        Fixed a bug where modal dialogs would be modal to its own
544        children.
545        Fixed tablet support for multiple screens.
546        Fixed a memory leak.
547
548X11:
549
550- Build system
551        Removed aliasing/redefinitions of the 'which' command to fix
552        failures in the configure script on certain Unix systems.
553        Added some missing flags for the yacc tool on 64-bit Linux.
554        The -fn application command line option, which selects the
555        default application font, works again.
556        Fixed copying of target files when DESTDIR is set.
557
558- Drag and drop
559        Fixed a crash in the dragging application when the drop target
560        crashes.
561        Fixed a bug in finding the widget under the cursor while
562        dragging.
563        Some problems were fixed with the internal timestamp in the
564        drop event.
565
566- OpenGL
567        Fixed colors when rendering using glColor() onto an 8 bit
568        pixmap.
569
570- QApplication
571        Support the F11 and F12 keys on Sun keyboards.
572
573- QCanvasView
574        Support multiple shared views of a single canvas on multiple X11
575        screens.
576
577- QClipboard
578        Fixed a rare crash related to cut & paste with the Motif
579        extension.
580
581- QFontDatabase
582        Fixed a bug where QFontInfo would return an empty family and
583        point size after trying to select a font that was not
584        installed on the system.
585
586- QFontEngine
587        Fixed a bug where scaling italic fonts would sometimes cut
588        overhangs.
589
590- QInputContext
591        Fixed a bug that led to a corrupted display in QLineEdit and
592        QTextEdit when using Japanese input methods with very long
593        input selections.
594
595- QPainter
596        Fixed a crash when setting a pen on an inactive painter.
597
598- QPrinter
599        Fixed printing on Tru64 by removing the -o argument to the lp
600        command.
601
602- QScriptEngine
603        Added support for Khmer fonts.
604        Fixed shaping of Telugu text.
605        Fixed a crash when scaling Japanese XLFD fonts by a factor of
606        1000.
607
608Embedded:
609
610- QApplication
611        Fixed a memory leak.
612
613- VNC driver
614        Fixed a memory leak.
615
616- QWidget
617        Fixed a potential crash when reparenting widgets.
618