1Qt 4.2 introduces many new features as well as many improvements and 2bugfixes over the 4.1.x series. For more details, see the online 3documentation which is included in this distribution. The 4documentation is also available at http://qt.nokia.com/doc/ 5 6The Qt version 4.2 series is binary compatible with the 4.1.x series. 7Applications compiled for 4.1 will continue to run with 4.2. 8 9The Qtopia Core version 4.2 series is binary compatible with the 4.1.x 10series except for some parts of the device handling API, as detailed 11in Platform Specific Changes below. 12 13 14**************************************************************************** 15* General * 16**************************************************************************** 17 18 19New features 20------------ 21 22- QCalendarWidget provides a standard monthly calendar widget with date 23 selection features. 24 25- QCleanlooksStyle provides the new Cleanlooks style, a clone of the GNOME 26 ClearLooks style, giving Qt applications a native look on GNOME desktops. 27 28- QCompleter provides facilities for auto completion in text entry widgets. 29 30- QDataWidgetMapper can be used to make widgets data-aware by mapping them 31 to sections of an item model. 32 33- QDesktopServices provides desktop integration features, such as support 34 for opening URLs using system services. 35 36- QDialogButtonBox is used in dialogs to ensure that buttons are placed 37 according to platform-specific style guidelines. 38 39- QFileSystemWatcher enables applications to monitor files and directories 40 for changes. 41 42- QFontComboBox provides a standard font selection widget for document 43 processing applications. 44 45- QGraphicsView and related classes provide the Graphics View framework, a 46 replacement for Qt 3's canvas module that provides an improved API, enhanced 47 rendering, and more responsive handling of large numbers of canvas items. 48 49- QGLFramebufferObject encapsulates OpenGL framebuffer objects. 50 51- QMacPasteboardMime handles Pasteboard access on Qt/Mac. This obsoletes 52 QMacMime as the underlying system has changed to support Apple's new 53 Pasteboard Manager. Any old QMacMime objects will not be used. 54 55- QNetworkInterface represents a network interface, providing information 56 about the host's IP addresses and network interfaces. 57 58- QResource provides static functions that control resource lookup and 59 provides a way to navigate resources directly without levels of 60 indirection through QFile/QFileEngine. 61 62- QSystemTrayIcon allows applications to provide their own icon in the 63 system tray. 64 65- QTimeLine gives developers access to a standard time line class with which 66 to create widget animations. 67 68- The QtDBus module provides inter-process communication on platforms 69 that support the D-BUS protocol. 70 71- The QUndo* classes in Qt's Undo framework provide undo/redo functionality 72 for applications. 73 74- Support for the Glib event loop to enable integration between Qt and non-Qt 75 applications on the GNOME desktop environment. 76 77- Improved Accessibility for item-based views and QTextEdit. 78 79- Support for main window animations and tabbed dock widgets. 80 81- Added an SVG icon engine to enable SVG drawings to be used by QIcon. 82 83- Widgets can now be styled according to rules specified in a style sheet, 84 using a syntax familiar to users of Cascading Style Sheets (CSS). Style 85 sheets are set using the QWidget::styleSheet property. 86 87- Introduced a new key mapper system which improves the shortcut system by 88 only testing the real possible shortcuts, such as Ctrl+Shift+= and Ctrl++ 89 on an English keyboard. 90 91- Improved and enhanced QMessageBox to support native look and feel on many 92 common platforms. 93 94- Experimental support for Qt usage reporting ("metered licenses") on Linux, 95 Windows and Mac OS X. Reporting is disabled by default. 96 97- A screen magnification utility, pixeltool, is provided. It is designed to help 98 with the process of fine-tuning styles and user interface features. 99 100- New qrand() and qsrand() functions to provide thread safe equivalents to 101 rand() and srand(). 102 103 104General improvements 105-------------------- 106 107- Item views 108 109 * Selections are maintained when the layout of the model changes 110 (e.g., due to sorting). 111 112 * Convenience views can perform dynamic sorting of items when the data 113 in items changes. 114 115 * QStandardItem provides an item-based API for use with 116 QStandardItemModel and the model/view item view classes. 117 118 * QStandardItemModel API provides a classic item-based approach to 119 working with models. 120 121 * Single selection item views on Mac OS X cannot change their current 122 item without changing the current selection when using keyboard 123 navigation. 124 125- Plastique style has improved support for palettes, and now requires 126 XRender support on X11 for alpha transparency. 127 128- Tulip containers 129 130 * Added typedefs for STL compatability. 131 132 * Added function overloads to make the API easier to use. 133 134- Added the Q3TextStream class for compatiblity with Qt 3 and to assist with 135 porting projects. 136 137- OpenGL paint engine 138 139 * Added support for all composition modes of QPainter natively using 140 OpenGL. 141 142 * Fixed a case where very large polygons failed to render correctly. 143 144 * Ensured that glClear() is only called in begin() if the 145 QGLWidget::autoFillBackground() property is true. 146 147 * Ensured that a buffer swap is only performed in end() if 148 QGLWidget::autoBufferSwap() is true. 149 150 * Improved text drawing speed and quality. 151 152- Raster paint engine 153 154 * Fixed blending of 8 bit indexed images with alpha values. 155 156 * Fixed drawing onto QImages that were wider than 2048 pixels. 157 158 * Fixed alpha-blending and anti-aliasing on ARGB32 images. 159 160 * Improved point drawing performance. 161 162 * Fixed issue where lines were drawn between coordinates that were 163 rounded instead of truncated. 164 165 * Ensured that setClipRegion(QRegion()) clips away all painting 166 operations as originally intended. 167 168 169Third party components 170---------------------- 171 172- Dropped support for MySQL version 3. 173 174- Updated Qt's SQLite version to 3.3.6. 175 176- Updated Qt's FreeType version to 2.2.1. 177 178- Updated Qt's libpng version to 1.2.10. 179 180 181Build System 182------------ 183 184- Auto-detect PostgreSQL and MySQL using pg_config and mysql_config on UNIX 185 based systems in the configure script 186 187- Added "-system-sqlite" option to configure to use the system's SQLite 188 library instead of Qt's SQLite version. 189 190- Added QT_ASCII_CAST_WARNINGS define that will output a warning on implicit 191 ascii to Unicode conversion when set. Only works if the compiler supports 192 deprecated API warnings. 193 194- Added Q_REQUIRED_RESULT to some functions. This macro triggers a warning 195 if the result of a function is discarded. Currently only supported by gcc. 196 197 198- Qt/X11, Qt/Mac and Qtopia Core only: 199 200 * Added all QT_NO_* defines to the build key. 201 202 203- Qt/X11 and Qtopia Core only: 204 205 * As in Qt 3, the configure script enables the -release option by 206 default, causing the Qt libraries to be built with optimizations. If 207 configured with the -debug option, the debug builds no longer result 208 in libraries with the _debug suffix. 209 210 On modern systems, flags are added to the Qt build to also 211 generate debugging information, which is then stored in a 212 separate .debug file. The additional debug information does not 213 affect the performance of the optimized code and tools like gdb 214 and valgrind automatically pick up the separate .debug 215 files. This way it is possible to get useful backtraces even 216 with release builds of Qt. 217 218 * Removed the last vestiges of the module options in the configure 219 script, previously they were available but did not function. 220 221 * Implemented a -build option in the configure script to conditionally 222 compile only certain sections of Qt. 223 224 * Made it possible to build Qt while having "xcode" set as your 225 QMAKESPEC on OSX. 226 227 228- Windows only: 229 230 * Populated the build key, as done on all the other platforms. 231 232 * Fixed dependency generation in Visual Studio Solutions (.sln) 233 created by qmake. 234 235 * Added missing platforms to the Visual Studio project generator (X64, 236 SH3DSP and EBC). 237 238 * Made UIC3 use a temporary file for long command lines. 239 240 * Removed the object file (.o) conflicts with MinGW that appeared when 241 embedding a native resource file which was named the same as a normal 242 source file. 243 244 * Fixed mkspec detection when generating project files outside of QTDIR. 245 246 * Removed compiler warnings with MinGW g++ 3.4.5. 247 248 249 250**************************************************************************** 251* Library * 252**************************************************************************** 253 254 255- QAbstractButton 256 257 * Returns QPalette::Button and QPalette::ButtonText for 258 backgroundRole() and foregroundRole(), respectively, rather than 259 QPalette::Background and QPalette::Foreground. 260 261 * Ensured that nextCheckState() is called only when there is a state 262 change. 263 264- QAbstractItemModel 265 266 * When dropping rows only insert rows that were actually dropped, not 267 the continuous row count from first to last. 268 269 * Added a supportedDragActions property to be used by 270 QAbstractItemView when starting a drag. 271 272 * When updating changed persistent indexes, ignore those that haven't 273 actually changed. 274 275 * Fixed endian issue with createIndex(). 276 277 * Added FixedString matching for match(). 278 279 * Changed the sorting algorithm to use a stable sort. 280 281 * Added persistentIndexList() function. 282 283- QAbstractItemView 284 285 * Added possibility to copy elements to clipboard on read-only views. 286 287 * Improved handling of QAbstractItemModel::supportedDropActions(). 288 289 * Ensured that the current item is selected when using keyboard 290 search. 291 292 * Ensured that the view starts with a valid current index. 293 294 * Ensured that data is only committed in currentChanged() if the 295 editor is not persistent. 296 297 * Fixed crash that occurred when a modal dialogs was opened when 298 closing an editor. 299 300 * Added verticalScrollMode and horizontalScrollMode properties. 301 302 * Added setItemDelegateForRow() and setItemDelegateForColumn(). 303 304 * Ensured that existing models are disconnected properly when 305 replaced. 306 307 * Ensured that the doubleClicked() signal is only emitted when the 308 left button has been double-clicked. 309 310 * Changed setSelection(...) to work when given a non-normalized 311 rectangle. 312 313 * Fixed regression for shift-selections in ExtendedSelection for 314 all views. 315 316 * Added dragDropMode property and implemented move support in all of 317 the views and models. 318 319 * For edit triggers SelectedClicked and DoubleClicked, only trigger 320 editing when the left button is clicked. 321 322 * Trigger SelectedClicked editing on mouse release, not mouse press. 323 324 * Suppressed the doubleClicked() signal in cases where the clicks 325 happened on two different items. 326 327 * Enabled keyboard search to be programmatically reset by calling 328 keyboardSearch() with an empty string as argument. 329 330 * Don't allow drops on items that don't have the Qt::ItemIsDropEnabled 331 flag set. 332 333 * Added modelAboutToBeReset() and layoutAboutToBeChanged() signals. 334 335 * Suppressed assertion in dropMimeData() for cases where mimeTypes() 336 returns an empty list. 337 338 * Ensured consistent behavior of drag and drop when rootIndex() is a 339 valid model index. 340 341 * Made it possible to check a checkbox with only a single click when 342 using the CurrentChanged edit trigger. 343 344 * Ensured that WhatsThis events are propagated when the relevant item 345 doesn't have a valid "What's This?" value. 346 347 * Added PositionAtCenter scrollHint. 348 349 * Added support to allow items to be checked and unchecked using the 350 keyboard. 351 352 * Added support for keypad navigation. 353 354- QAbstractProxyModel 355 356 * Added default implementations for data(), headerData() and flags() 357 358- QAbstractScrollArea 359 360 * Added ability to set a corner widget. 361 362 * Added ability to set scroll bar widgets. 363 364 * Added support for custom scroll bars. 365 366- QAbstractSpinBox 367 368 * Added a hasAcceptableInput() property. 369 370 * Ensured that fixup/validate are called for third party subclasses of 371 QAbstractSpinBox as well. 372 373 * Fixed geometry issues when toggling frames on and off for spinboxes. 374 375 * Added a property for correctionMode. 376 377 * Added a property for acceleration. 378 379- QAbstractPrintDialog 380 381 * Fixed handling of existing printer options so that storage of page 382 ranges using setFromTo() works as expected when printing in PDF format. 383 384- QAction 385 386 * Added the setAutoRepeat(bool) function to disable auto-repeating 387 actions on keyboard shortcuts. 388 389- QApplication 390 391 * Added saveStateRequest() and commitDataRequest() signals so that 392 QApplication does not need to be subclassed to enable session 393 management in an application. 394 395 * Added the styleSheet property to get/set the application style sheet. 396 397 * Support sending key events to non-widget objects. 398 399 * Ensured that argc and argv as passed to the QApplication constructor 400 will always be zero-terminated on all platforms after QApplication 401 consumes command line options for itself. 402 403- QBrush 404 405 * Added a constructor that accepts a QImage. 406 407- QButtonGroup 408 409 * Added pressed() and released() signals. 410 411 * Fixed a bug caused by removing buttons from button groups. Removed the 412 internal mapping as well. 413 414 * Ensured that checkedButton() returns the correct value with 415 non-exclusive groups. 416 417- QClipboard 418 419 * Added support for find text buffer. 420 421- QColor 422 423 * Fixed corruption in setRed(), setGreen() and setBlue() for HSV/CMYK 424 colors. 425 426- QComboBox 427 428 * Fixed drawing issues related to certain FocusPolicy values. 429 430 * Ensured that the ItemFlags of an Item (ItemIsEnabled,...) are 431 respected. 432 433 * Fixed cases where the popup could be shown completly on screen, but 434 weren't. 435 436 * Added the InsertAlphabetically insert policy. 437 438 * Fixed case where a QPixmap could not be displayed using a QIcon. 439 440 * Fixed the type of the modelColumn property from bool to int. 441 442 * Updated documentation to clarify the differences between activated(), 443 highlighted() and currentIndexChanged(), and describe what they 444 actually mean. 445 446 * Updated the behavior to ensure that, if the combobox isn't editable, 447 the Qt::DisplayRole rather than the Qt::EditRole is used to query the 448 model. 449 450- QCoreApplication 451 452 * Added flags to enable/disable application-wide features such as 453 delayed widget creation. 454 455- QCursor 456 457 * Added support for the newly added Qt::OpenHandCursor and 458 Qt::ClosedHandCursor enum values. 459 460- QDate 461 462 * Support dates all the way down to Julian Day 1 (2 January 4713 B.C.) 463 using the Julian calendar when appropriate. 464 465- QDateTime 466 467 * Fixed parsing issue in fromString(const QString &, Qt::DateFormat). 468 469- QDateTimeEdit 470 471 * Added the calendarPopup property to enable date selection using the 472 new QCalendarWidget class. 473 474 * Added a setSelectedSection() function to allow the currently selected 475 section to be programmatically set. 476 477- QDesktopWidget 478 479 * Remove a potential out-of-bounds read. 480 481- QDialog 482 483 * Improved stability in cases where the default button is deleted. 484 485- QDir 486 487 * Improved support for i18n file paths in QDir::tempPath(). 488 489 * Improved support for UNC paths when the application is run from a 490 share. 491 492 * Ensured that mkpath() properly supports UNC paths. 493 494 * Obsoleted QDir::convertSeparators(). 495 496 * Introduced QDir::toNativeSeparators() and QDir::fromNativeSeparators(). 497 498 * Added a QDebug streaming operator. 499 500- QDirModel 501 502 * Fixed conversion from bytes to larger units in QDirModel in the file 503 size display. 504 505 * Remove hardcoded filtering of the '.' and '..' entries. 506 507- QErrorMessage 508 509 * Made qtHandler() work in cases where the message handler is invoked 510 from threads other than the GUI thread. 511 512- QEvent 513 514 * Added the KeyboardLayoutChange event type which is sent when the 515 keyboard layout changes. 516 517- QFile 518 519 * Improved support for UNC paths when the application is run from a 520 share. 521 522 * Added support for physical drives (e.g., "//./Physical01"). 523 524 * Ensured that QFile::error() and QIODevice::errorString() are set 525 whenever possible when errors occur. 526 527 * Renamed readLink() to symLinkTarget(). 528 529- QFileDialog 530 531 * Fixed a case where view mode got disabled. 532 533- QFileInfo 534 535 * Improved support for UNC paths when the application is run from a 536 share. 537 538 * Improved support for drive-local relative paths, such as "D:". 539 540 * Renamed readLink() to symLinkTarget(). 541 542- QFlags 543 544 * Added the testFlag() convenience function. 545 546- QFont 547 548 * Added NoFontMerging as a flag to QFont::StyleStrategy. 549 550- QFontDatabase 551 552 * Added functions for handling application-local fonts at run-time: 553 addApplicationFont(), removeApplicationFont(), 554 applicationFontFamilies(), etc. 555 556- QFontDialog 557 558 * Enabled support for custom window titles. 559 560- QFontMetrics/QFontMetricsF 561 562 * Added the elidedText() function. 563 564 * Added the averageCharWidth() function. 565 566- QFrame 567 568 * Fixed a rendering issue when showing horizontal and vertical lines 569 created using Designer. 570 571- QFtp 572 573 * Improved parsing of the modified date in list(). 574 575 * Ensured that all data has been received when downloading, before the 576 data connection is closed. 577 578 * Added support for FTP servers that reject commands with a 202 response. 579 580- QGLFormat 581 582 * Added the openGLVersionFlags() function. 583 584 * Added support for setting the swap interval for a context 585 (i.e., syncing to the vertical retrace). 586 587 * Added support for setting red, green and blue buffer sizes. 588 589- QGLWidget 590 591 * Fixed a resource leak that could occur when binding QImages with the 592 bindTexture() function. 593 594 * Fixed renderText() to produce proper output when depth buffering is 595 enabled. 596 597 * Fixed bindTexture() to respect premultiplied QImage formats. 598 599 * Ensured that the updatesEnabled property is respected. 600 601- QGradient 602 603 * Added default constructors and setter functions for all gradients and 604 their attributes. 605 606- QGridLayout 607 608 * Do not segfault if cellRect() is called before setGeometry(), 609 even though the result is documented to be undefined. 610 611 * Fixed maximum size handling when adding spacing. 612 613- QGroupBox 614 615 * Activating a group box by a shortcut will now show the focus rectangle. 616 617 * Added the clicked() signal 618 619- QHash 620 621 * Prevent conversion of iterator or const_iterator to bool 622 (e.g., if (map->find(value))) because the conversion always returned 623 true. Qt 4.1 code that doesn't compile because of this change was most 624 probably buggy. 625 626 * Added the uniqueKeys() function. 627 628- QHeaderView 629 630 * Use the current resize mode to determine section sizes when 631 new rows are inserted. 632 633 * Recover the internal state if other widgets steal the mouse release 634 event. 635 636 * Ensure that moved sections can be removed without asserting. 637 638 * Be more robust with regards to arguments sent to the rowsInserted slot. 639 640 * Let the stretchLastSection property override the globalResizeMode in 641 the resizeSections() function. 642 643 * Renamed ResizeMode::Custom to ResizeMode::Fixed. 644 645 * Added the swapSections() convenience function. 646 647 * Added a more "splitter-like" resize mode. 648 649 * Added the possibility for the user to turn off stretch mode by 650 resizing the header section. This includes the stretchLastSection 651 property. 652 653 * Added the minimumSectionSize property. 654 655 * Get the section size hint from the Qt::SizeHintRole, if set. 656 657 * Added the ResizeToContents resize mode. 658 659 * Ensure that all header contents are centered by default. 660 661 * Improved the internal structure to be more memory efficient. 662 663- QHostAddress 664 665 * Added QDataStream streaming operators. 666 667- QHttp 668 669 * Support percent-encoded paths when used with a proxy server. 670 671 * Improved handling of unexpected remote socket close. 672 673- QHttpHeader 674 675 * Improved support for case-insensitive header searching. 676 677- QIcon 678 679 * Fixed issue where actualSize() might return a larger value than the 680 requested size. 681 682 * Fixed improper pixmap caching 683 684 * Added QDataStream operators for QIcon. 685 686 * Added the Selected mode. 687 688- QImage 689 690 * Added support for 16 bit RGB format. 691 692 * Added QPoint overloads to various (int x, int y) functions. 693 694 * Added support for faster/better rotation of images by 90/180/270 695 degrees. 696 697 * convertToFormat() now supports the color lookup table. 698 699 * Improved algorithm for smooth scaling to produce better results. 700 701- QImageReader 702 703 * Ensured that size() returns an invalid QSize if the image I/O handler 704 does not support the QImageIOHandler::Size extension. 705 706 * Added support for reading negative BMP images. 707 708 * Improved handling of invalid devices. 709 710 * Added optimizations to ensure that the most likely formats and plugins 711 are tested first when reading unknown image formats. 712 713 * Improved reading of BMP images from sequential QIODevices. 714 715 * Support for scaledSize() with JPEG images. 716 717 * It is now possible to query the supported options of an image by 718 calling supportedOptions(). 719 720 * Stability fixes for the built-in XBM reader. 721 722- QImageWriter 723 724 * Ensured that an error is reported when attempting to write an image 725 to a non-writable device. 726 727 * It is now possible to query the supported options of an image by 728 calling supportedOptions(). 729 730- QIODevice 731 732 * Fixed a casting bug in QIODevice::getChar(). 733 734 * Improved reading performance significantly by using an internal buffer 735 when a device is opened in buffered mode. 736 737 * Some behavioral differences have been introduced: 738 739 + The following functions now need to call the base implementation 740 when reimplemented: atEnd(), bytesAvailable(), size(), canReadLine(). 741 742 + pos() should return the base implementation directly. 743 744 + QIODevice now handles the device position internally. seek() should 745 always end up calling the base implementation. 746 747- QItemDelegate 748 749 * Use a widget's USER property to set and get the editor data. 750 751 * Removed unnecessary assertions. 752 753 * Added the clipping property to enable clipping when painting. 754 755 * When the model specifies a font, resolve the font over the existing 756 one rather than replacing it. 757 758 * Fixed issue with rendering of selected pixmaps. 759 760 * Ensured that QItemEditorFactory is called with the variant's 761 userType() so that the factory can distinguish between multiple user 762 types. 763 764 * Ensured that Key_Enter is propagated to the editor before data is 765 committed, so that the editor has a chance to perform custom input 766 validation/fixup. 767 768 * Let the line edit grow to accomodate long strings. 769 770 * Made it easer to subclass the item delegate. 771 772 * Added support for keypad navigation. 773 774- QItemSelectionModel 775 776 * Improved overall speed, particularly when isSelected() is used. 777 778 * Added functions for getting the selected rows or columns. 779 780 * Ensured that the current index is updated when it is being removed. 781 782 * Ensure that QAbstractItemView::clearSelection() only clears the 783 selection and not the current index. 784 785 * Added the hasSelection() function. 786 787 * Fixed some connection leaks (connections were not disconnected) when 788 an QItemSelectionModel was deleted. This should also speed up some 789 special cases. 790 791- QKeySequence 792 793 * Added a set of platform-dependent standard shortcuts. 794 795 * Fixed incorrect parsing of translated modifiers. 796 797- QLabel 798 799 * Added support for text selection and hyperlinks. 800 801 * Improved handling of scaled pixmaps. 802 803 * Made handling of QMovie safer to avoid object ownership issues. 804 805- QLibrary 806 807 * Added support for hints to control how libraries are opened on UNIX 808 systems. 809 810 * Added errorString() to report the causes of errors when libraries 811 fail to load. 812 813 * Added easier way to debug plugin loading: Setting QT_DEBUG_PLUGINS=1 814 in the environment will enable debug message printing on the 815 console. 816 817 * Increased the number of acceptable file name suffixes used to 818 recognize library files. 819 820- QLineEdit 821 822 * Ensured that the Unicode context menu gets shown if language 823 extensions are present. 824 825 * Ensured that editingFinished() is not emitted if a validator is set 826 and the text cannot be validated. 827 828 * Ctrl+A now triggers select all on all platforms. 829 830 * Call fixup on focusOut() if !hasAcceptableInput(). 831 832 * Added auto-completion support with the setCompleter() function. 833 834 * Fixed painting errors when contents margins were set. 835 836 * Invalid text set using setText() can now be edited where previously 837 it had to be deleted before new text could be inserted. 838 839 * Use SE_LineEditContents to control the contents rect of each 840 QLineEdit. 841 842- QListView 843 844 * Added the batchSize property. 845 846 * Don't un-hide currently hidden rows when new rows are inserted. 847 848 * Fixed partial repainting bug that occurred when alternatingRowColors 849 was enabled. 850 851 * Ensured that the resize mode is not reset in setViewMode() if it was 852 already set. 853 854 * Fixed crash that occurred when the first item was hidden and 855 uniformItemSizes was set. 856 857 * Added the wordWrap property for wrapping item text. 858 859 * Allow the user to select items consecutively when shift-selecting. 860 861 * Ensured that only the top item is selected when the user clicks on 862 an area with several items are stacked on top of each other. 863 864 * Optimized hiding and showing of items. 865 866 * Fixed issue where dragging an item in Snap mode did not respect the 867 scroll bar offsets. 868 869 * Fixed issue in Snap mode where a (drag and) drop did not always 870 query the item that existed in the corresponding cell for an enabled 871 Qt::ItemIsDropEnabled flag. 872 873- QListWidget/QTreeWidget/QTableWidget 874 875 * Ensured the dataChanged() signal is emitted when flags are set on an 876 item. 877 878 * Removed unnecessary assertions. 879 880 * Added more convenience functions in QListWidget, QTableWidget and 881 QTreeWidget for selecting, hiding, showing, expanding and collapsing 882 nodes. 883 884 * Ensured that changes to items are reported. 885 886- QLocale 887 888 * Fixed bug in the string-to-number functions which sometimes caused 889 them to fail on negative numbers which contained thousand- 890 separators. 891 892 * Implemented the numberOptions property for specifying how 893 string-to-number and number-to-string conversions should be 894 performed. 895 896- QMainWindow 897 898 * Added support for tabbed dock widgets. 899 900 * Enhanced look and feel of dock widget handling. When a dock widget 901 hovers over a main window, the main window animates the existing 902 dock widgets and main area to show how it will accept the dock 903 widget if dropped. 904 905 * Fixed issues related to insertToolBarBreak(). 906 907- QMap 908 909 * Prevent conversion of iterator or const_iterator to bool 910 (e.g., if (map->find(value))), because the conversion always 911 returned true. Qt 4.1 code that doesn't compile because of this 912 change was most probably buggy. 913 914 * Added the uniqueKeys() function. 915 916- QMenu 917 918 * Added the aboutToHide() signal. 919 920 * Added the isEmpty() accessor function. 921 922 * Clear menuAction() when setMenu(0) 923 924 * Added support for widgets in menus via QWidgetAction. 925 926 * Collapse multiple consecutive separators. This can be turned off 927 with the collapsibleSeparators property. 928 929 * Made scrollable menus wrap, just like non-scrollable ones. 930 931- QMessageBox 932 933 * Updated the API to allow more than 3 buttons to be used. 934 935 * Added support to display buttons in the order required by 936 platform-specific style guidelines. 937 938 * Added support for display of informative text using the 939 informativeText property. 940 941 * Added the detailedText property to allow detailed text to be 942 displayed. 943 944 * Improved sizing of message box (especially on Mac OS X). 945 946 * Changed the behavior so that long text strings are automatically 947 wrapped. 948 949 * Updated icon handling to use QStyle::standardIcon() where possible. 950 951- QMetaObject 952 953 * Added the userProperty() and normalizedType() functions. 954 955- QMetaType 956 957 * Ensured that all type names are normalized before registering them. 958 959 * Added support for handling Qt's integer typedefs: qint8, qint16, 960 etc. 961 962- QModelIndex 963 964 * Added the flags() convenience function. 965 966- QMutexLocker, QReadLocker, and QWriteLocker 967 968 * These classes now track the state of the lock they are holding. 969 They will not unlock on destruction if unlock() has been called. 970 971- QObject 972 973 * thread() will always return a valid thread, even if the object was 974 created before QApplication or in a non-QThread thread. 975 976 * When thread() returns zero, events are no longer sent to the object. 977 (Previous versions of Qt would send posted events to objects with no 978 thread; this does not happen in Qt 4.2). 979 980 * Added support for dynamically added properties via the new 981 property(), setProperty(), and dynamicPropertyNames() functions. 982 983 * Fixed a crash that could occur when a child deleted its sibling. 984 985- QPainter 986 987 * Fixed a crash the occurred when drawing cosmetic lines outside the 988 paint device boundaries. 989 990 * Fixed a pixel artifact issue that occurred when drawing cosmetic 991 diagonal lines. 992 993 * Fixed opaque backgrounds so that they are identical on all 994 platforms. 995 996 * Optimized drawing of cosmetic lines at angles between 315 and 360 997 degrees. 998 999 * Added the setRenderHints() function. 1000 1001 * Fixed a memory corruption issue in drawEllipse(). 1002 1003- QPixmap 1004 1005 * Fixed crash caused by setting a mask or alpha channel on a pixmap 1006 while it was being painted. 1007 1008 * Changed load() and save() to no longer require a format string. 1009 1010 * Ensured that grabWidget() works before the specified widget is first 1011 shown. 1012 1013- QPluginLoader 1014 1015 * Added errorString() to report the causes of errors when plugins fail 1016 to load. 1017 1018- QPrinter 1019 1020 * Added support for PostScript as an output format on all platforms. 1021 1022 * Significantly reduced the size of the generated output when using 1023 the PostScript and PDF drivers. 1024 1025 * Fixed issue where fromPage()/toPage() returned incorrect values when 1026 generating PDF files. 1027 1028 * Ensured that setOutputFormat() preserves previously set printer 1029 properties. 1030 1031 * Updated setOutputFileName() to automatically choose PostScript or 1032 PDF as the output format for .ps or .pdf suffixes. 1033 1034- QProcess 1035 1036 * Added support for channel redirection to allow data to be redirected 1037 to files or between processes. 1038 1039- QPushButton 1040 1041 * Ensured that, when a menu is added to a push button, its action is 1042 also added to enable keyboard shortcuts. 1043 1044- QRect, QRectF, QRegion 1045 1046 * Renamed unite(), intersect(), subtract(), and eor() to united(), 1047 intersected(), subtracted(), and xored() respectively. 1048 1049 * Added QRegion::intersects(QRegion) and QRegion::intersects(QRect). 1050 1051 * Fixed case where rect1 & rect2 & rect3 would return a non-empty 1052 result for disjoint rectangles. 1053 1054- QRegExp 1055 1056 * Added RegExp2 syntax, providing greedy quantifiers (+, *, etc.). 1057 1058 * Marks (QChar::isMark()) are now treated as word characters, 1059 affecting the behavior of '\b', '\w', and '\W' for languages 1060 that use diacritic marks (e.g., Arabic). 1061 1062 * Fix reentrancy issue with the regexp cache. 1063 1064- QScrollArea 1065 1066 * Added the ensureWidgetVisible() function to facilitate scrolling to 1067 specific child widgets in a scroll area. 1068 1069- QScrollBar 1070 1071 * Ensured that a SliderMove action is triggered when the slider value is 1072 changed through a wheel event. 1073 1074- QSet 1075 1076 * Added QSet::iterator and QMutableSetIterator. 1077 1078- QSettings 1079 1080 * Store key sequences as readable entries in INI files. 1081 1082 * Detect NFS to prevent hanging when lockd isn't running. 1083 1084- QShortcut 1085 1086 * Added the setAutoRepeat(bool) function to disable auto-repeating 1087 actions on keyboard shortcuts. 1088 1089- QSize 1090 1091 * Fixed potential overflow issue in scale(). 1092 1093- QSlider 1094 1095 * Added support for jump-to-here positioning. 1096 1097- QSortFilterProxyModel 1098 1099 * Handle source model changes (e.g., data changes, item insertion 1100 and removal) in a fine-grained manner, so that the proxy model 1101 behaves more like a "real" model. 1102 1103 * Added sortRole, filterRole and dynamicSortFilter properties. 1104 1105 * Perform stable sorting of items. 1106 1107 * Fixed support for drag and drop operations where one item is dropped 1108 on top of another. 1109 1110 * Ensure that persistent indexes are updated when the layout of the 1111 source model changes. 1112 1113 * Made match() respect the current sorting and filtering settings. 1114 1115 * Forward mimeTypes() and supportedDropActions() calls to source 1116 models. 1117 1118 * Added the ability to filter on all the columns. 1119 1120 * Added the filterChanged() function to enable custom filtering to be 1121 implemented. 1122 1123- QSqlQuery 1124 1125 * Added execBatch() for executing SQL commands in a batch. Currently 1126 only implemented for the Oracle driver. 1127 1128 * Fixed a case where executedQuery() would not return the executed 1129 query. 1130 1131- QSqlRelationalTableModel 1132 1133 * Fixed issue related to sorting a relational column when using the 1134 PostgreSQL driver. 1135 1136 * revertAll() now correctly reverts relational columns. 1137 1138- QStackedLayout 1139 1140 * Fixed crash that occurred when removing widgets under certain 1141 conditions. 1142 1143- QStackedWidget 1144 1145 * Fixed crash that occurred when removing widgets under certain 1146 conditions. 1147 1148 * Fixed issue where the size hint of the current widget would not be 1149 respected. 1150 1151- QStandardItemModel 1152 1153 * Added an item-based API for use with QStandardItem. 1154 1155 * Reimplemented sort(). 1156 1157 * Added the sortRole property. 1158 1159- QStatusBar 1160 1161 * Added the insertWidget() and insertPermanentWidget() functions. 1162 1163- QString 1164 1165 * Added support for case-insensitive comparison in compare(). 1166 1167 * Added toUcs4() and fromUcs4() functions. 1168 1169- QStyle 1170 1171 * Added the following style hint selectors: 1172 SH_Slider_AbsoluteSetButtons, SH_Slider_PageSetButtons, 1173 SH_Menu_KeyboardSearch, SH_TabBar_ElideMode, SH_DialogButtonLayout, 1174 SH_ComboBox_PopupFrameStyle, SH_MessageBox_TextInteractionFlags, 1175 SH_DialogButtonBox_ButtonsHaveIcons, SH_SpellCheckUnderlineStyle, 1176 SH_MessageBox_CenterButtons, SH_Menu_SelectionWrap, 1177 SH_ItemView_MovementWithoutUpdatingSelection. 1178 1179 * Added the following standard pixmap selectors: 1180 SP_DirIcon, SP_DialogOkButton, SP_DialogCancelButton, 1181 SP_DialogHelpButton, SP_DialogOpenButton, SP_DialogSaveButton, 1182 SP_DialogCloseButton, SP_DialogApplyButton, SP_DialogResetButton, 1183 SP_DialogDiscardButton, SP_DialogYesButton, SP_DialogNoButton, 1184 SP_ArrowUp, SP_ArrowDown, SP_ArrowLeft, SP_ArrowRight, SP_ArrowBack, 1185 SP_ArrowForward. 1186 1187 * Added PE_PanelScrollAreaCorner and PE_Widget as primitive element 1188 selectors. 1189 1190 * Added PM_MessageBoxIconSize and PM_ButtonIconSize as pixel metric 1191 selectors. 1192 1193 * Added SE_LineEditContents and SE_FrameContents as sub-element 1194 selectors. 1195 1196 * Added SE_FrameContents to control the contents rectangle of a 1197 QFrame. 1198 1199- QSvgHandler 1200 1201 * Improved style sheet parsing and handling. 1202 1203 * Added support for both embedded and external style sheets. 1204 1205 * Improved parsing of local url() references. 1206 1207 * Improved coordinate system handling. 1208 1209 * Fixed issue where the viewbox dimensions would be truncated to integer 1210 values. 1211 1212 * Fixed support for gradient transformations. 1213 1214 * Fixed opacity inheritance behavior. 1215 1216 * Added support for gradient spreads. 1217 1218 * Fixed gradient stop inheritance behavior. 1219 1220 * Fixed parsing of fill and stroke properties specified in style sheets. 1221 1222 * Added support for reading and writing the duration of animated SVGs. 1223 1224 * Fixed incorrect rendering of SVGs that do not specify default viewboxes. 1225 1226 * Fixed radial gradient rendering for the case where no focal point is 1227 specified. 1228 1229- QSyntaxHighlighter 1230 1231 * Added various performance improvements. 1232 1233- Qt namespace 1234 1235 * Added ForegroundRole and BackgroundRole, allowing itemviews to use 1236 any QBrush (not just QColor, as previously) when rendering items. 1237 1238 * Added NoDockWidgetArea to the ToolBarArea enum. 1239 1240 * Added NoToolBarArea to the DockWidgetArea enum. 1241 1242 * Added GroupSwitchModifier to the KeyboardModifiers enum. It 1243 represents special keys, such as the "AltGr" key found on many 1244 keyboards. 1245 1246 * Added several missing keys to the Key enum: Key_Cancel, Key_Printer, 1247 Key_Execute, Key_Sleep, Key_Play and Key_Zoom. 1248 1249 * Added OpenHandCursor and ClosedHandCursor for use with QCursor. 1250 1251- QTabBar 1252 1253 * QTabBar text can now be elided; this is controlled by the elideMode 1254 property. 1255 1256 * You can now turn on or off the "scroll buttons" for the tab bar with 1257 the usesScrollButtons property. 1258 1259 * Non-pixmap based styles will now fill the background of the tab with 1260 the palette's window role. 1261 1262- QTabletEvent: 1263 1264 * Ensured that QTabletEvents are dispatched with the proper relative 1265 coordinates. 1266 1267 * Added proximity as another type of a tablet event (currently only sent 1268 to QApplication). 1269 1270- QTableView 1271 1272 * Added API for spanning cells. 1273 1274 * Ensured that cells are selected when the user right clicks on them. 1275 1276 * Added a corner widget. 1277 1278 * Added the setSortingEnabled property. 1279 1280- QTableWidget 1281 1282 * Added the clearContents() function to enable the contents of the view 1283 to be cleared while not resetting the headers. 1284 1285 * QTableWidget now uses stable sorting. 1286 1287 * Allow sorting of non-numerical data. 1288 1289 * Add convenience table item constructor that takes an icon as well as 1290 a string. 1291 1292- QTabWidget 1293 1294 * Added missing selected() Qt3Support signal. 1295 1296 * Clarified documentation for setCornerWidget(). 1297 1298 * Ensured that the tab widget's frame is drawn correctly when the tab 1299 bar is hidden. 1300 1301 * Ensured that the internal widgets have object names. 1302 1303 * Added iconSize, elideMode, and usesScrollButtons as properties (see 1304 QTabBar). 1305 1306- QTcpSocket 1307 1308 * Fixed a rare data corruption problem occurring on heavily loaded 1309 Windows servers. 1310 1311- QTemporaryFile 1312 1313 * Added support for file extensions and other suffixes. 1314 1315 * Fixed one constructor which could corrupt the temporary file path. 1316 1317- QTextBrowser 1318 1319 * Fixed various bugs with the handling of relative URLs and custom 1320 protocols. 1321 1322 * Added isBackwardAvailable(), isForwardAvailable(), and 1323 clearHistory() functions. 1324 1325- QTextCodec 1326 1327 * Allow locale-dependent features of Qt, such as QFile::exists(), to 1328 be accessed during global destruction. 1329 1330- QTextCursor 1331 1332 * Added columnNumber(), blockNumber(), and insertHtml() convenience 1333 functions. 1334 1335- QTextDocument 1336 1337 * Added convenience properties and functions: textWidth, idealWidth(), 1338 size, adjustSize(), drawContents(), blockCount, maximumBlockCount. 1339 1340 * Added support for forced page breaks before/after paragraphs and 1341 tables. 1342 1343 * Added CSS support to the HTML importer, including support for 1344 CSS selectors. 1345 1346 * Added defaultStyleSheet property that is applied automatically for 1347 every HTML import. 1348 1349 * Improved performance when importing HTML, especially with tables. 1350 1351 * Improved pagination of tables across page boundaries. 1352 1353- QTextEdit 1354 1355 * Fixed append() to use the current character format. 1356 1357 * Changed mergeCurrentCharFormat() to behave in the same way as 1358 QTextCursor::mergeCharFormat, without applying the format to the 1359 word under the cursor. 1360 1361 * QTextEdit now ensures that the cursor is visible the first time the 1362 widget is shown or when replacing the contents entirely with 1363 setPlainText() or setHtml(). 1364 1365 * Fixed issue where the setPlainText() discarded the current character 1366 format after the new text had been added to the document. 1367 1368 * Re-added setText() as non-compatibility function with well-defined 1369 heuristics. 1370 1371 * Added a moveCursor() convenience function. 1372 1373 * Changed the default margin from 4 to 2 pixels for consistency with 1374 QLineEdit. 1375 1376 * Added support for extra selections. 1377 1378- QTextFormat 1379 1380 * Fixed the default value for QTextBlockFormat::alignment() to return 1381 a logical left alignment instead of an invalid alignment. 1382 1383 * Added UnderlineStyle formatting, including SpellCheckUnderline. 1384 1385- QTextStream 1386 1387 * Added the pos() function, which returns the current byte-position 1388 of the stream. 1389 1390- QTextTableCell 1391 1392 * Added the setFormat() function to enable the cell's character format 1393 to be changed. 1394 1395- QThread 1396 1397 * Related to changes to QObject, currentThread() always returns a 1398 valid pointer. (Previous versions of Qt would return zero if called 1399 from non-QThread threads; this does not happen in Qt 4.2). 1400 1401- QToolBar 1402 1403 * Introduced various fixes to better support tool buttons, button 1404 groups and comboboxes in the toolbar extension menu. 1405 1406 * Fixed crash that occurred when QApplication::setStyle() was called 1407 twice. 1408 1409- QToolButton 1410 1411 * Fixed an alignment bug for tool buttons with multi-line labels and 1412 TextUnderIcon style. 1413 1414- QToolTip 1415 1416 * Added the hideText() convenience function. 1417 1418 * Added the showText() function that takes a QRect argument specifying 1419 the valid area for the tooltip. (If you move the cursor outside this 1420 area the tooltip will hide.) 1421 1422 * Added a widget attribute to show tooltips for inactive windows. 1423 1424- QTranslator 1425 1426 * Added support for plural forms through a new QObject::tr() overload. 1427 1428 * Ensured that a LanguageChange event is not generated if the 1429 translator fails to load. 1430 1431 * Fixed a bug in isEmpty(). 1432 1433 * Added Q_DECLARE_TR_FUNCTIONS() as a means for declaring tr() 1434 functions in non-QObject classes. 1435 1436- QTreeView 1437 1438 * Ensured that no action is taken when the root index passed to 1439 setRootIndex() is the same as the current root index. 1440 1441 * When hiding items the view no longer performs a complete re-layout. 1442 1443 * Fixed possible segfault in isRowHidden(). 1444 1445 * Significantly speed up isRowHidden() for the common case. 1446 1447 * Improved row painting performance. 1448 1449 * After expanding, fetchMore() is called on the expanded index giving 1450 the model a way to dynamically populate the children. 1451 1452 * Fixed issue where an item could expand when all children were 1453 hidden. 1454 1455 * Added support for horizontal scrolling using the left/right arrow 1456 keys. 1457 1458 * Added a property to enable the focus rectangle in a tree view to be 1459 shown over all columns. 1460 1461 * Added more key bindings for expanding and collapsing the nodes. 1462 1463 * Added the expandAll() and collapseAll() slots. 1464 1465 * Added animations for expanding and collapsing branches. 1466 1467 * Take all rows into account when computing the size hint for a 1468 column. 1469 1470 * Added the setSortingEnabled property. 1471 1472 * Fixed the behavior of the scrollbars so that they no longer 1473 disappear after removing and re-inserting items while the view is 1474 hidden. 1475 1476 * Fixed memory corruption that could occur when inserting and removing 1477 rows. 1478 1479 * Don't draw branches for hidden rows. 1480 1481- QTreeWidget 1482 1483 * Added the const indexOfTopLevelItem() function. 1484 1485 * Improved item insertion speed. 1486 1487 * Fixed crash caused by calling QTreeWidgetItem::setData() with a 1488 negative number. 1489 1490 * QTreeWidget now uses stable sorting. 1491 1492 * Made construction of single column items a bit more convenient. 1493 1494 * Added the invisibleRootItem() function. 1495 1496 * Made addTopLevelItems() add items in correct (not reverse) order. 1497 1498 * Ensured that the header is repainted immediately when the header 1499 data changes. 1500 1501- QUiLoader 1502 1503 * Exposed workingDirectory() and setWorkingDirectory() from 1504 QAbstractFormBuilder to assist with run-time form loading. 1505 1506- QUrl 1507 1508 * Added errorString() to improve error reporting. 1509 1510 * Added hasQuery() and hasFragment() functions. 1511 1512 * Correctly parse '+' when calling queryItems(). 1513 1514 * Correctly parse the authority when calling setAuthority(). 1515 1516 * Added missing implementation of StripTrailingSlash in toEncoded(). 1517 1518- QVariant 1519 1520 * Added support for all QMetaType types. 1521 1522 * Added support for QMatrix as a known meta-type. 1523 1524 * Added support for conversions from QBrush to QColor and QPixmap, 1525 and from QColor and QPixmap to QBrush. 1526 1527 * Added support for conversions between QSize and QSizeF, between 1528 QLine and QLineF, from long long to char, and from unsigned long 1529 long to char. 1530 1531 * Added support for conversions from QPointF to QPoint and from QRectF 1532 to QRect. 1533 1534 * Fixed issue where QVariant(Qt::blue) would not create a variant of 1535 type QVariant::Color. 1536 1537 * Added support for conversions from int, unsigned int, long long, 1538 unsigned long long, and double to QByteArray. 1539 1540- QWhatsThis 1541 1542 * Improved look and feel. 1543 1544- QWidget 1545 1546 * Delayed creation: Window system resources are no longer allocated in 1547 the QWidget constructor, but later on demand. 1548 1549 * Added a styleSheet property to set/read the widget style sheet. 1550 1551 * Added saveGeometry() and restoreGeometry() convenience functions for 1552 saving and restoring a window's geometry. 1553 1554 * Fixed memory leak for Qt::WA_PaintOnScreen widgets with null paint 1555 engines. 1556 1557 * Ensured that widget styles propagate to child widgets. 1558 1559 * Reduced flicker when adding widget to layout with visible parent. 1560 1561 * Fixed child visibility when calling setLayout() on a visible widget. 1562 1563 * Speed up creation/destruction/showing of widgets with many children. 1564 1565 * Avoid painting obscured widgets when updating overlapping widgets. 1566 1567- QWorkspace 1568 1569 * Resolved issue causing the maximized controls to overlap with the 1570 menu in reverse mode. 1571 1572 * Fixed issue where child windows could grow a few pixels when 1573 restoring geometry in certain styles. 1574 1575 * Ensured that right-to-left layout is respected when positioning new 1576 windows. 1577 1578 * Fixed crash that occurred when a child widget did not have a title 1579 bar. 1580 1581 * Fixed issue where maximized child windows could be clipped at the 1582 bottom of the workspace. 1583 1584- quintptr and qptrdiff 1585 1586 * New integral typedefs have been added. 1587 1588- Q3ButtonGroup 1589 1590 * Fixed inconsistencies with respect to exclusiveness of elements in 1591 Qt 3. 1592 1593 * Fixed ID management to be consistent with Qt 3. 1594 1595- Q3Canvas 1596 1597 * Fixed several clipping bugs introduced in 4.1.0. 1598 1599- Q3CanvasView 1600 1601 * Calling setCanvas() now always triggers a full update. 1602 1603- Q3Grid, Q3Hbox, Q3VBox 1604 1605 * Fixed layout problem. 1606 1607- Q3IconView 1608 1609 * Fixed a case where selected icons disappeared. 1610 1611- Q3ListBox 1612 1613 * Fixed inconsistencies in selectAll() with respect to Qt 3. 1614 1615 * Fixed possible crash after deleting items. 1616 1617- Q3ListView 1618 1619 Fixed possible crash in Q3ListView after calling clear(). 1620 1621 Fixed inconsistent drag and drop behavior with respect to Qt 3. 1622 1623- Q3Process 1624 1625 * Stability fixes in start(). 1626 1627- Q3Socket 1628 1629 * No longer (incorrectly) reports itself as non-sequential. 1630 1631- Q3Table 1632 1633 * Improved behavior for combobox table elements. 1634 1635 1636 1637**************************************************************************** 1638* Database Drivers * 1639**************************************************************************** 1640 1641- Interbase driver 1642 1643 * Fixed data truncation for 64 bit integers on 64 bit operating 1644 systems. 1645 1646- MySQL driver 1647 1648 * When using MySQL 5.0.7 or larger, let the server do the text 1649 encoding conversion. 1650 1651 * Added UNIX_SOCKET connection option. 1652 1653 * Improved handling of TEXT fields. 1654 1655- OCI driver 1656 1657 * Improved speed for meta-data retrieval. 1658 1659 * Fixed potential crash on Windows with string OUT parameters. 1660 1661 * Improved handling of mixed-case table and field names. 1662 1663- ODBC driver 1664 1665 * Improved error reporting if driver doesn't support static result 1666 sets. 1667 1668 * Improved support for the Sybase ODBC driver. 1669 1670- SQLite driver 1671 1672 * QSqlDatabase::tables() now also returns temporary tables. 1673 1674 * Improved handling of mixed-case field names. 1675 1676 1677 1678**************************************************************************** 1679* QTestLib * 1680**************************************************************************** 1681 1682- Added "-silent" options that outputs only test failures and warnings. 1683 1684- Reset failure count when re-executing a test object 1685 1686- Added nicer output for QRectF, QSizeF, and QPointF 1687 1688 1689 1690**************************************************************************** 1691* Platform Specific Changes * 1692**************************************************************************** 1693 1694 1695Qtopia Core 1696----------- 1697 1698- Fixed the -exceptions configure switch. 1699 1700- Fixed a build issue preventing the use of MMX instructions when 1701 available. 1702 1703- Fixed leak of semaphore arrays during an application crash. 1704 1705- Fixed cases where the wrong cursor was shown. 1706 1707- Fixed cases where QWidget::normalGeometry() would return wrong value. 1708 1709- Allow widgets inside QScrollArea to have a minimum size larger than the 1710 screen size. 1711 1712- Allow (0,0) as a valid size for top-level windows. 1713 1714- VNC driver 1715 1716 * Fixed keyboard shortcut problem when using the VNC driver. 1717 1718 * Fixed issue with the VNC driver that prevented client applications to 1719 connect in some cases. 1720 1721 * Fixed a leak of shared memory segments in the VNC driver. 1722 1723 * Reduced CPU consumption in the VNC driver. 1724 1725 * Implemented dynamic selection of the underlying driver for the VNC and 1726 transformed screen drivers. 1727 1728 * Improved error handling when clients connects to the server. 1729 1730- Graphics system 1731 1732 * Introduced new API for accelerated graphics hardware drivers. 1733 1734 * Implemented support for multiple screens. 1735 1736 * QScreen has binary incompatible changes. All existing screen drivers 1737 must be recompiled. 1738 1739 * QWSWindow, QWSClient, QWSDisplay and QWSEvent have binary 1740 incompatible changes. QWSBackingStore has been removed. 1741 Existing code using these classes must be recompiled. 1742 1743 * Added support for OpenGL ES in QGLWidget. 1744 1745 * Implemented support for actual screen resolution in QFont. 1746 1747 * Removed internal limitation of 10 display servers. 1748 1749 * Improved memory usage when using screens with depths less than 16 1750 bits-per-pixel. 1751 1752 * Fixed 16 bits-per-pixel screens on big-endian CPUs. 1753 1754 * Optimized CPU usage when widgets are partially hidden. 1755 1756 * Improved detection of 18 bits-per-pixel framebuffers. 1757 1758 * Improved performance when using a rotated screen with 18 or 24 1759 bits-per-pixel depths. 1760 1761 * Improved speed of drawing gradients. 1762 1763 * Introduced the QWSWindowSurface as a technique to create 1764 accelerated paint engines derived from QPaintEngine. 1765 1766 * Implemented the Qt::WA_PaintOnScreen flag for top-level widgets. 1767 1768 * Extended QDirectPainter to include non-blocking API and support for 1769 overlapping windows. Existing code that subclasses QDirectPainter 1770 must be recompiled. 1771 1772 * Implemented QWSEmbedWidget which enables window embedding. 1773 1774 * Removed hardcoded 72 DPI display limitation. 1775 1776- Device handling 1777 1778 * QWSMouseHandler has binary incompatible changes. All existing mouse 1779 drivers must be recompiled. 1780 1781 * Fixed an issue of getting delayed mouse events when using the 1782 vr41xx driver. 1783 1784 * Improved event compression in the vr41xx mouse handler. 1785 1786 * Improved algorithm for mouse calibration which works for all 1787 screen orientations. 1788 1789 * Fixed an issue causing mouse release events with wrong positions 1790 when using a calibrated and filtered mouse handler on a rotated 1791 screen. 1792 1793 * Made the tty device configurable for the Linux framebuffer screen 1794 driver. 1795 1796 * Fixed a deadlock issue when using drag and drop and a calibrated 1797 mouse handler. 1798 1799 * Autodetection of serial mice is turned off to avoid disrupt serial 1800 port communication. Set QWS_MOUSE_PROTO to use a serial mouse. 1801 1802- QVFb 1803 1804 * Fixed an issue preventing QVFb from starting on some systems. 1805 1806 * Added support for dual screen device emulation in QVFb. 1807 1808- QCopChannel 1809 1810 * Added a flush() function so that the QWS socket can be flushed, 1811 enabling applications to ensure that QCop messages are delivered. 1812 1813 1814Linux and UNIX systems 1815---------------------- 1816 1817- Printing 1818 1819 * Improved CUPS support by sending PDF instead of Postscript to 1820 CUPS on systems that have a recent CUPS library, improving the 1821 print quality. 1822 1823 * Added a new and improved QPrintDialog. 1824 1825 * Improved font embedding on systems without FontConfig. 1826 1827- QApplication 1828 1829 * When available, use Glib's mainloop functions to implement event 1830 dispatching. 1831 1832- QPlastiqueStyle 1833 1834 * Added support to enable KDE icons to be automatically used on 1835 systems where they are available. 1836 1837- QTextCodec 1838 1839 * Uses iconv(3) (when available) to implement the codec returned by 1840 QTextCodec::codecForLocale(). The new codec's name is "System" 1841 (i.e., QTextCodec::codecForLocale()->name() returns "System" 1842 when iconv(3) support is enabled). 1843 1844 1845AIX 1846--- 1847 1848- The makeC++SharedLib tool is deprecated; use the "-qmkshrobj" compiler 1849 option to generate shared libraries instead. 1850 1851 1852X11 1853--- 1854 1855- Added support to internally detect the current desktop environment. 1856 1857- QAbstractItemView 1858 1859 * Fixed assertion caused by interrupting a drag and drop operation 1860 with a modal dialog on X11. 1861 1862 * Ensured that release events dispatched when closing a dialog 1863 with a double click, are not propagated through to the window 1864 underneath. 1865 1866- QCursor 1867 1868 * Fixed crash occuring when the X11 context had been released before 1869 the cursor was destructed. 1870 1871- QGLWidget 1872 1873 * Fixed crashes that could occur with TightVNC. 1874 1875 * Improved interaction between QGLWidget and the Mesa library. 1876 1877- QMenu 1878 1879 * Made it possible for popup menus to cover the task bar on KDE. 1880 1881- QMotifStyle 1882 1883 * Ensured that the font set on a menu item is respected. 1884 1885- QX11EmbedContainer, QX11EmbedWidget 1886 1887 * Added missing error() functions. 1888 1889- QX11PaintEngine 1890 1891 * Increased speed when drawing polygons with a solid pixmap brush. 1892 1893 * Fixed masked pixmap brushes. 1894 1895 * Increased QImage drawing performance. 1896 1897- Motif Drop support 1898 1899 * Support for drops from Motif applications has been refactored and is 1900 now working properly. QMimeData reports non-textual data offered in 1901 Motif Drops using a MIME type of the form "x-motif-dnd/ATOM", where 1902 ATOM is the name of the Atom offered by the Motif application. 1903 1904- Font rendering 1905 1906 * Improved stability when rendering huge scaled fonts. 1907 1908 * Enabled OpenType shaping for the Latin, Cyrillic, and Greek 1909 writing systems. 1910 1911 * Improved sub-pixel anti-aliasing. 1912 1913 * Improved font loading speed. 1914 1915 1916Mac OS X 1917-------- 1918 1919- Mac OS 10.2 support dropped. 1920 1921- QuickDraw support in QPaintEngine dropped; everything folded into the 1922 CoreGraphics support. 1923 1924- All libraries in Qt are now built as frameworks when -framework mode is 1925 selected (default) during the configuration process. 1926 1927- Many accessibility improvements, including better VoiceOver support. The 1928 following widgets have had their accessibilty updated for this release: 1929 QSplitter, QScrollBar, QLabel, QCheckBox, QRadioButton, QTabBar, 1930 QTabWidget, QSlider, and QScrollBar. 1931 1932- Hidden files are now reported as hidden by QFileInfo, QDirModel, etc. 1933 1934- Windows now have a transparent size grips, an attribute for specifying an 1935 opaque size grip was added. 1936 1937- Metrowerks generator has been removed. 1938 1939- Ensured that the anti-aliasing threshold setting is followed. 1940 1941- Added a standard "Minimize" menu item to Assistant's Window menu. 1942 1943- The documentation now has "Xcode-compatible" links so that it can be added 1944 into Xcode's documentation viewer. This needs to be done by the developer 1945 as regenerating Xcode's index takes quite a long time 1946 1947- QAbstractScrollArea 1948 1949 * Improved look and feel by aligning the scroll bars with the size 1950 grip. 1951 1952- QClipboard 1953 1954 * Data copied to the clipboard now stays available after the 1955 application exits. 1956 1957 * Added support for the Find clipboard buffer. 1958 1959 * Fixed encoding of URLs passed as MIME-encoded data. 1960 1961- QComboBox 1962 1963 * Improved the popup sizing so it's always wide enough to display its 1964 contents. 1965 1966 * Improved the popup placement so it stays on screen and does not 1967 overlap the Dock. 1968 1969 * The minimumSizeHint() and sizeHint() functions now honor 1970 minimumContentsLength. 1971 1972- QKeyEvent 1973 1974 * The text() of a QKeyEvent is filled with the control character if 1975 the user pressed the real Control key (Meta in Qt) and another key. 1976 This brings the behavior of Qt on Mac OS X more in line with Qt on 1977 other platforms. 1978 1979- QLibrary 1980 1981 * Removed the dependency on dlcompat for library loading and resolving 1982 in favor of native calls. This means that you can unload libraries 1983 on Mac OS X 10.4 or later, but not on 10.3 (since that uses dlcompat 1984 itself). 1985 1986- QMacStyle 1987 1988 * QMacStyle only uses HITheme for drawing now (no use of Appearance 1989 Manager). 1990 1991 * Fixed placement of text on buttons and group boxes for non-Latin 1992 locales. 1993 1994 * Fixed rendering of small and mini buttons. 1995 1996 * Attempt to be a bit smarter before changing a push button to bevel 1997 button when the size gets too small. 1998 1999 * Draws the focus ring for line edits when they are near the "top" of 2000 the widget hierarchy. 2001 2002 * Ensured that the tickmarks are drawn correctly. 2003 2004 * Implemented the standardIconImplementation() function. 2005 2006 * Fixed the look of line edits. 2007 2008 * "Colorless" controls now look better. 2009 2010 * Fixed the sort indicator. 2011 2012 * Improved the look of text controls, such as QTextEdit, to fit in 2013 better with the native style. 2014 2015- QMenu 2016 2017 * Popups no longer show up in Expose. 2018 2019 * Ensured that the proper PageUp and PageDown behavior are used. 2020 2021- QMenuBar 2022 2023 * Added support for explicit merging of items using QAction::MenuRole. 2024 2025 * Added support for localization of merged items. 2026 2027- QMessageBox 2028 2029 * A message box that is set to be window modal will automatically 2030 become a sheet. 2031 2032 * Improved the look of the icons used to fit in with the native style. 2033 2034- QPainter 2035 2036 * Fixed off-by-one error when drawing certain primitives. 2037 2038 * Fixed off-by-many error when drawing certain primitives using a 2039 scaling matrix. 2040 2041 * Fixed clipping so that setting an empty clip will clip away 2042 everything. 2043 2044 * Fixed changing between custom dash patterns. 2045 2046 * Added combinedMatrix() which contains both world and viewport/window 2047 transformations. 2048 2049 * Added the setOpacity() function. 2050 2051 * Added MiterJoins that are compliant with SVG miter joins. 2052 2053- QPainterPath 2054 2055 * Added the arcMoveTo() and setElementPosition() functions. 2056 2057- QPixmap 2058 2059 * Added functions to convert to/from a CGImageRef (for CoreGraphics 2060 interoperability). 2061 2062 * Fixed various Qt/Mac masking and alpha transparency issues. 2063 2064- QPrinter 2065 2066 * Made QPrinter objects resuable. 2067 2068- QProcess 2069 2070 * Always use UTF-8 encoding when passing commands. 2071 2072- QScrollBar 2073 2074 * Improved handling of the case where the scrollbar is to short to 2075 draw all its controls. 2076 2077- QTextEdit 2078 2079 * Improved the look of the widget to fit in with the native style. 2080 2081- QWidget 2082 2083 * All HIViewRefs inside Qt/Mac are created with the 2084 kWindowStandardHandlerAttribute. 2085 2086 * Added the ability to wrap a native HIViewRef with create(). 2087 2088 * Windows that have parents with the WindowStaysOnTopHint also get the 2089 WindowStaysOnTopHint. 2090 2091 2092Windows 2093------- 2094 2095- Ensured that widgets do not show themselves in a hover state if a popup 2096 has focus. 2097 2098- Fixed issues with rendering system icons on 16 bits-per-pixel displays. 2099 2100- Fixed issue where fonts or colors would be reset on the application 2101 whenever windows produced a WM_SETTINGSCHANGE event. 2102 2103- Fixed a bug with Japanese input methods. 2104 2105- Compile SQLite SQL plugin by default, as on all the other platforms. 2106 2107- Fixed build issue when not using Precompiled Headers (PCH). 2108 2109- Made Visual Studio compilers older than 2005 handle (NULL == p) 2110 statements, where p is of QPointer type. 2111 2112- Fixed HDC leak that could cause applications to slow down significantly. 2113 2114- Ensured that timers with the same ID are not skipped if they go to different 2115 HWNDs. 2116 2117- Improved MIME data handling 2118 2119 * Resolved an issue related to drag and drop of attachments from some 2120 applications. 2121 2122 * Resolved an issue where pasting HTML into some applications would 2123 include parts of the clipboard header. 2124 2125 * Improved support for drag and drop of Unicode text. 2126 2127 * Made it possible to set an arbitrary hotspot on the drag cursor on 2128 Windows 98/Me. 2129 2130- ActiveQt 2131 2132 * Fixed issues with the compilation of code generated by dumpcpp. 2133 2134 * Made ActiveQt controls behave better when inserted into Office 2135 applications. 2136 2137 * Ensured that slots and properties are generated for hidden functions and 2138 classes. 2139 2140 * Ensured that the quitOnLastWindowClosed property is disabled when 2141 QApplication runs an ActiveX server. 2142 2143 * Ensured that controls become active when the user clicks into a subwidget. 2144 2145 * Added support for CoClassAlias class information to give COM class a 2146 different name than the C++ class. 2147 2148- QAccessible 2149 2150 * Ensured that the application does not try to play a sound for 2151 accessibility updates when no sound is registered. 2152 2153- QAxBase 2154 2155 * Fixed potential issue with undefined types. 2156 2157- QDir 2158 2159 * Fixed bug where exists() would return true for a non-existent drive 2160 simply because the specified string used the correct syntax. 2161 2162 * Improved homePath() to work with Japanese user names. 2163 2164- QFileDialog 2165 2166 * Added support for relative file paths in native dialogs. 2167 2168 * Enabled setLabelText() to allow context menu entries to be changed. 2169 2170 * Ensured that users are denied entry into directories where they 2171 don't have execution permission. 2172 2173 * Disabled renaming and deleting actions for non-editable items. 2174 2175 * Added a message box asking the user to confirm when deleting files. 2176 2177- QFileInfo 2178 2179 * Fixed absoluteFilePath() to return a path that begins with the 2180 current drive label. 2181 2182- QGLWidget 2183 2184 * Fixed usage of GL/WGL extension function pointers. They are now 2185 correctly resolved within the context in which they are used. 2186 2187- QGLColormap 2188 2189 * Fixed cases where the colormap was not applied correctly. 2190 2191- QMenu 2192 2193 * Made it possible for popup menus to cover the task bar. 2194 2195- QPrinter 2196 2197 * Added support for printers that do not have a DEVMODE. 2198 2199 * Fixed a drawing bug in the PDF generator on Windows 98/Me. 2200 2201 * Made it possible to programmatically change the number of copies 2202 to be printed. 2203 2204 * Fixed possible crash when accessing non-existent printers. 2205 2206- QProcess 2207 2208 * Fixed lock-up when writing data to a dead child process. 2209 2210- QSettings 2211 2212 * Fixed bug causing byte arrays to be incorrectly stored on 2213 Win95/98/Me. 2214 2215 * Allow keys to contain HKEY_CLASSES_ROOT and HKEY_USERS to allow all 2216 registry keys to be read and prevent unintentional use of 2217 HKEY_LOCAL_MACHINE. 2218 2219 * Fall back to the local machine handle if a key does not start with a 2220 handle name. 2221 2222- QUdpSocket 2223 2224 * Introduced fixes for UDP broadcasting on Windows. 2225 2226- QWhatsThis 2227 2228 * Improved native appearance. 2229 2230- QWidget 2231 2232 * Top-level widgets now respect the closestAcceptableSize of their 2233 layouts. 2234 2235 * Ensured that getDC() always returns a valid HDC. 2236 2237- QWindowsStyle 2238 2239 * We no longer draw splitter handles in Windows style. This resolves 2240 an inconsistency with XP style, so that the two styles can use the 2241 same layout interchangeably. Note that it is fully possible to style 2242 splitter handles (if a custom style or handle is required) using 2243 style sheets. 2244 2245 * Disabled comboboxes now have the same background color as disabled 2246 line edits. 2247 2248- QWindowsXPStyle 2249 2250 * Made QPushButton look more native when pressed. 2251 2252 * Improved the look of checked tool buttons. 2253 2254 * Defined several values that are not present in MinGW's header files. 2255 2256 2257 2258**************************************************************************** 2259* Significant Documentation Changes * 2260**************************************************************************** 2261 2262 2263- Updated information about the mailing list to be used for porting issues 2264 (qt-interest). 2265 2266- Demos / Examples 2267 2268 * Added a new directory containing desktop examples and moved the 2269 Screenshot example into it. 2270 2271 * Added a new Chat client network example which uses QUdpSocket to 2272 broadcast on all QNetworkInterface's interfaces to discover its 2273 peers. 2274 2275 * The Spreadsheet demo now uses the QItemDelegate, QCompleter, and 2276 QDateTimeEdit with calendar popup. 2277 2278 * An OpenGL button is added to some of the demos to toggle usage of 2279 the OpenGL paint engine. 2280 2281 * Fixed crash resulting from incorrect painter usage in the Image 2282 Composition example 2283 2284 2285 2286**************************************************************************** 2287* Tools * 2288**************************************************************************** 2289 2290 2291Assistant 2292--------- 2293 2294- Middle clicking on links will open up new tabs. 2295 2296- Added "Find as you type" feature to search documentation pages. 2297 2298- Added "Sync with Table of Contents" feature to select the current page in 2299 the contents. 2300 2301- Fixed issue where activating a context menu over a link would cause the 2302 link to be activated. 2303 2304- Provides a default window title when not specified in a profile. 2305 2306- Fixed JPEG viewing support for static builds. 2307 2308- Fixed crash that could occur when opening Assistant with old and invalid 2309 settings. 2310 2311- Fixed display of Unicode text in the About dialog. 2312 2313 2314Designer 2315-------- 2316 2317- Added QWidget and the new widgets in this release to Designer's widget 2318 box. 2319 2320- Updated the dialog templates to use the new QDialogButtonBox class. 2321 2322- Backup files created by Designer no longer overwrite existing files. 2323 2324- Promoted widgets inherit the task menu items of the base class. 2325 2326- Enums are no longer ordered alphabetically in the property editor. 2327 2328- Fixed issue where shortcuts could be corrupted in certain situations. 2329 2330- Line endings in .ui files now match the standard line endings for the 2331 platform the files are created on. 2332 2333- Ensured that a warning is displayed whenever duplicate connections are 2334 made in the connections editor. 2335 2336- Added shortcuts for the "Bring to Front" and "Send to Back" form editor 2337 actions. 2338 2339- Added new 22 x 22 icons. 2340 2341- Fixed selection of dock widgets in loaded forms. 2342 2343- Made QWidget::windowOpacity a designable property. 2344 2345- Numerous improvements and fixes to the action and property editors. 2346 2347- Windows only 2348 2349 * The default mode is Docked Window. 2350 2351- Mac OS X only 2352 2353 * Preview of widgets is no longer modal. 2354 2355 * Passing really long relative paths into the resource will no longer 2356 cause a crash. 2357 2358 2359Linguist 2360-------- 2361 2362- Added a new "Check for place markers" validation feature. 2363 2364- Added the "Search And Translate" feature. 2365 2366- Added the "Batch translation" feature. 2367 2368- Added support for editing plural forms. 2369 2370- Extended the .ts file format to support target language, plural forms, 2371 source filename, and line numbers. 2372 2373- Added the "Translated Form Preview" feature. 2374 2375- Added placeholders for "hidden" whitespace (i.e., tabs and newlines) in 2376 the translation editor. 2377 2378 2379lupdate 2380------- 2381 2382- Added the -extensions command-line option in order to recursively scan 2383 through a large set of files with the specified extensions. 2384 2385- Made lupdate verbose by default (use -silent to obtain the old behavior). 2386 2387- Improved parsing of project files. 2388 2389- Fixed some issues related to parsing C++ source files. 2390 2391 2392lrelease 2393-------- 2394 2395- Made lrelease verbose by default (use -silent to obtain the old behavior). 2396 2397- Disabled .qm file compression by default (pass -compress to obtain the old 2398 behavior). 2399 2400 2401moc 2402--- 2403 2404- Fixed support for enums and flags defined in classes that are themselves 2405 declared in namespaces. 2406 2407- Added support for the -version and -help command line options (for 2408 consistency with the other tools). 2409 2410 2411rcc 2412--- 2413 2414- Added support for the -binary option to generate resources that are 2415 registered at run-time. 2416 2417 2418qmake 2419----- 2420 2421- Added support for an Objective C compiler on platforms that support it via 2422 OBJECTIVE_SOURCES. Additionally, Objective C precompiled headers are 2423 generated as necessary. 2424 2425- Added support for a qt.conf to allow easy changing of internal target 2426 directories in qmake. 2427 2428- Added support for the recursive switch (-r) in shadow builds. 2429 2430- Introduced QMAKE_CFLAGS_STATIC_LIB to allow modified flags to be 2431 passed to temporary files when compiling a static library. 2432 2433- Added a target.targets for extra qmake INSTALLS. The $files() function 2434 is now completely consistent with wildcard matching as specified to 2435 input file variables. 2436 2437- Added QMAKE_FUNC_* variables to EXTRA_COMPILERS for late evaluation 2438 of paths to be calculated at generation time. $$fromfile() will no 2439 longer parse input file multiple times. 2440 2441- Added support for -F arguments in LIBS line in the Xcode generator. 2442 2443- $$quote() has changed to only do an explicit quote, no escape sequences 2444 are expanded. A new function $$escape_expand() has been added to allow 2445 expansion of escape sequences: \n, \t, etc. 2446 2447- Added a $$QMAKE_HOST variable to express host information about the 2448 machine running qmake. 2449 2450- Added a $$replace() function. 2451 2452- Ensured that PWD is always consulted first when attempting to resolve an 2453 include for dependency analysis. 2454 2455- Added support for UTF-8 encoded text in .pro files. 2456 2457- Variables $$_PRO_FILE_ and $$_PRO_FILE_PWD_ added for features to detect 2458 where the .pro really lives. 2459 2460- Added QMAKE_FRAMEWORK_VERSION to override the version inside a .framework, 2461 though VERSION is still the default value. 2462 2463- Added support for custom bundle types on Mac OS X. 2464 2465- Added support for Mac OS X resources (.rsrc) in REZ_FILES. 2466 2467 2468qt3to4 2469------ 2470 2471- qt3to4 now appends to the log file instead of overwriting it. 2472 2473- Fixed one case where qt3to4 was inserting UNIX-style line endings on 2474 Windows. 2475 2476- Added the new Q3VGroupBox and Q3HGroupBox classes to ease porting. 2477 2478- Updated the porting rules for this release. 2479 2480 2481uic 2482--- 2483 2484- Added support for more variant types: QStringList, QRectF, QSizeF, 2485 QPointF, QUrl, QChar, qlonglong, and qulonglong. 2486 2487- Fixed code generated by uic for retranslating item view widgets so that 2488 the widgets are not cleared when they are retranslated. 2489 2490- Ensured that no code is generated to translate empty strings. 2491 2492 2493uic3 2494---- 2495 2496- Added line numbers to warnings. 2497 2498- Ensured that warnings show the objectName of the widget in question. 2499 2500- Added support for word wrapping in labels when converting files from uic3 2501 format. 2502 2503- Ensured that the default layouts are respected when converting files from 2504 uic3 format. 2505 2506- Ensured that double type properties are handled correctly. 2507