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