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 ***************************************