Update spec to build Qt 5.0
[profile/ivi/qtbase.git] / dist / changes-3.1.0
1 Qt 3.1 introduces many significant new features and many improvements
2 over the 3.0.x series. This file provides an overview of the main
3 changes since version 3.0.x. For further details see the online
4 documentation which is included in this distribution, and also
5 available at http://qt.nokia.com/doc/.
6
7 The Qt version 3.1 series is binary compatible with the 3.0.x series:
8 applications compiled for 3.0 will continue to run with 3.1.
9
10
11 ****************************************************************************
12 *                                 General                                  *
13 ****************************************************************************
14
15 Qt Script for Applications
16 --------------------------
17 Qt 3.1 is the first Qt release that can be used with Qt Script for
18 Applications (QSA). QSA provides a scripting engine, an IDE for
19 creating and editing scripts and script forms, and bindings to the Qt
20 API. Script-enabling a Qt application is not difficult and the IDE
21 makes it easy for resellers and end-users to write their own scripts.
22 QSA is due for release after Qt 3.1.
23
24
25 Qt Designer
26 -----------
27 Qt Designer, the visual GUI builder, has undergone several usability
28 improvements. A new dialog for creating and editing signals and slots
29 connections has been created: it is much easier to use and much faster
30 for setting up multiple connections. The widgets are now presented in
31 an easy-to-use toolbox rather than in toolbars (although you can still
32 have the toolbars if you want). The property editor now handles common
33 properties in multiple widgets simultaneously. By popular demand,
34 WYSIWYG support for QWidgetStack has been added. Rich text is now
35 supported with a rich text editor. And the code editor can be used for
36 ordinary member functions as well as for slots.
37
38
39 Qt Assistant
40 ------------
41 Qt Assistant, the Qt documentation browser, can now be used with
42 custom documentation sets. This new functionality combined with the
43 new QAssistantClient class means that you can use Qt Assistant as a
44 help browser for your own applications. Qt Assistant has also been
45 enhanced by the addition of a fast full text search engine.
46
47
48 Motif
49 -----
50 The general industry-wide move away from Motif is leaving more and
51 more companies in need of a migration solution. But converting large
52 legacy applications in one step is often impractical. To minimize
53 risks and to manage the workload companies often want to port code on
54 a module by module basis. Qt 3.1 includeds a completely new Motif
55 module that supports hybrid applications in which Qt code and Motif
56 code coexist. (This obsoletes the earlier rudimentary Qt Xt/Motif
57 extension.)
58
59
60 ActiveX
61 -------
62 With the release of Qt 3.1, customers who use Qt for Microsoft Windows
63 development can now use Qt with ActiveX. The new ActiveQt module
64 provides a simple API for COM and ActiveX. The module can be used to
65 create applications which host ActiveX controls, and also to create
66 applications that serve ActiveX controls (e.g. Internet Explorer
67 plugins).
68
69
70 Qt/Mac
71 ------
72 The introduction of Qt/Mac, a Mac OS X port of Qt, with Qt 3.0 has
73 proved a great success. This port has undergone many improvements in
74 Qt 3.1, especially with respect to Appearance Manager, anti-aliased
75 text and user settings. The Qt OpenGL support is greatly improved, and
76 uses the hardware-accelerated drivers.
77
78
79 Qt/Embedded
80 -----------
81 Graphics, mouse and keyboard drivers can now be compiled as plugins.
82
83
84 Qt library
85 ----------
86 In addition to the new additions and enhancements referred to above,
87 as with all major Qt releases, Qt 3.1 includes hundreds of
88 improvements in the existing class library. Here is a brief summary of
89 the most significant changes:
90
91 - QTextEdit has a new text format: LogText. This is a performance and
92   memory optimized format especially designed for the fast display of
93   large amounts of text. The format supports basic highlighting,
94   including bold and colored text.
95
96 - The new QSyntaxHighlighter class makes it both easy and efficient to
97   add syntax highlighting capabilities to a QTextEdit.
98
99 - QHttp and QFtp in earlier Qt's were implementations of the
100   QNetworkProtocol. Both have been extended to stand in their own
101   right. If you missed some flexibility in the network protocol
102   abstractions of earlier Qt's, the new QHttp and QFtp classes should
103   provide the solution.
104
105 - QAccel, used to handle keyboard shortcuts, now gracefully copes with
106   shortcut clashes. If a clash occurs, a new signal,
107   activatedAmbiguously(), is emitted. Classes that use QAccel, like
108   QButton's subclasses and QPopupMenu, make use of this new
109   functionality. Futhermore QAccel can now handle multi-key sequences,
110   for example, Ctrl+X,Ctrl+F.
111
112 - QClipboard has been extended to simplify data exchange between
113   programs.
114
115 - Thread support: almost all methods in the tools classes have been
116   made reentrant. QApplication::postEvent() and a few other methods
117   are now thread-safe if Qt is compiled as a multi-threaded library.
118   (The documentation now states if a class or function is thread-safe
119   or reentrant.)
120
121 - A QMutexLocker class has been added to simplify the locking and
122   unlocking of mutexes.
123
124 - Input methods: A selectionLength() function has been added to
125   QIMEvent. Japanese compositions are now handled correctly. Support
126   for AIMM based input methods (those working on non-Asian versions of
127   Win95/98/Me) has been added.
128
129 - Large File support: Qt's internals have been modified to support
130   Large Files (> 2GB). QFileDialog will now correctly display and
131   select large files.
132
133 - SQL module: Support for prepared query execution and value binding
134   has been added. Among other benefits, this makes it possible to
135   write large BLOBs (> 2 KB) to Oracle databases, and to write Unicode
136   strings to SQL Server databases.
137
138 - Support for XIM on Solaris.
139
140 Build process
141 -------------
142 The build process has been improved:
143
144 - The configure script does not need QTDIR to be set anymore.
145
146 - Improved support for building Qt on MSVC.NET.
147
148
149 ****************************************************************************
150 *                          Library                                         *
151 ****************************************************************************
152
153 - QAccel:
154         Corrected illegal accelerator state when using multiple
155         keysequences. (Resulted in no accelerator being triggered when
156         there's a partial match). Only triggers on enabled
157         accelerators and their enabled items. Eats all keys in a
158         keysequence, not just the first and last.
159
160 - QCString:
161         Speed-optimized replace().
162
163 - QDataStream:
164         Applies to printable data streams only: If the version number
165         of the device is less than 4, use the same streaming format
166         that was used in Qt 2.3 and earlier.
167
168 - QDataTable:
169         Respect read-only columns. Make it possible to swap columns.
170
171 - QDockWindow:
172         Added a standard widget constructor (taking a QWidget *parent,
173         const char *name and WFlags). Improved docking behavior.
174
175 - QFileDialog:
176         Windows only: make Qt's filedialog work properly with network
177         paths.
178
179 - QFontMetrics:
180         Windows only: Fixed QFontMetrics::boundingRect( QChar c ) to
181         work for non-TrueType fonts.
182
183 - QHeader:
184         Optimized the sectionSizeHint() calculation, which in turn 
185         speeds up all QHeader size/label calculations.
186
187 - QIconFactory:
188         Avoid infinite loops when recursively calling
189         QPixmap::pixmap().
190
191 - QIconView:
192         Fixed navigation and selection with arrow keys. Some speedups
193         when repainting.
194
195 - QKeySequence:
196         Treat Unicode characters in string defined sequences
197         correctly. So, now letters like Æ, Ø and Å should work as
198         accelerators, even through translation files.
199
200 - QLayout:
201         alignmentRect() respects the layout's maximum size.
202
203 - QLineEdit:
204         Added a lostFocus() signal. Double-clicking only uses spaces
205         as word bounderies for the selection now, not dots, commas,
206         etc. Support double-click+mousemove selection.
207
208 - QListBox:
209         Fixed the item which is passed into the contextMenuRequested()
210         signal (this was sometimes wrong). Don't select items that are
211         not selectable.
212
213 - QListView:
214         Shift selection in Extended mode now follows Windows
215         Shift-selection standard. Erase empty area when drawing
216         listviews without columns. Only drops on drop-enabled items
217         that accept drops.
218
219 - QListViewItem:
220         Optimized size claculation for multi-line items.
221
222 - QMainWindow:
223         Base the minimumSizeHint() on the sizeHint()s of the left hand
224         dock area (instead of the minimumSize()).
225
226 - QMenuBar:
227         Fixed broken Alt release detection. Fixed flickering. Fixed
228         empty menubars resizing properly.
229
230 - QObject:
231         Fixed return value of disconnect(). Fixed disconnect()ing
232         SIGNALs from SIGNALs and disconnect()ing multiple SLOTs with
233         the same name from a SIGNAL.
234
235 - QProcess:
236         Unix only: Don't eat the file descriptors if a lot of
237         processes (with short runtimes) are started immediately after
238         each other.
239
240 - QPSQLDriver:
241         Make the driver compile with the standard PostgreSQL source
242         distribution under Windows. Better handling of network,
243         datetime and geometrical datatypes.
244
245 - QRegion:
246         Fixed setRects() to calculate the bounding rectangle
247         correctly.
248
249 - QScrollView:
250         Doesn't reposition the view when the user is scrolling the
251         view.
252
253 - QSpinBox:
254         Fixed setValue() so that any not-yet-interpreted input is
255         ignored when setting a new value.
256
257 - QString:
258         Support QTextCodec::codecForCStrings(). Support
259         std::string<==>QString conversion when STL support is on.
260
261 - QSyntaxHighlighter:
262         Added function rehighlight(). Improved internals to be more
263         efficient (less calls to highlightParagraph() necessary).
264
265 - QTable:
266         Fixed Tab/BackTab handling to always work. Fixed
267         setColumnLabels() and setRowLabels().
268
269 - QTableItem (and subclasses):
270         Now supports global struts. (See QApplication::globalStrut().)
271
272 - QTDSDriver:
273         Added support for binary datatypes.
274
275 - QTextCodec:
276         Added QTextCodec::codecForCStrings and QTextCodec::codecForTr.
277
278 - QTextEdit:
279         Fixed a painting error which resulted in areas of the textedit
280         not being erased correctly. Make sure repainting is done after
281         changing the underline-links setting. Renamed 'allowTabs'
282         property to 'tabChangesFocus' (inverted value). Added a new
283         property 'autoFormatting'. When exporting HTML also quote
284         quotes. Fixed a background erasing bug which messed up the
285         view.
286
287 - QUrl:
288         Recognize Windows drive letters not only in the form of "c:/"
289         but also in the form "c:" (without the '/').
290
291 - QWidget:
292         Fixed some visibility issues.
293
294 ****************************************************************************
295 *                          Qt Designer                                     *
296 ****************************************************************************
297
298 - Now displays the classname of "gray box" custom widgets in the gray
299   box on the form.
300
301 - Accept tildes (~) in the project settings.
302
303 - A new command line tool conv2ui (in qt/tools/designer/tools) has
304   been added, to convert dialog description files from different file
305   formats to .ui files without the need to invoke Qt Designer. This
306   tool uses the same plugins as Qt Designer for loading other dialog
307   description files.
308
309 - An import filter for .kdevdlg files has been added.
310
311 - Actions in the action editor are now sortable.
312
313 - Improved usability of more dialogs (in-place renaming, drag'n'drop,
314   etc.)
315
316 - Preserve creation order of forward declarations, variables, etc.
317
318 - Save comments for actions.
319
320 - uic: Fixed generating code for QStringList properties.
321
322 ****************************************************************************
323 *                          Qt Assistant                                    *
324 ****************************************************************************
325
326 - Fixed some accelerator conflicts.
327
328 ****************************************************************************
329 *                          Qt Linguist                                     *
330 ****************************************************************************
331
332 - Handle trailing backslash in strings correctly in lupdate.
333
334 ******************************** END ***************************************