1**************************************************************************** 2* Important Notices * 3**************************************************************************** 4 5Meta-Object System 6------------------ 7 8Qt 4.0.0 introduced a change to the way type names outside the current 9scope were handled in signals and slots declarations and connections 10which differed from the behavior in Qt 3.x. 11 12Unfortunately, this could lead to signal-slot connections that were 13potentially type-unsafe. Therefore, in Qt 4.0.1 type names must be fully 14qualified in signal-slot declarations and connections. 15 16For example, in Qt 4.0.0, it was possible to write: 17 18 connect(socket, SIGNAL(error(SocketError)), ...); 19 20In Qt 4.0.1, the above connection must be made in the following way: 21 22 connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), ...); 23 24 25Library 26------- 27 28Support for SGI Altix has been added for both gcc and Intel icc. 29 30 31QX11EmbedContainer and QX11EmbedWidget are now exported classes. 32 33This change only affects developers using Qt/X11 with gcc >= 4.0 and 34symbol visibility enabled. Applications built against Qt 4.0.1 that 35use these classes cannot be linked against Qt 4.0.0. 36 37 38**************************************************************************** 39* Changes * 40**************************************************************************** 41 42Qt Designer 43----------- 44 45Fixed crash in designer when using fonts in custom widgets that 46don't have a point size set but use a pixel size instead. 47 48Fixed initial positions of the form windows in the MDI mode. 49 50Ensured that the object inspector is updated when a page is added 51to a widget stack. 52 53Ensured that the SDK is installed and the library symbols are 54exported. 55 56Fixed crash when breaking a layout after deleting all widgets within. 57 58Fixed handling of nested action groups. 59 60Fixed mouse handling to match user expectations on different 61platforms. 62 63Don't change system setting for double click interval. 64 65Disabled the richtext editor for the "statusTip" property. 66 67Improved widget handling, loading and saving for QFrame, QTabWidget, 68and Q3GroupBox. 69 70Added a platform-neutral mechanism for saving key sequences. 71 72Used Qt's list of supported image formats rather than an incomplete 73static list. 74 75Provided a way for plugins to access to the layout of container 76widgets. 77 78Added support for editable byte arrays. 79 80 81Qt Linguist 82----------- 83 84Made lupdate handle cases where the compiler converts strings using 85a different codec to that used by lupdate. 86 87Fixed bug in lupdate and lrelease's .pro file parser. 88 89Fixed lupdate's octal sequence handling. 90 91Fixed duplicate context when two contexts have the same hash value. 92 93 94Qt 3 to 4 Porting Tool 95---------------------- 96 97Fixed connnect statement that did not work with the new stricter moc. 98 99Fixed incorrect porting of enum values in switch statements. 100 101Fixed header file name replacements in include directives. 102 103 104Meta Object Compiler (moc) 105-------------------------- 106 107Fixed VC6 compilation of moc generated code with namespaced 108superclasses. 109 110Fixed parsing of functions that throw exceptions. 111 112Fixed compilation of moc generated code with VC6 when inheriting 113from classes inside namespaces. 114 115Improved the efficiency of signals with default arguments. 116 117 118Qt Assistant 119------------ 120 121Fixed the document list for full text search indexing. 122 123Fixed case sensitive completion in the find dialog combobox. 124 125Re-enabled the "add content file" option. 126 127Removed the "General" tab in the settings dialog. 128 129Fixed registry key handling and deletion of cache files. 130 131Made it possible to read titles in the tabs in assistant. 132 133Updated the QAssistantClient documentation. 134 135Added the QtAssistantClient headers to the other library headers 136for installation. 137 138Fixed full text search for phrases. 139 140 141General Fixes 142------------- 143 144- Dialogs 145 Removed hard-coded margin and spacing values from built-in 146 dialogs. 147 148- QAbstractItemModel 149 Fixed crash caused by removing an item with expanded children. 150 Added some more see also links and defined QModelIndexList. 151 152- QAbstractItemView 153 Fixed rendering and selection issues with MultiSelection 154 mode. 155 Improved handling of persistent editors. 156 Improved performance of item insertion. 157 Improved signal handling and emission. 158 159- QAbstractSlider 160 Ensured that no changes occur if the orientation doesn't 161 change in a call to setOrientation(). 162 Introduced better keyboard control for sliders. 163 Fixed sliderPressed() and sliderReleased() signal emissions. 164 165- QAbstractSocket 166 Fixed race condition in connectToHost(). 167 Made bytesAvailable() return the unget buffer size as well 168 as the size of any pending data. 169 Made NetworkLayerProtocol non-internal. 170 171- QAbstractSpinBox 172 Fixed problems with locale and the "." and "," separators. 173 Improved handling of extra whitespace at the beginning and 174 end of user input. 175 176- QApplication 177 Made closeAllWindows() respect windows that reject the close 178 event. 179 Fixed crash caused by calling QApplication::setStyle() 180 before a qApp was created. 181 Improved handling of the last open window for most cases. 182 Improved event handling. 183 184- QBezier 185 Used a new algorithm for offsetting curves. 186 Improved performance by using a more sophisticated 187 algorithm and by making QBezier a POD type. 188 189- QBrush 190 Improved radial gradient rendering. 191 192- QColorDialog 193 Process the return key correctly. 194 195- QComboBox 196 Fixed behaviour of setMaxItems() to enable new items to be 197 inserted within the range allowed. 198 199- QCommonStyle 200 Ensured that mnemonics are always shown for buttons. 201 Fixed position of right corner widget when used on its own. 202 203- QDateTimeEdit 204 Improved the range of input allowed for numbers. 205 206- QDial 207 Fixed valueChanged() signal emission. 208 209- QDialog 210 Fixed Lower QSizeGrip in QDialog instead of raising it. 211 212- QDir 213 Fixed relative path handling on Windows. 214 Reverted empty string matching behavior to match Qt 3's 215 behavior. 216 Restored API compatibility with Qt 3. 217 218- QDirModel 219 Fixed accidental deletion of directories in read-only mode. 220 221- QDockWidget 222 Ensured that the size of a floating dock widget is the same 223 regardless of how it was floated. 224 Reintroduced double-clicking behavior to float a dock 225 widget. 226 Fixed incorrect moving behavior for floating widgets. 227 Ensured that dock widgets display a close icon only if they 228 can be closed. 229 230- QDockWidgetLayout 231 See QMainWindow. 232 233- QDomNodeList 234 Fixed handling of out-of-range items. 235 236- QDoubleSpinBox 237 Improved decimals handling and rounding behavior in 238 QDoubleSpinBox. 239 240- QFile 241 Fixed problems with carriage return and line feed handling 242 in readLine(). 243 Ensured that pos() returns the correct value if the file 244 shrinks. 245 246- QFileDialog 247 Fixed incorrect behavior where the dialog would go to the 248 root directory if the user tried to enter a non-existent 249 directory. 250 Fixed sorting by type behavior. 251 252- QFontDatabase 253 Fixed loading of special fonts. 254 Fixed sample characters for Chinese scripts. 255 256- QFontDialog 257 Switched the locations of the OK and Cancel buttons. 258 Made items in the font dialog read-only. 259 Improved handling of the OK and Cancel buttons when the 260 dialog is in reverse layout mode. 261 262- QGifHandler 263 Reintroduced GIF plugin support. 264 265- QGridLayout 266 Improved default size handling. 267 268- QHeaderView 269 Fixed section hiding behavior. 270 Fixed Out of bounds error and improper calculation of last 271 column. 272 Improved mouse handling and widget updating. 273 Fixed crashes caused by moving or removing sections, or by 274 updating the current section. 275 Improved signal behavior for resized or removed sections. 276 277- QHttp 278 Fixed proxy authentication. 279 Fixed broken behavior when scheduling many requests to 280 different hosts. 281 Fixed socket object ownership issues with setSocket() that 282 could lead to a crash. 283 284- QImage 285 Fixed smooth scaling for image formats other than RGB and 286 ARGB32. 287 288- QImageReader 289 Fixed the default implementation of imageCount() to return a 290 valid number of images. 291 292- QInputDialog 293 Switched the locations of the OK and Cancel buttons. 294 295- QIODevice 296 Fixed problems with carriage return and line feed handling 297 in readLine(). 298 Made bytesAvailable() return the unget buffer size as well 299 as the size of any pending data. 300 Fixed error handling when reading lines with QFile. 301 Fixed seek() behavior with regard to the unget buffer. 302 303- QItemDelegate 304 Improved layout handling, redrawing, signal emission, 305 and mouse click behavior. 306 307- QKeySequence 308 Fixed accidental HTML escaping of ampersands. 309 310- QLayout 311 Print out object names in warnings. 312 313- QLineEdit 314 Enabled textChanged() signal emission when using input 315 methods. 316 Improved return key press handling for users of the 317 returnPressed() signal. 318 Fixed context menu action handling. 319 Fixed editingFinished() signal emission behavior. 320 Fixed Ctrl-K and Ctrl-U behavior to cut text rather than 321 just deleting it. 322 Fixed line edit selection behavior to maintain any current 323 selection when the widget receives the keyboard focus. 324 325- QListView 326 Improved handling of hidden rows. 327 Fixed rendering when used in reverse mode. 328 329- QListWidget 330 Fixed the size policy for laying out items in the list. 331 Improved sorting performance. 332 Fixed persistent index handling when sorting. 333 334- QMainWindow 335 Fixed problems with multiple connections from QMainWindow 336 signals to QToolBar slots. 337 Fixed dock widget handling (adding a widget to all dock 338 areas) and incorrect dock area splitting behavior that 339 could lead to crashes in QMainWindow. 340 Made QMainWindow's status bar have an "Ignored" horizontal 341 size policy. 342 343- QMetaObject 344 Fixed meta objects that reported far too many enums. 345 Fixed the behavior of sender() to return the correct value 346 during queued activation. 347 348- QMetaType 349 Fixed whitespace handling in template specialization. 350 Fixed missing qt_metatype_id implementation for <void *>. 351 Added more support for compilation with QT_NO_DATASTREAM. 352 353- QMenu 354 Fixed keyboard navigation when mouse navigation is also 355 being used. 356 Fixed menu bar merging behavior. 357 358- QMenuBar 359 Fixed Alt key navigation. 360 361- QObject 362 Fixed incorrect exception handling. 363 364- QPaintEngine 365 Suppressed warnings when drawing "empty" text. 366 Fixed rendering of Underline, Overline, and StrikeOut for 367 text drawn using outlines. 368 369- QPainter 370 Improved handling of clip regions when restore() is called. 371 Improved text drawing performance. 372 373- QPaintDevice 374 Allowed construction of QImage before QApplication. 375 376- QPainterPath 377 Improved performance and rendering accuracy. 378 379- QPen 380 Fixed missing detach in setWidth(). 381 382- QPixmap 383 Improved drawing speed and mask handling. 384 385- QPlastiqueStyle 386 Improved visual feedback for scrollbar page buttons and 387 slider handle. 388 Improved Plastique style on non-XRender-enabled displays. 389 390- QProcess 391 Fixed endless loop of signal being emitted if model dialog 392 is used in slot. 393 Made bytesAvailable() return the unget buffer size as well 394 as the size of any pending data. 395 396- QProxyModel 397 Improved signal handling for propagated signals. 398 399- QResource 400 Fixed Latin-1 string handling. 401 Fixed unloading of resources. 402 403- QScrollArea 404 Fixed widget resizing so that widgets that are smaller than 405 the viewport remain visible. 406 407- QSettings 408 Made it possible to store QImage/QPixmap settings. 409 Fixed race conditions in QSettings with INI files. 410 Improved handling of non-terminated strings in INI files. 411 412- QSizeGrip 413 Made the Qt 3-style constructor public. 414 415- QSpinBox 416 Fixed problems with out-of-range integers and doubles. 417 418- QSqlQueryModel 419 Fixed integration between QSqlTableModel and MS Access. 420 Fixed signal emissions for tables with only one row. 421 422- QSqlTableModel 423 Fixed problems with multiple record insertion. 424 425- QStatusBar 426 Fixed status bar height without size grip. 427 428- QTabBar 429 Fixed handling of the current page index when adding the 430 first page to QTabWidget. 431 Improved tab bar icon handling to enable icons to be updated 432 without redrawing the entire tab bar. 433 434- QTableView 435 Improved text cursor handling and support for keyboard 436 modifiers. 437 Fixed problems with disappearing headers. 438 Disallowed selection of hidden rows and columns. 439 Fixed crashes involving empty models and tables with headers 440 but no rows or columns. 441 442- QTableWidget 443 Improved sorting and signal emission behavior. 444 445- QTabWidget 446 Fixed handling of the current widget to keep the tab bar 447 updated. 448 449- QTextBrowser 450 Removed temporary visible text selection when activating 451 anchors with Shift-click. 452 453- QTextCursor 454 Fixed selection behavior for words at the beginning of lines. 455 Fixed incorrect use of character formats when calling 456 insertFragment(). 457 Fixed incorrect text insertion where line feeds and carriage 458 returns would not be transformed into Unicode block 459 separators. 460 461- QTextDocument 462 Added support for page breaking. 463 Added support for relative font sizes. 464 Added support for <hr /> tags. 465 Fixed clipboard handling and drag and drop of text frames. 466 Fixed handling of closing HTML </center> tags. 467 Fixed crash (failing assertion) on import of nested empty 468 HTML tables. 469 Fixed data corruption in fromPlainText(). 470 Corrected the handling of image tags inside anchors. 471 Fixed introduction of empty spaces or lines before and after 472 tables. 473 Fixed misrendering of some nested HTML tables with variable 474 sized columns. 475 Fixed crash in table drawing due to out-of-bounds access. 476 Added support for the pageCountChanged() signal. 477 Improved performance and size of PostScript images when 478 printing high resolution or scaled images. 479 480- QTextEdit 481 Improved layout and selection handling. 482 Added configuration support for non-blinking cursors. 483 Improved keyboard handling. 484 Improved text insertion handling. 485 486- QTextFormat 487 Added support for horizontal rules. 488 Improved font handling. 489 490- QTextLayout 491 Allow line breaking at tabs. 492 Improved reporting of line widths for lines ending with a 493 QChar::LineSeparator. 494 Fixed reporting of the minimum width for layouts that have 495 NoWrap/ManualWrap as their wrap policy. 496 497- QTextStream 498 Fixed locking behavior when reading from stdin. 499 Fixed seek() behavior. 500 Improved Latin-1 string handling. 501 502- QTextTable 503 Improved performance and selection handling. 504 505- QToolBar 506 Fixed toolbar resizing behavior to handle icon size changes. 507 508- QTreeView 509 Improved handling of hidden rows, columns, and child items. 510 Fixed repainting issues with newly inserted child items 511 and selections. 512 Improved scrolling behavior. 513 Fixed crashes involving column handling and empty views. 514 Fixed sorting indicator behavior. 515 516- QTreeWidget 517 Improved item insertion performance. 518 Fixed clone() and operator=() for QTreeWidgetItem. 519 Fixed crash when removing or deleting items with children. 520 Improved sorting performance. 521 Fixed sorting indicator behavior. 522 Fixed persistent index handling when sorting. 523 524- QUrl 525 Improved the performance of removeDots(). 526 527- QWidget 528 Fixed problems with adding an action multiple times. 529 530- QXmlInputSource 531 Improved heuristics for determining character encodings. 532 533- Q3FileDialog 534 Fixed file selection handling. 535 536 537Platform-Specific Issues 538------------------------ 539 540Windows: 541 542- QApplication 543 Fixed Block modeless elements of client when ActiveX opens a 544 modal dialog 545 Enabled tablet support. 546 Improved event handling for popup widgets. 547 548- QAxWidget 549 Support a document site only if the COM object allows proper 550 initialization with a storage. 551 552- QFileDialog 553 Updated to use the latest native Windows dialogs. 554 555- QProcess 556 Fixed behavior of forwarded read channels. 557 558- QSettings 559 Fixed behavior of childKeys() with respect to the default 560 key. 561 562- QWindowsStyle 563 Fixed menu item size. 564 Improved drawing of default push buttons. 565 Fixed rendering of sliders to correctly differentiate 566 between those in enabled and disabled states. 567 568- QWindowsXPStyle 569 Fixed menu frame rendering. 570 Reduced the space allocate to menu items. 571 572 573X11: 574 575- QApplication 576 Fixed incorrect initialization of screen and resolution. 577 Improved mouse button handling. 578 Fixed handling of withdrawn windows. 579 580- QBitmap 581 Fixed bitmap brush textures to ensure that they use the 582 correct color with XRender. 583 584- QFont 585 Fixed handle() to return useful values. 586 587- QFontDatabase 588 Fixed fonts for some writing systems not being loaded on X11 589 590- QPaintEngine 591 Fixed multi-screen support. 592 Improved performance and rendering accuracy. 593 Fixed dot-dash patterns when drawing with large pen widths. 594 Improved text rendering on exported displays. 595 596- QWidget 597 Implemented support for window opacity. 598 Added support for widgets with 32 bit sizes. 599 Improved support for different active and inactive background 600 brushes. 601 Fixed window icons on X servers that have truecolor and 602 pseudocolor visuals with different depths. 603 Fixed text rendering on exported displays. 604 605- QXIMInputContext 606 Fixed crash in XIM code with newer x.org libraries. 607 Fixed support for switching input method styles. 608 609- QX11Embed 610 Exported QX11Embed (see the Important Changes section 611 above). 612 Improved handling of non-XEmbed clients. 613 Improved geometry and focus handling. 614 615 616UNIX: 617 618- QPageSetupDialog 619 Reduced the size of the dialog. 620 621- QPrintDialog 622 Fixed initialization of color and grayscale radio buttons. 623 624- QProcess 625 Fixed incorrect notification of process termination on 626 Linux kernels up to and including the 2.4 series. 627 Made QProcess emit an error() when failing to launch a 628 program. 629 630 631Mac OS X: 632 633- QApplication 634 Fixed widgetAt() to handle transparent widgets. 635 Handle keyboard events in the active window if no focus 636 window is available. 637 Changed wheel mouse scrolling speed to match that of 638 other applications. 639 640- QComboBox 641 Fixed rendering of combobox frames. 642 643- QDnD 644 Fixed URL handling. 645 646- QClipboard 647 Fixed Junk at end of pasted text on Qt/Mac. 648 649- QCursor 650 Fixed incorrect pixmap handling. 651 652- QFileDialog 653 Fixed sheet modality issues to prevent the dialog from being 654 hidden behind other windows. 655 656- QFont 657 Default to using the Geneva font. 658 Enable kerning and fix Arabic text handling. 659 660- QLibraryInfo 661 Fixed location of qt.conf in Mac OS X bundles. 662 663- QMacStyle 664 Improvements to rendering accuracy of comboboxes, tab bars, 665 workspace windows, tool buttons, and push buttons. 666 Fixed incorrect drawing of scrollbars with "inverted 667 appearance". 668 Fixed font-related crash for applications configured to 669 use the standard desktop settings. 670 671- QMenu 672 Improved menu bar handling on navigation dialogs. 673 674- QMenuBar 675 Improved menu bar hiding/wrapping behavior. 676 677- QPaintDevice 678 Removed byte order assumptions. 679 680- QPaintEngine 681 Improved brush handling, clipping, masking, and tiling 682 operations. 683 684- QPixmap 685 Improvements to pixmap copying and conversion, masking, and 686 alpha channel handling. 687 Removed byte order assumptions. 688 689- QPrintEngine 690 Made color printing the default behavior. 691 692- QSettings 693 Sync the application's setting on construction of a 694 QSettings object. 695 696- QSysInfo 697 Included enum values for Mac OS X codenames in the 698 MacVersion version enum. 699 700- QWidget 701 Improved mouse event handling. 702 Improved interoperability between modal widgets. 703 704 705Tools 706----- 707 708- uic3 709 Fixed class name handling when used in "-convert" mode. 710 Fixed vertical space issues with .ui files converted from 711 Qt 3 to Qt 4. 712 Improved support for Qt3Support widgets. 713 Improved support for deprecated enums. 714 Added a generator for dependencies in Qt 3 .ui files. 715 716- rcc 717 Added better error reporting. 718 719- uic 720 Added code generation for tab attributes. 721 Fixed text codec handling. 722 Used UTF-8 as the default enconding in .ui files. 723 Fixed code generation for QWizard. 724 725 726Documentation 727------------- 728 729Porting: 730 731Removed QMovie from the list of implicitly shared classes that were 732previously explicitly shared. 733 734Added .ui porting document to the 4.0.1 documentation. 735 736Added sections about QHBox, QVBox, and QGrid to the porting guide. 737 738Added QImageIO and QMovie to the porting guide. 739 740Added QRegExp and some QDir functions to the porting guide. 741 742Added QObject::objectTrees() to the porting guide. 743 744Added QPopupMenu to the porting guide. 745 746 747General: 748 749Fix documentation of amortized container behavior. 750 751Added information about using specific compilers to build Qt. 752 753Removed QtMotif documentation because it is now part of Qt Solutions. 754 755Clarify parent-child relationship within QThreads. 756 757Documented potential file name clashes when using precompiled headers. 758 759Added a Windows XP gallery. 760 761Added pages to contain lists of classes for each Commercial Edition. 762 763Reintroduced the QAssistantClient documentation as part of the 764QtAssistant module. 765 766Added missing Qt Designer API documentation. 767 768- QApplication 769 Documented correct use of QApplication::setStyle(). 770 771- QComboBox 772 Made removeItem() and setRootModelIndex() visible in the 773 documentation. 774 775- QMetaObject 776 Added missing documentation for QGenericArgument and 777 QGenericReturnArgument, making them visible in the 778 documentation, but not recommended for casual use. 779 780- QPainter 781 Make QPainter::setRedirected() visible and fix its 782 description. 783 784- QSqlDatabase 785 Document what happens when passing an existing connection 786 name to addDatabase(). 787