Further fixes to file size handling on Windows with fd and FILE*
[qt-netbsd.git] / dist / changes-3.2.0-b1
blobf54433049c70bf363a67ae81ba44cac0571fb27f
2 Qt 3.2 introduces new features as well as many improvements over the
3 3.1.x series. This file gives an overview of the main changes since
4 version 3.1.2.  For more details, see the online documentation which
5 is included in this distribution. The documentation is also available
6 at http://qt.nokia.com/doc/
8 The Qt version 3.2 series is binary compatible with the 3.1.x series.
9 Applications compiled for 3.1 will continue to run with 3.2.
11 ****************************************************************************
12 *                           General                                        *
13 ****************************************************************************
16 Qt library
17 ----------
19 New classes have been added to the Qt Library including a
20 class to add splash screens to applications (QSplashScreen), a toolbox
21 widget that provides a column of tabbed widgets (QToolBox), and a
22 class to manage per-thread data storage (QThreadStorage).
24 The SQL module received a fair bit of attention this time. The most
25 notable improvements include a native IBM DB2 driver, complete support
26 for stored procedures including the possibility to access
27 out-parameters, and native support for 64 bit fields without having to
28 convert to or from strings. We also added support for setting
29 connection parameters. This way you can, for example, conveniently
30 open an SSL connection to a MySQL or PostgreSQL database. If you need
31 even more customization, e.g. for an Oracle database, you can set up
32 the connection yourself and instantiate a Qt driver object on top of
33 it. An extended SQL cursor class has been added that makes it more
34 convenient to display result sets from general SQL queries
35 (QSqlSelectCursor). In addition, you can add custom database drivers
36 without compiling them as plugins (see
37 QSqlDatabase::registerSqlDriver()).
39 QLineEdit, the one-line text editor, now supports validation input
40 masks. The feature complements the previous QValidator concept and
41 allows e.g. restriction of input to the IP address format (mask
42 "990.990.990.990;_"), or to ISO date format (mask "0000-90-90;0").
44 Qt's unicode code support has been extended. Most notably, full
45 support for Indic scripts has been added, covering writing systems
46 such as Devanagari, Tamil and Bengali. The group of right to left
47 writing systems has been extended with support for Syriac. Both
48 improvements are available on both Windows with Uniscribe installed,
49 and on Unix/X11 when using XFT with OpenType fonts.
51 All tool classes that support STL-like iterators with begin() and
52 end(), contain two extra functions constBegin() and constEnd(). The
53 const versions always return const iterators, and thus can be a little
54 bit faster with Qt's implicitly shared containers.
56 QPainter's complex drawText() function has been highly
57 optimized. Despite its support for complex unicode scripts, it now
58 performs better than its less unicode-capable counterpart in Qt 2.3.
60 QPixmap now supports pixmaps with alpha channel (semi transparency) on
61 all Windows versions except Windows 95 and Windows NT.
63 The print dialog now supports "selection" as a print range as well as
64 the possibility to enable/disable all different printer options
65 individually.
67 Many classes were improved; see the detailed overview that follows.
69 Qt Motif Extension
70 ------------------
72 Dialog handling has matured and has been extended since the
73 extension's introduction in Qt 3.1.  The documentation and code
74 examples have been improved, including a walkthrough that covers the
75 complete migration of a real-world Motif example to Qt. The process
76 contains four intermediate steps where the application utilizes both
77 toolkits.
79 ActiveQt Extension
80 ------------------
82 Type handling has been extended on both the container and the server
83 side. The new supported types are byte arrays and 64bit integers. The
84 QAxServer module supports QObject subclasses as return and parameter
85 types of slots, and allows error reporting through COM exceptions.
86 The Designer integration has been extended to support property dialogs
87 implemented by the control server.
89 Qt Designer
90 -----------
92 The popup menu editor has been rewritten. The new editor provides the
93 the ability to add, edit and remove menus and menu items directly in
94 the menubar and in the popup menu. Navigation and editing can be done
95 using either the mouse or the keyboard.
97 The new QWidgetContainerPlugin class provides support for complex
98 custom container widgets in Designer, such as the custom tab widget,
99 etc.
101 The property editor now allows editing of properties with or'd values
102 (sets).
104 Designer also supports the new QToolBox widget in a similar fashion to
105 QTabWidget, etc.
107 Qt Assistant
108 ------------
110 Profiles have been introduced to allow applications to extend the use
111 of Qt Assistant as a help system. Profiles describe the documentation
112 to use so that only application specific documentation will be
113 referenced in an end user installation. Profiles also allow some
114 customization of the look in Qt Assistant. For detailed information,
115 see the helpdemo example in $QTDIR/examples/helpdemo.
117 Profiles replace the content files and categories system. The
118 following command line options are removed since they no longer serve
119 any purpose: addContentFile, removeContentFile, category, and
120 disableFirstRun.
122 Qt Assistant has multiple tabs for browsing, therefore enabling
123 multiple pages to be browsed without opening a new window.
125 It is possible to specify a default home page.
127 It is possible to specify a PDF reader so that urls to PDF files can
128 be opened from Qt Assistant.
130 ****************************************************************************
131 *                          Library                                         *
132 ****************************************************************************
134 - QAction / QActionGroup
135         Simplified constructors so that it is no longer necessary to
136         specify texts for buttons and menu items separately.
137         For action groups, we fixed the enable/disable behavior. If
138         an action inside an action group is explicitly disabled, it is
139         no longer implicitly enabled together with the group.
140         This is identical to enabling/disabling widgets and their
141         children.
143 - QApplication
144         Added the aboutQt() slot for convenience.
146 - QAssistantClient
147         Added the new function, setArguments(), that invokes Qt
148         Assistant in different modes.
150 - QAxBase
151         Added the new function, asVariant(), that passes a COM
152         object through dynamicCall().
154 - QAxBindable
155         Added the new function, reportError(), that sends error
156         information to the ActiveX client.
158 - QColor
159         Added the new static function, colorNames(), that retrieves a
160         list of all color names known to Qt.
162 - QDeepCopy
163         Now also supports QDir, QFileInfo, and QStringList.
165 - QDom
166         Now has long and ulong support for setAttribute() and
167         setAttributeNS().
169 - QFont
170         Added the new properties: stretch and overline. Added the new
171         function, resolve(), that copies unspecified attributes from
172         one font to another.
174 - QFontDataBase
175         Added a new overload for families() that restricts the
176         returned list to fonts supporting a specific QFont::Script,
177         e.g. QFont::Greek, QFont::Devanagari or QFont::Arabic.
179 - QFontInfo / QFontMetrics
180         Added new constructors that force the info and metrics objects
181         to use a given QFont::Script.
183 - QGLWidget
184         Added a new constructor that takes a QGLContext
185         parameter. Makes the undocumented setContext() obsolete.
187 - QHeader
188         Added getters for the sort indicator (sortIndicatorSection()
189         and sortIndicatorOrder() ).
191 - QImage
192         Added a new overload for save() that writes to a given
193         QIODevice*.
195 - QListView
196         Added tristate support to check list items
197         (QCheckListItem::setTristate()). Added the new function,
198         setSelectionAnchor(), to set the list view's selection anchor
199         explicitly.
201 - QLineEdit
202         Added input masks: setInputMask(), inputMask(), and
203         hasAcceptableInput().
205 - QMessageBox
206         Added the new static function, question(), that complements
207         the existing information(), warning() and fatal() functions.
209 - QMotifDialog [Qt Motif Extension]
210         Now has two distinct modes of operation: 1) it allows a Motif
211         dialog to have a Qt parent, and 2) it allows a Qt dialog to have
212         a Motif parent.
214 - QPixmapCache
215         Added the new function, remove(), to explicitly remove a
216         pixmap from the cache.
218 - QPrinter
219         Added the new functions: setPrintRange(), printRange(),
220         setOptionEnabled(), and optionEnabled(). For Windows only,
221         added the new function, setWinPageSize(), that allows setting
222         DEVMODE.dmPaperSize directly.
224 - QPtrList
225         Added STL-like iterators with begin(), end(), and erase().
227 - QScrollBar
228         Maintains a user defined size policy when the direction
229         changes.
231 - QSplashScreen [new]
232         This new widget class provides a splash screen to be shown
233         during application startup.
235 - QSplitter
236         Added the new properties: opaqueResize, childrenCollapsible,
237         and handleWidth.
239 - QSqlError
240         Added a couple of convenience functions: text(), which returns
241         the concatenated database and driver texts. showMessage(),
242         which will pop up a QMessageBox with the text that text()
243         returns.
245 - QSqlQuery
246         Added overloads for the bindValue() call which makes it
247         possible to specifiy what role a bound value should have: In,
248         Out or InOut.
250 - QSqlSelectCursor [new]
251         This new QSqlCursor subclass provides browsing of general SQL
252         SELECT statements.
254 - QString
255         Added 64 bit support. Added the new functions: multiArg(),
256         reserve(), capacity(), squeeze(). Added case insensitive
257         overloads for startsWith() and endsWidth().
259 - QStringList
260         Added the new function gres().
262 - QStyle
263         Added support for toolbox, header, MDI frame, table grid line
264         color, line edit password character, and message box question.
266 - QSyntaxHighlighter
267         Added the new function, currentParagraph().
269 - QTabWidget
270         Added support for custom widgets to be placed beside
271         the tab bar: setCornerWidget() and cornerWidget().
273 - QTextEdit
274         In Log mode, added the new functions: setMaxLogLines() and
275         maxLogLines().
277 - QThreadStorage [new]
278         This new tool class provides per-thread data storage, also
279         referred to as thread local storage or TLS.
281 - QToolBox [new]
282         This new widget class provides a column of tabbed widgets, one
283         above the other, with the current page displayed below the
284         current tab.
286 - QVariant
287         Added support for LongLong and ULongLong.
289 - QWidget
290         Added a new widget flag, WNoAutoErase, that combines the now
291         obsolete WResizeNoErase and WRepaintNoErase flags.
293 - QWidgetContainerPlugin [new]
294         This new plugin class complements QWidgetPlugin for custom
295         container widgets, i.e. widgets that can host child
296         widgets.