1Qt 3.0 Beta4 is not binary compatible with Beta3; any programs linked
2against Beta3 must be recompiled.
3
4Below you will find a description of general changes in the Qt
5Library and Qt Designer followed by a detailed list of changes in the
6API.
7
8
9The Qt Library
10========================================
11
12Documentation
13-------------
14
15The extensive revision of the documentation is almost complete.
16We have added new navigation options, including a shorter list
17of classes entitled Main Classes.
18
19Translations
20------------
21
22Qt now includes French and German translations of the Qt library, as
23well as a template for translating Qt. These files are found in the
24translations directory of Qt, in both .ts and .qm formats.
25
26Style Fixes
27-----------
28
29Qt 3.0.0 beta2 introduced a new QStyle API. This new API has changed
30between beta3 and beta4. These changes will affect both widget
31writers and style writers. The QStyle entry below explains what has
32changed.
33
34Beta4 also introduces some fixes for bugs introduced during the port
35to the new API in various widgets, notably QComboBox and QSlider.
36
37LiveConnect Plugin
38------------------
39
40A few bugs were fixed in the LiveConnect Plugin so that the grapher
41example works again on Windows.
42
43
44Qt Designer
45========================================
46
47 - General usability improvements and bug fixes, and improved file
48   and project handling.
49 - Updated designer manual to cover the .ui.h mechanism.
50 - New auto-indentation algorithm in the code editor.
51
52
53Qt Assistant
54========================================
55
56 - Added a Settings dialog and made more features customizable.
57 - Sessions are now saved and restored.
58 - A brief introduction to using Qt Assistant is now included.
59
60
61Qt Linguist
62========================================
63
64 - Phrase books are now provided in tools/linguist/phrasebooks.
65 - Added support for Qt Designer's .ui.h mechanism to lupdate.
66 - Support for a larger subset of .pro file syntax in lupdate and
67   lrelease.
68
69
70Qt Functions
71========================================
72
73QApplication
74------------
75
76 - Ignore drag-and-drop events for disabled widgets.
77 - Always send ChildRemoved events, even if no ChildInserted event
78   was sent.
79 - Mouse events for popup menus are now sent to event filters.
80
81QCanvasItem
82-----------
83
84 - The functions visible(), selected() and active() have been renamed
85   setVisible(), setSelected() and setActive().
86
87New functions:
88	bool isVisible() const;
89	bool isSelected() const;
90	bool isActive() const;
91
92Removed functions:
93	bool visible() const;
94	bool selected() const;
95	bool active() const;
96
97QCanvasText
98-----------
99
100 - Fixed alignment flags.
101
102QChar
103-----
104
105New function:
106	bool isSymbol() const;
107
108QCheckBox
109---------
110
111 - Fixed a bug in pixmap caching which could result in using the
112   wrong pixmap.
113
114QCheckListItem
115--------------
116
117 - After a mouse click, the list view ignores the following double
118   click as in Windows XP.
119
120QClipboard
121----------
122
123 - Made clipboard operations faster on X11.
124
125QColorDialog
126------------
127
128 - Never show scrollbars in the color array.
129
130QComboBox
131---------
132
133 - Comboboxes are now drawn correctly in all styles.
134 - Fixed bug with auto completion. There was undefined behavior with
135   non-editable comboboxes when changing focus.
136
137New function:
138	virtual void setCurrentText( const QString& );
139
140New property:
141	QString currentText
142
143QDataBrowser
144------------
145
146 - The setCursor() function is obsolete and will be removed for Qt 3
147   release due to the incompatibility with some compilers. Use
148   setSqlCursor() instead.
149
150QDataTable
151----------
152
153 - Dates and times in tables can now be displayed in different
154   display formats.
155 - The setCursor() function is obsolete and will be removed for Qt 3
156   release due to the incompatibility with some compilers. Use
157   setSqlCursor() instead.
158
159QDateEdit
160---------
161
162 - The default separator and the day-month-year order respect the
163   user's settings.
164 - Pressing the separator key now skips to the next section.
165 - Fixed a usability flaw related to some months being longer than
166   others.
167
168New functions:
169	QString separator() const;
170	virtual void setSeparator( const QString& s );
171
172QDateTime
173---------
174
175 - Always initialize the tm struct completely. This fixes a problem
176   on some versions of Unix.
177
178QDir
179----
180
181 - QDir::homeDirectory() now always returns an existing directory on
182   Windows.
183
184QDockWindows
185------------
186
187 - Fixed dockwindows created in non-dock areas.
188 - Fixed constructor if InDock and the parent is a QMainWindow.
189
190QDom...
191-------
192
193 - Fixes in the conversion of the DOM tree to a string.
194
195QDomNodeList
196------------
197
198 - Fixed a crash.
199
200QFileDialog
201-----------
202
203 - Select contents of the line edit at startup (if any) so that the
204   user can overwrite the provided file name right away.
205
206QFileInfo
207---------
208
209 - In adition to lastModified() and lastRead(), provide created().
210
211New function:
212	QDateTime created() const;
213
214QFont
215-----
216
217 - Provide more correct font metrics under X11.
218 - Worked around X11 limits on length of strings to draw and on
219   coordinate sizes.
220 - Fixed sone point vs. pixel size issues under X11.
221 - Added PreferAntialias and NoAntialias flags to StyleStrategy enum
222   type.
223
224QFtp
225----
226
227 - Fixed a QSocket bug that made QFtp crash if the connection was
228   refused.
229 - Fixed operationRename() and operationRemove().
230 - Set the right state when finished.
231
232QGIFFormat
233----------
234
235 - Support GIF files with broken logical screen size.
236
237QHeader
238-------
239
240 - Added support for '\n' in header labels.
241 - Improved placement of icon.
242
243QHttp
244-----
245
246 - If the status code of the reply is an error code, it is now also
247   reflected in the status of the network operation. The error
248   handling in general was improved.
249
250QImageIO
251--------
252
253 - Allow gamma correction to be set programmatically.
254
255New functions:
256	void setGamma( float gamma );
257	float gamma() const;
258
259QKeyEvent
260---------
261
262 - Worked around an X11 bug in isAutoRepeat().
263
264QKeySequence
265------------
266
267A new class that encapsulates a key sequence as used by accelerators.
268
269QLabel
270------
271
272 - Made the WordBreak alignment property work with rich text labels
273   in addition to plain text labels.
274
275QLayout
276-------
277
278 - Fixed crashes with deleting widgets managed by the layout.
279 - Fixed problems with reparenting widgets managed by the layout.
280 - Respect maximumHeight() of items in heightForWidth().
281
282QLibrary
283--------
284
285 - Plugins now return the version number, threading model and debug
286   vs. release mode of the Qt library used in ucm_initialize(). If
287   there is any kind of incompatibility, cancel the loading.
288
289QLineEdit
290---------
291
292 - Update the "edited" flag and the accessibility data better than
293   before.
294 - Fixed setMaxLength().
295 - Fixed context menu problem on Windows.
296
297New functions:
298	bool isUndoAvailable() const;
299	bool isRedoAvailable() const;
300
301QListViewItem
302-------------
303
304 - Fixed setVisible(TRUE) which triggered an update too soon.
305
306QMenuBar
307--------
308
309 - Cancel alt-activation of menubar on mouse press/release.
310 - On wheel events, all popup menus are now closed instead of hidden.
311   Hiding popup menus confused QMenuBar.
312
313QObject
314-------
315
316 - Have QObject dispatch events to customEvents().
317
318QPainter
319--------
320
321 - Renamed the enum type ClipMode to CoordinateMode. The enum values
322   ClipDevice and ClipPainter are now called CoordDevice and
323   CoordPainter.
324 - Fixed escaping of ampersand character, so "&&", "&&&", etc., now
325   work as they did in Qt 2.x.
326
327New functions:
328	void drawPixmap( const QRect& r, const QPixmap& pm );
329	void drawImage( const QRect& r, const QImage& img );
330
331QPicture
332--------
333
334 - Respect the size of a loaded SVG document.
335 - Solved a replay-transformed-picture problem.
336 - Fixed format version number.
337
338QPluginManager
339--------------
340
341 - Fixed crash when loading a plugin fails.
342
343QPopupMenu
344----------
345
346 - Custom menu items that are separators now see their size hint
347   respected.
348 - Fixed crash when drawing an empty popup menu.
349
350QPrinter
351--------
352
353 - Better printing in different resolutions under both Windows and
354   X11.
355 - Support for collation under Windows and X11.
356 - Correct bounding rectangles for texts in all printer modes.
357 - Fixed pixmap printing on Windows.
358 - Fixed PostScript font names for fonts with foundries.
359 - Support for PostScript printing of scaled images.
360
361New functions:
362	bool collateCopiesEnabled() const;
363	void setCollateCopiesEnabled( bool enable ) const;
364	bool collateCopies() const;
365	void setCollateCopies( bool on );
366	int winPageSize() const; /* Windows only */
367
368QProcess
369--------
370
371 - The function hangUp() was renamed to tryTerminate() to make the
372   purpose more clear. Furthermore, under Unix, the signal that is
373   sent was changed from SIGHUP to SIGTERM.
374 - The function kill() and the function tryTerminate() (formerly
375   hangUp()) were made slots.
376
377New slots:
378	void tryTerminate();
379	void kill();
380
381Removed functions:
382	void hangUp();
383	void kill();
384
385QProgressBar
386------------
387
388 - Draw the progress bar correctly with respect to the properties
389   "percentageVisible", "indicatorFollowsStyle" and
390   "centerIndicator".
391
392QPtrVector
393----------
394
395 - Support null items without triggering an assert.
396
397QPushButton
398-----------
399
400 - Fixed the sizeHint() of buttons with an icon.
401
402QRegExp
403-------
404
405 - Fixed a subtle bug in regular expressions mixing anchors and
406   alternation.
407
408QRegion
409-------
410
411 - Don't crash when creating a QRegion from an empty point array.
412
413QRichText
414---------
415
416 - Improved alignment support, including nested alignments.
417 - Improved table margin support.
418 - Improved page break algorithm.
419 - Do not eat '\n' in preformatted items.
420 - Do not draw the internal trailing space at the end of a paragraph.
421 - Fixed link underlining in table cells and other subdocuments.
422 - Use larger vertical margin between paragraphs.
423 - Display paragraph spacing even when printing.
424 - Support vertical table cell alignment.
425 - Fix for floating items and table cell size calculation.
426 - Improved allignment handling.
427 - Offset fixes for tabs.
428 - Better <div> support.
429 - Fixed <br> tag.
430 - Fix for the <center> tag and centering tables.
431 - Fixed &nbsp; and <nobr>.
432 - Fixed off-by-one bug in gotoWordLeft() and gotoWordRight().
433 - Better positioning of super- and subscripts.
434 - Faster printing of large tables by using a clipping rectangle.
435 - Improved high-resolution printing.
436 - Correct sizes for images when printing.
437 - Fixed list painting when printing.
438 - Use right background for printing.
439
440QScrollBar
441----------
442
443 - Made setValue() a slot.
444
445New slot:
446	void setValue( int );
447
448Removed function:
449	void setValue( int );
450
451QSettings
452---------
453
454 - Added support for QStringLists without requiring a distinct
455   separator.
456 - Added support for null strings, empty lists and null strings in
457   lists.
458 - Fixed bug with values ending with a backslash.
459 - On Unix, don't overwrite files if the user doesn't have permission.
460
461QSimpleRichText
462---------------
463
464 - Implemented vertical breaks and floating elememts.
465 - Fixed bug with borders and clipping in printing.
466 - Fixed bug in adjustSize() cache.
467
468QSizePolicy
469-----------
470
471 - Stretch factors were added to QSizePolicy.
472 - Added a new size policy: Ignored.
473
474New functions:
475	uint horStretch() const;
476	uint verStretch() const;
477	void setHorStretch( uchar sf );
478	void setVerStretch( uchar sf );
479
480QSpinBox
481--------
482
483New slot:
484	virtual void selectAll();
485
486QSqlDatabase
487------------
488
489 - QSqlDatabase now provides access to meta-data. Meta-data is stored
490   in two new classes, QSqlFieldInfo and QSqlRecordInfo. See the
491   class documentation for details.
492
493New Functions:
494	QSqlRecordInfo recordInfo ( const QString & tablename ) const
495	QSqlRecordInfo recordInfo ( const QSqlQuery & query ) const
496
497
498QSqlFieldInfo
499-------------
500
501A new class that stores meta data associated with a SQL field.
502
503QSqlRecordInfo
504--------------
505
506A new class that is keeping a set of QSqlFieldInfo objects.
507
508QStatusBar
509----------
510
511 - Don't cut off the bottom line of the border of the status bar.
512 - Respect maximumHeight() of items in the status bar.
513
514QString
515-------
516
517 - QString now provides section(), a function that parses simple
518   fields.
519 - The function similarityWith() has been removed from the API. If
520   you need it, write to qt-bugs@trolltech.com.
521
522New functions:
523	QString section( QChar sep, int start, int end,
524			 int flags = SectionDefault ) const;
525	QString section( char sep, int start, int end = 0xffffffff,
526			 int flags = SectionDefault ) const;
527	QString section( const char *substr, int start, int end = 0xffffffff,
528			 int flags = SectionDefault ) const;
529	QString section( QString substr, int start, int end = 0xffffffff,
530			 int flags = SectionDefault ) const;
531	QString section( const QRegExp &regxp, int start, int end = 0xffffffff,
532			 int flags = SectionDefault ) const;
533
534Removed function:
535	int similarityWith( const QString& target ) const;
536
537QStyle
538------
539
540 - Changed "void **" technique to QStyleOption technique. This
541   affects the interface of most of the QStyle member functions.
542   Please read the QStyle class documentation for details.
543
544QStyleOption
545------------
546
547A new class that encapsulates extra data sent to the style API.
548
549QTabBar
550-------
551
552 - The accelerators are now working correctly after changing a tab.
553
554QTable
555------
556
557 - Fixed crash related to popup menu and cell edition.
558 - Fixed not-drawing hidden cells.
559
560QTextCodec
561----------
562
563 - Added MIME names for codecs.
564 - Improved locale detection.
565 - Fixed the ISO 8859-6.8x (Arabic) font encoding.
566
567New function:
568	const char *mimeName() const;
569
570QTextStream
571-----------
572
573 - Fixed bug with stateful QTextEncoders.
574
575QTextEdit
576---------
577
578 - Respect disabling updates.
579 - Fixed link underlining in table cells and other subdocuments.
580 - Draw cursor on focus in.
581 - Emit cursorPositionChanged() where it previously was missing.
582 - Fixed sync().
583
584New functions:
585	bool isUndoAvailable() const;
586	bool isRedoAvailable() const;
587	bool isUndoRedoEnabled() const;
588	virtual void setUndoRedoEnabled( bool enabled ) const;
589
590New property:
591	bool undoRedoEnabled
592
593QThread
594-------
595
596 - Fixed QThread::sleep() on Unix.
597
598QTime
599-----
600
601 - fromString() with format Qt::ISODate now recognizes milliseconds
602   if they are specified.
603 - Make elapsed() a const function.
604
605QTimeEdit
606---------
607
608 - The default time separator respects the user's settings.
609 - Pressing the separator key now skips to the next section.
610
611New functions:
612	QString separator() const;
613	virtual void setSeparator( const QString& s );
614
615QTooltip
616--------
617
618 - Hide active tooltips when the user switches to another application.
619 - Fixed tooltips with Windows effects enabled.
620
621QUrl
622----
623
624 - Fixed password encoding.
625
626New function:
627	bool hasPort() const;
628
629QValidator
630----------
631
632 - Let QValidator, QIntValidator, QDoubleValidator and
633   QRegExpValidator have QObject parents rather than only QWidget
634   parents.
635
636QVariant
637--------
638
639 - Added QBitArray support.
640 - The QDateTime type now supports asDate() and asTime().
641 - The QByteArray type now supports toString().
642
643New functions:
644	QVariant( const QBitArray& );
645	const QBitArray toBitArray() const;
646	QBitArray& asBitArray();
647
648QWhatsThis
649----------
650
651 - Added support for hyperlinks in "What's This?" help windows.
652
653QWidget
654-------
655
656 - Fixed crashes related to LayoutHint events.
657
658QWizard
659-------
660
661 - Made removePage() behave as documented.
662 - Fixed back() so that it skips irrelevant pages like next().
663
664QWorkspace
665----------
666
667 - Make sure that the widget state is set before the first titlebar
668   painting is triggered.
669 - Use the right pixmap for titlebar.
670 - Respects widget flags better for titlebars in QCommonStyle.
671 - Fixed move and resize in the system menu bar of workspace
672   children.
673
674QXml
675----
676
677 - Made the "prefix" xmlns map to the namespace name
678   http://www.w3.org/2000/xmlns/.
679 - Fixed default namespaces.
680
681QXmlAttributes
682--------------
683
684 - Added count() as equivalent to length() to be consistent with Qt
685   conventions.
686
687New function:
688	int count() const;
689