1Qt 3.0.1 is a bugfix release. It maintains both forward and backward 2compatibility (source and binary) with Qt 3.0.0 3 4 5**************************************************************************** 6* General * 7**************************************************************************** 8 9- Style Engine fixes 10 Qt 3.0 introduced a new and more flexibile style engine. This 11 release should fix most of the small visual flaws that the new 12 styles introduced. It also greatly improves appearance in 13 right-to-left mode. 14 15- MS-Windows XP 16 This is the first release to fully support Windows XP, 17 including the new themable GUI styles. 18 The Windows XP style can only be built as a plugin, which requires 19 Qt to be configured as a shared library. To build the plugin 20 you must install a Microsoft Platform SDK for October 2001 21 or later. Your INCLUDE and LIB environment variables must 22 point to the respective directories in the SDK installation. 23 24- Reverse (right-to-left) layouts 25 Many classes have improved support for right-to-left layouts. 26 27- Compile fixes 28 Solaris 7 Intel, g++ version 2.8.1. 29 30- Documentation updates 31 Some new and improved diagrams and minor textual revisions. 32 33- Mac only: Drag'n'drop 34 Mac only: QDropEvents can decode HFS flavors. 35 36- X11 only: Multi-head (multi-screen) improvements 37 Support for different TrueColor depths on each head (screen). 38 Drag'n'drop support across multiple screens. Tooltips always 39 stay on the correct screen. Improved OpenGL support on 40 multiple screens. Qt 3.1 will support different color depths 41 on every screen (e.g. one TrueColor screen, one 8-bit 42 PseudoColor and one 8-bit GreyScale). 43 44 45**************************************************************************** 46* Library * 47**************************************************************************** 48 49- QAction 50 Fixed a memory leak in conjunction with action accelerators. 51 Turn toggle actions off when toggling is turned off with 52 setToggleAction(FALSE); 53 54- QApplication 55 Shared double buffers are cleaned up on destruction. 56 Creating and using multiple QApplications in the same process 57 is supported. 58 - Solaris only: Default to the Interface System font (which is 59 the default for the CDE) 60 - Win32 only: When WM_QUERYENDSESSION is received, _flushall 61 is called to ensure that all open streams and buffers are 62 flushed to disk (or to OS's buffers). 63 Better support for more input methods (e.g. Chinese). 64 Enter events are not propagated to modally blocked widgets. 65 Key_BackTab events are generated rather than Shift+Key_Tab. 66 Floating toolbars are blocked when the application is modal. 67 Move and Resize are disabled in the system menu for 68 maximized toplevel windows 69 - WinXP only: WM_THEMECHANGED messages are handled; widgets 70 are repolished with the appropriate style. 71 - X11 only: Removed misleading warning message for main 72 widgets on heads (screens) other than the default head. 73 Input context: Solved a memory leak in Xlib, and saved a 74 server round trip when updating the microfocushint. 75 Worked around some broken XmbLookupString implementations 76 that do not report buffer overflows correctly. 77 Key events are never given to a widget after clearFocus() 78 has been called for that widget; this is the same behavior 79 as Windows. 80 81- QAquaStyle (MacOS X only) 82 More optimizations and several minor visual bugs fixed. 83 84- QCanvas 85 Erase any exposed empty space when shrinking the canvas. 86 87- QCanvasPixmapArray 88 Initialize the framecount to 0. 89 90- QCanvasView 91 Optimize background pixmaps: potentially they were drawn 92 twice, first untranslated then translated. 93 94- QClipboard (X11 only) 95 The race conditions that cause KDE to lock-up occasionally 96 should now be fixed. 97 98- QComboBox 99 Fixed behavior with non-selectable items. Fixed a crash when 100 calling setCurrentItem(-1). Fixed autoscrolling when dragging 101 the mouse directly after opening the dropdown. 102 103- QColor 104 Make invalid named colors return a non-valid QColor (as 105 documented). 106 107- QColorDialog (Win32 only) 108 Use WStyle_DialogBorder, since resizing this dialog does not 109 make much sense. 110 111- QCommonStyle 112 Respect QApplication::globalStrut() in scroll bars. Support 113 reverse layout in QTitleBar. 114 115- QCursor 116 Safer cleanup of cursor shapes (avoids possible free'd memory 117 read) 118 - Win32 only: fixed application override cursor with mouse 119 grabbing. 120 121- QDate 122 Fixed some possible overflows. 123 - Win32 only: Improve locale support for short day and month 124 names etc. Initialize milliseconds correctly. 125 126- QDateTimeEdit 127 Display AM/PM if set by locale. Improved sizeHint(). 128 129- QDockAarea 130 More reliable sizeHint(). Better support for reverse layouts. 131 132- QDockWindow 133 Emit the placeChange() signal more reliably. Avoid floating 134 docks popping up everywhere before they have been positioned 135 and laid out. 136 137- QDesktopWidget 138 - X11 only: When using normal dualhead (not Xinerama), make 139 sure we report the correct screen number. 140 - Win32 only: refresh on WM_DISPLAYCHANGE. 141 142- QFrame 143 New panel styles LineEditPanel and TabWidgetPanel. This was 144 required by the new for Windows XP support. 145 146- QFileDialog 147 Show unicode filenames to the user rather than encoded ASCII 148 (e.g. previously latin1 characters were shown as "%XX" 149 escapes). 150 Fixed multiple-selection of FTP files. 151 Emit signal fileHighlighted in existingfile mode. 152 - Mac only: Fixed existingFolder(). Fixed window position so 153 that it will never fall outside the screen. 154 - Win32 only: since files, directories and drives are not case 155 sensitive, we don't add an extra entry in the paths box if 156 the path already exists but with different case. 157 158- QFileInfo (Unix only) 159 Make sure that symlinks pointing to invalid/non-existing 160 targets are reported as symlinks. 161 162- QFont 163 Ensure a rounded-off value is returned from pointSize(). 164 - x11 only: improved line width calculation. Fixed off by one 165 error in interpreting Xft font extents. Allow the use of 166 both Xft and non Xft fonts in the same application. Make 167 sure fonts are antialiased by default when using 168 xftfreetype. 169 170- QFontDialog 171 Prevent re-laying out when the size of the preview label 172 changes. 173 174- QFtp 175 In parseDir(), do not compare English month names to 176 shortMonthName(), since the latter is localized. 177 178- QGList 179 Make self-assignments work. 180 181- QGLWidget 182 Fixed ARGB to RGBA conversion on BigEndian systems. 183 - Win32 only: fixed colormap for 8-bit RGBA GL mode. 184 - X11 only: multiple heads with different color depths fixes. 185 186- QHebrewCodec 187 Assume the bidi algorithm is a reversible operation for the 188 visual 8859-8 codec. This is not true for very complex strings 189 but should hold in most cases. 190 191- QIconSet 192 Fixed detach() to really detach the internal pixmaps. In case 193 no image formats are installed, show black pixmaps rather than 194 ASSERT. 195 196- QImage 197 Allow 16-bit DIBs. Allow > 32767 level PNMs. 198 Fixed smoothscale() for the following bug: whenever 199 (new_width / original_width * 4096) is not an integer the last 200 column of the scaled image is black. 201 202- QImageIO 203 Fixed plugin loading in cases where the image format is 204 explicitly defined. 205 206- QInputDialog 207 Disable the OK button when input is not Acceptable. 208 (See QValidator.) 209 210- QLabel 211 When showing rich text with tables (via QSimpleRichtext), 212 avoid drawing the table background. 213 214- QLayout 215 In reverse layout mode: fix off by one error when laying out 216 right to left or bottom to top. 217 218- QLineEdit 219 Fixed offset calculation for horizontal scrolling. Invoke 220 validator when the user presses Backspace or 221 Delete. Compression of the undo/redo stack fixed. Security: do 222 not reveal the position of spaces with Ctrl+RightArrow or 223 Ctrl+LeftArrow in password mode. 224 225- QListBox 226 Append items at the proper position even after sorting the 227 content. Made QWidget::setBackgroundMode() work correctly. 228 229- QListBoxPixmap 230 Use the function pixmap() when drawing the pixmap, so users 231 can reimplement QListBoxPixmap::pixmap(). 232 233- QListView 234 Fix misalignment of checkbox click zone. Make the selected and 235 focus rectangles cover the entire column for QCheckListItems 236 if the listview root is not decorated. Make 237 QWidget::setBackgroundMode() on the viewport work correctly. 238 Comply with user interface guidelines: clear the selection 239 when a click is in an empty area unless the Ctrl key is down. 240 Fixed possible crash when starting a rename with a double 241 click. Smarter ensureItemVisible(). Draw listview background 242 in paintEmptyArea() with the current style. Ensure the 243 listview always has a current item. 244 245- QMainWindow 246 Better laying out of dockareas when they are all empty. 247 Otherwise an empty QMainWindow looks unappealing in a 248 workspace. Maintain the toplevel layout's resize mode. 249 250- QMessageBox 251 Avoid double deletion if the parent is destroyed while the 252 messagebox is open. Support y/n/c shortcuts without needing 253 the Alt key modifier. 254 255- QMovie 256 Allow pause() and restart() with MNG. 257 258- QMultiLineEdit 259 Remove internal trailing space when returning a textline with 260 textLine(int) and querying lineLength(int). 261 262- QPainter 263 The boundingRect() should now work properly for the 264 combination richtext, right-aligned and an empty initial rect. 265 Handle DontClip-flag in the painter's complex drawText() 266 function. Reset the cached composition matrix (and inverse) 267 when reinitialising a painter. 268 269- QPicture 270 Fixed the loading of binaries from older Qt versions. 271 272- QPixmap 273 grabWidget(): when the widget sets WRepaintNoErase it might 274 erase itself with the non-redirected QWidget::erase(); restore 275 those areas. 276 - X11 only: (with XRENDER extension) when copying a pixmap, 277 bitBlt the entire data into the new pixmap instead of using 278 alpha composition. 279 280- QPopupMenu 281 Fixed strange side effects with the menu effects. Support 282 minimumSize() for popups. Fixed a navigation issue where 283 Key_Right under certain circumstances was not propagated to 284 the menu bar. Speedups when disabling/enabling menu items 285 before showing them. 286 - X11 only: Fixed mouse and keyboard grabbing side effects 287 with popup menu effects enabled. 288 289- QPrintDialog (built-in dialog) 290 Use the text in the lineedit for the file dialog. 291 292- QPrinter 293 Fixed crash when printing with incomplete combined unicode 294 fonts. 295 - Win32 only: fixed a very rare and mysterious crash. 296 297 298- QPSPrinter 299 Make sure the fontPath is read correctly by the postscript 300 driver, and the qtconfig program. Small memory leaks closed. 301 Better support for Asian printing. Limit line length of 302 Postscript DSC comments to 255 chars (as per the postscript 303 specification). 304 305- QRichText 306 Fixed handling of  . Support both <qt title="..."> and 307 <title>. Avoid painting \n at the end of lines (these 308 sometimes appeared as an empty unicode box). Fixed find() in 309 "whole words only" mode. Fixed unicode auto alignment. Made 310 cursor movement in BiDi paragraphs compliant with MS-Windows. 311 Fixed paragraph right and center alignments when using <br> 312 tags. Fixed superscript/subscript confusion. 313 314- QScrollBar 315 Allow scrolling with modifier keys pressed. 316 317- QScrollView 318 Made autoscrolling work with drag and drop. Never generate 319 paintevents that are outside the visible area. 320 321- QSettings 322 - Unix only: search paths are valid for individual objects, 323 NOT every object (windows behavior). When reading files, 324 don't replace the old groups with contents of the new 325 groups; merge them instead. Properly escape backslashes and 326 newlines. 327 - win32 only: improved error handling. Fixed subKeyList() and 328 entryList() for empty paths. 329 330- QSimpleRichText 331 Correctly transform clipping rectangle. 332 333- QSizeGrip 334 Reverted sizeHint() to the old size to avoid making the 335 statusbar a tiny bit too big. Support right-to-left layout. 336 337 338- QSgiStyle 339 Made the combobox arrow look nicer. Fixed disabled combobox 340 drawing. 341 342- QSlider 343 Fixed click handling for reverse layouts. 344 345- QSpinBox 346 Usability fix: when changing a value with the up/down arrow 347 keys or with the arrow buttons, select the new value. 348 349- QSplitter 350 Use the actual QSplitter pointer as documented (and not a 351 QSplitterHandle pointer) as the parameter to the 352 QStyle::sizeForContents() call. Fixed reverse layouts when 353 splitter movement is constrained. 354 355- QSqlRecord 356 Fixed double increment of the iterator in certain 357 circumstances. 358 359- QString 360 Fixed QString::setLatin1() when the length parameter is 0. 361 - Unix only: Use strcoll() in QString::localeAwareSorting(). 362 - Mac only: clarify that local8Bit() is always utf8(). 363 364- QStyle 365 New frame styles for tab widgets, window frames and line edit 366 controls. This was required by the new support for Windows XP. 367 Added SH_ScrollBar_StopMouseOverSlider style hint so that one can 368 turn on (or off) the ability to stop pageup/pagedown when the 369 slider hits the mouse (this is needed for Aqua on MacOS X). 370 371- QSvgDevice 372 Many fixes for saving and restoring attributes that are not 373 part of QPainter. Processing of 'tspan' elements. Now uses 374 double instead of int for internal 'path' arithmetic for 375 better scaling results. Supports QPicture's coordinate 376 transformations. 377 378- QTabBar 379 Fixed the focus rectangles and spacing with icons and label 380 texts. 381 382- QTable 383 Improved layout in right-to-left mode. Fixed adjustRow() when 384 using header items with icon sets. Do not let hidden 385 columns/rows re-appear when adjusting. Update header correctly 386 when changing a table's dimensions. Correctly reset the 387 updatesEnabled flag in sortColumn(). Fixed modifying the 388 contents of a combobox or checkbox table item while it is the 389 current cell. 390 391- QTableItem 392 Make sure an item cannot span over a table's maximum number of 393 rows and columns. 394 395- QTabWidget 396 Constrain the sizehint to avoid having oversized dialogs. 397 398- QTextCode 399 Rename iso8859-6-I to to 8859-6. The old name is still 400 supported for backwards compatibility. 401 - Win32: implemented locale(). 402 - Mac: implemented locale(). 403 404- QTextDrag (Win32 only) 405 Performance improvements in encodedData(). 406 407- QTextEdit 408 Fixed HTML output. New property tabStopWidth. Fixed append() 409 and made it smarter: it only scrolls to the end if the view 410 was scrolled to the end before. Proper reformatting when 411 switching word wrap policies. Do not blink the cursor when the 412 textedit is disabled. Make isModified() return the new value 413 in slots connected to the modificationChanged() signal. 414 - X11 only: middle mouse selection pasting sets the cursor 415 position. 416 417- QTextStream 418 Faster string output in latin1 mode. 419 420- QThread 421 - Unix only: initialize threads in non-GUI mode as well. 422 - Win32 only: fixed the initial value of QThread::running(). 423 424- QToolButton 425 Fixed unwanted occurences of delayed popup menus. 426 427- QUrlOperator 428 Fixed the cache, so that QUrlInfo::name() is set correctly for 429 renamed files. This bug also affected QFileDialog. More 430 careful check whether a file is writable before renaming or 431 deleting it. 432 433- QValueVector 434 Make operator==() const. Fixed some sharing issues. 435 436- QVariant 437 Fixed a few memory leaks when casting complex values to simple 438 types. Faster operator==(). 439 440- QWaitCondition (Win32 only) 441 Fixed wakeAll(). 442 443- QWhatsThis 444 Make QWidget::customWhatsThis() work with menu accelerators. 445 Avoid infinite loops with menu effects. 446 447- QWidget 448 Fix default focus so that setTabOrder( X, Y ); setTabOrder( Y, 449 Z ); gives focus to X, not Y or Z. Closing a modal dialog with 450 a double click on a widget could result in a mouse release 451 event being delivered to the widget underneath; this has been 452 fixed. 453 Set/Reset WState_HasMouse on DragEnter/DragLeave. 454 - Win32 only: obey WPaintUnclipped. Make reparent() with 0,0 455 positions do the requested positioning. 456 - X11 only: when reparenting widgets to/from toplevel, make 457 sure the XdndAware property is set. Make input methods work 458 with servers other than kinput2. More fixes for 4Dwm's 459 incompliance with ICCCM 4.1.5 regarding geometry handling. 460 When hiding toplevel windows, we call XFlush() to avoid 461 having popup menus hanging around grabbing the mouse and 462 keyboard while the application is busy. Obey the 'erase' 463 value in repaint(const QRegion& reg, bool erase). 464 465- QWindowsStyle 466 Various visual fixes, including fixes for right-to-left 467 mode. Most significantly the light source now comes from the 468 top left also in reverse layout the same as modern versions of 469 Windows. 470 471- QWorkspace 472 Support document windows without title bars. Scroll to top 473 left corner when cascading/tiling a scrolled workspace. Define 474 a proper baseSize() for workspace children. Fix some side 475 effects with the workspace's maximize controls on Windows 476 style. Don't raise windows over scrollbars. Clients can now 477 call adjustSize() on the workspace when their sizeHint() 478 changes. When showing two scrollbars, maintain a solid corner. 479 Obey a document window's maximum size when tiling. 480 481**************************************************************************** 482* Extensions * 483**************************************************************************** 484 485NO CHANGES 486 487**************************************************************************** 488* Other * 489**************************************************************************** 490 491- qtconfig (X11 only) 492 It is now possible to turn Xft on and off, as well as turning 493 antialiasing-by-default on and off. This is necessary since 494 Xft doesn't work on dual head. 495 496- moc 497 Q_PROPERTY: Support QMap<QString, QVariant> and 498 QValueList<QVariant> as "QMap" and "QValueList". Support 499 parameters of nested template types, for example 500 QValueVector<QValueVector<double> >, as well as 501 Foo<const int>. 502 503- uic 504 Fix uic-generated code for QWizard with both "font" and 505 "titleFont" properties set. Put local includes after global 506 includes in generated files. 507 508- lupdate 509 Allow translation of menubar items generated with Qt Designer 510 (e.g. "&File", "&Edit", etc.). 511 512- libMNG 513 Updated to version 1.0.3. 514 515- libPNG 516 Updated to version 1.0.12. 517 518- Translations 519 Added Hebrew translations for Qt and the demo application. 520 521- Qt Designer 522 Support 'Ignored' size policy. Support properties of type 523 'double'. Fixed saving of custom widgets in toolbars. Various 524 smaller usability improvements. 525 526- Qt Assistant 527 When users starts Qt Assistant themselves, always make a new 528 instance. Only use the unique-instance feature when invoking 529 from Qt Designer. 530 531- QMsDev 532 Invoke Qt Linguist when opening a .ts file in Visual Studio. 533 534 535 536**************************************************************************** 537* Qt/Embedded-specific changes * 538**************************************************************************** 539 540NO CHANGES 541