Fixes a crash in QDoubleSpinBox
[qt-netbsd.git] / dist / changes-3.0.0-beta2
blob0d55b124b48652e79a867f7c6e2c6158c5d7c812
1 Qt 3.0 Beta2 is not binary compatible with Beta1, this means that any
2 programs linked with Beta1 must be recompiled.
4 Below you'll find a description of general changes in the Qt Library
5 and Qt Designer followed by a detailed list of changes in the
6 programming API.
9 The Qt Library
10 ========================================
12 Wacom Tablet Support
13 --------------------
15 Support for Wacom brand tablets has been introduced on Irix and
16 Windows.  These devices generate a QTabletEvent that can be handled by
17 QWidget::tabletEvent(). The QTabletEvent holds information about
18 pressure, X and Y tilt, and which device is being used (e.g. stylus or
19 eraser).  Note: at present, there are known issues with the Windows
20 version.
22 Documentation
23 -------------
25 Overall enhancements including fixed typos and the addition of several
26 images and code examples.
28 QStyle (and derived classes)
29 ----------------------------
31 The style API has been completely rewritten in Qt 3.0. The main reason
32 for doing this was because it was getting inconsistent, hard to
33 maintain and extend. Most of the old 2.x functions have been replaced
34 by a small set of more general functions. The new API is:
36  - much more consistent
37  - less work have to be done to create custom styles
38  - easier to extend and maintain binary compatibility
40 The old API relied upon a host of virtual functions that were
41 re-implemented in the different styles. These functions were used to
42 draw parts of, or entire widgets. The new API uses a small set of more
43 general functions. Enumerated values are passed as parameters to these
44 functions to specify which parts of a control or widget is to be drawn
45 (e.g drawPrimitive( PE_ArrowUp, ...)).
47 To create custom styles with the new API, simply subclass from the
48 preferred base style and re-implement the function that draws the part
49 of the widget you want to change. If you for example want to change
50 the look of the arrows that are used in QWindowsStyle, subclass from
51 it and re-implement the drawPrimitive() function. Your drawPrimitive()
52 function may look something like this:
54 void QMyStyle::drawPrimitive( PrimitiveElement pe, ... )
56         switch( pe ) {
57         case PE_ArrowUp:
58                 // draw up arrow
59                 break;
60         case PE_ArrowDown:
61                 // draw down arrow
62                 break;
63         default:
64                 // let the base class handle the rest of the drawing
65                 QWindowsStyle::drawPrimitive( ... );
66                 break;
67         }
70 For more information about the new style API, please read the QStyle
71 documentation.
74 Qt Designer
75 ========================================
77  - Improved indentation algorithm for the code editor.
78  - Allow multiple code editors to be open. This makes copy and paste
79    much easier.
82 Qt Functions
83 ========================================
85 QCanvas
86 -------
88  - QCanvas does not react on windowActivationChange() anymore.
89  - 64 bit cleanup.
91 QChar
92 -----
94  - The Unicode character is stored host ordered now. Main advantage is
95    that you can directly cast a QChar array to an array of unsigned shorts.
97 QCom
98 ----
100  - Introduced QS_OK, QS_FALSE, QE_NOINTERFACE, QE_INVALIDARG and
101    QE_NOIMPL as possible QRESULT return values.
103 QDate, QTime and QDateTime
104 --------------------------
106  - New function for outputting free form strings and new DateFormat
107    enum Qt::LocalDate.
109 New functions:
110         QString toString( const QString& format );
112 QDir
113 ----
115  - entryInfoList() returns 0 for non-existing directories on Windows
116    as the documentation claims and the Unix version already does.
117  - On Windows, QDir tries a more failsafe way to determine the home
118    directory.
120 QDom
121 ----
123  - QDomNode::hasChildNodes() now works as documented.
124  - QDomDocument::toString() includes now namespaces in its output.
125  - QDomDocument::QDomDocument() constructor now allows adding children
126    to the document.
128 QFileDialog
129 -----------
131  - Various fixes in file type filter and handling of file names and
132  directories.
134 QEvent
135 ------
137  - New event type DeferredDelete. See QObject changes below.
142  - Fix for Irix in respect of installing colormaps.
143  - Swapped arguments of QGLColormap::setEntries() in order to be able
144    to use a meaningful default argument.
146 New class:
147         QGLColormap - class for manipulating colormaps in GL index mode.
149 QGridView
150 ---------
152 A new class that provides an abstract base for fixed-size grids.
154 QIconSet
155 --------
157 New function:
158         void clearGenerated();
160 QImage
161 ------
163  - Handlers for image formats can be dynamically loaded as a plug-in by
164  using the QImageFormatInterface.
166 QLabel
167 ------
169  - setIndent() behaves like documented.
171 QLineEdit
172 ---------
174 New function:
175         int characterAt( int xpos, QChar *chr ) const;
177 QLibrary
178 --------
180 Enabled plug-in loading with static Qt library (Windows).
182 QMovie
183 ------
185  - Does pixmap caching now. Reduces load e.g. on the X Server in the
186  case of animated gifs.
188 QObject
189 -------
191  - Added a deferredDelete() function that will cause the object to
192  delete itself once the event loop is entered again.
194  - A second type of destroyed signal - one that passes a pointer to
195  the destroyed object as a parameter - will be emitted in QObject's
196  destructor.
198 New signal:
199         void destroyed( QObject* obj );
201 New slot:
202         void deferredDelete();
204 QPainter
205 --------
207  - So far clipping had always been done in the device coordinate
208    system. The newly introduced ClipMode allows clipping regions to be
209    set via setClipRect() and setClipRegion() in painter coordinates.
211 New enum:
212         enum ClipMode { ClipDevice, ClipPainter };
214 Extended functions:
215         QRegion clipRegion( ClipMode = ClipDevice ) const;
216         void setClipRect( const QRect &, ClipMode = ClipDevice )
217         void setClipRect( int x, int y, int w, int h, ClipMode = ClipDevice );
218         void setClipRegion( const QRegion &, ClipMode = ClipDevice );
220 QPrintDialog
221 ------------
223  - Allow overriding the default print dialog. This way it's possible
224    to better cope with the variety of existing print systems (API not
225    finalized, yet).
226  - The dialog reads current QPrinter on every invocation now.
228 New functions:
229         static void setGlobalPrintDialog( QPrintDialog * );
230         virtual bool setupPrinters ( QListView *printers );
232 QPrinter
233 --------
235  - X11 version only: Introduced Qt settings switch 'embedFonts' that
236    allows disabling font embedding to reduce size of PostScript output.
238 QProcess
239 --------
241  - Added function to retrieve the pid (Unix) or PROCESS_INFORMATION
242    (Windows) from a running process.
243  - Extra parameter for environment settings in start() and launch()
244    functions.
246 New/extended functions:
247         PID processIdentifier();
248         virtual bool start( QStringList *env=0 );
249         virtual bool launch( const QString& buf, QStringList *env=0  );
250         virtual bool launch( const QByteArray& buf, QStringList *env=0  );
252 New signal:
253         void launchFinished();
255 QServerSocket
256 -------------
258  - Set the SO_REUSEADDR option so that the server can be restarted.
260 QSocket
261 -------
263  - Make deletion of QSocket instances safe if it is in response to a
264    signal emitted by the object itself.
266 SocketDevice
267 ------------
269  - Optional boolean parameter to be able to distinguish between
270    timeout and connection closed by peer when waitForMore() returns.
272 Extended functions:
273         int waitForMore( int msecs, bool *timeout=0 ) const;
275 QStyleSheet
276 -----------
278  - Added helper function that escapes HTML meta-characters.
280 New function:
281         QString escape( const QString& plain);
283 QSql
284 ----
286  - The source of the SQL driver plug-ins have been moved to
287    $QTDIR/plugins/src/sqldrivers/.
288  - The postgres driver checks the version number of the server. So there is
289    no need for different drivers: QPSQL6 no longer exists -- use QPSQL7
290    instead.
291  - Postgres driver supports now 3 PostgreSQL back ends: 6.x, 7.0.x and 7.1.x
292  - Better handling of errors coming from the database.
293  - SQL driver for Microsoft SQL Server and Sybase Adaptive Server (TDS).
294  - Added caching for forward-only cursors.
295  - Avoid crashes on the unloading of SQL plugins that occurred on some
296    platforms.
297  - QSqlResults can be forward only to improve performance
298    (QSqlResult::setForwardOnly()).
299  - QSqlDatabase passes the port number to the SQL driver.
301 QTable
302 ------
304  - No longer calls processEvents() in columnWidthChanged() and
305    rowHeightChanged() in order to avoid any side effects.
306  - Ensure that mousePressEvent doesn't emit contextMenuRequested(),
307    unless it is called from the contextMenu event handler.
308  - For more useful subclassing the new functions listed below have
309    been added.
311 New functions:
312         bool isEditing() const;
313         EditMode editMode() const;
314         int currEditRow() const;
315         int currEditCol() const;
317 QTextCodec
318 ----------
320  - Fixes for characters in the 0x80..0xff range.
322 QTextEdit
323 ---------
325  - The rich text engine has seen many internal improvements and
326    additions to the QTextEdit class.
328 New functions:
329         virtual void scrollToBottom();
330         virtual void removeSelection( int selNum = 0 );
331         virtual bool getParagraphFormat(...);
332         virtual void insertParagraph( const QString &text, int para );
333         virtual void removeParagraph( int para );
334         virtual void insertAt( const QString &text, int para, int index );
335         QRect paragraphRect( int para ) const;
336         int paragraphAt( const QPoint &pos ) const;
337         int charAt( const QPoint &pos, int *para ) const;
338         
339 QUrlOperator
340 ------------
342  - More precise error messages.
344 QWidget
345 -------
347  - Added a read-only property containing the widget's background brush.
349 New function:
350         virtual const QBrush& backgroundBrush() const;
352 QWMatrix
353 --------
355  - New functions for mapping of geometric elements via matrix
356    multiplication semantics.
358 New functions:
359         QRect mapRect( const QRect & );
360         QPoint operator * (const QPoint & ) const;
361         QRegion operator * (const QRect & ) const;
362         QRegion operator * (const QRegion & ) const;
363         QPointArray operator *  ( const QPointArray &a ) const;