Here is a list of user-visible changes in Qt from 1.40 to 1.41

QT is now available as a DLL on Windows.

Many bugfixes have been added.  The Windows keys are supported on X11,
and the file dialog has been improved a little.

Drag and drop has been considerably improved, both on Windows and X11.

QPrinter now knows many more paper sizes.

It now possible to create masked (nonrectangular) widgets.

QScrollBar now supports insanely big ranges.

QSlider now supports page step as well as line step.

****************************************************************************
* 			     New classes				   *
****************************************************************************

None.

****************************************************************************
*		       Enhancements from 1.33 to 1.40			   *
****************************************************************************


****************************************************************************
*               Changes that might affect runtime behavior                 *
****************************************************************************

None.
 

****************************************************************************
*               Changes that might generate compile errors                 *
*                        when compiling old code                           *
****************************************************************************

None

****************************************************************************
*               Type changes that might generate warnings:                 *
****************************************************************************

None

****************************************************************************
* 			Deprecated functions				   *
****************************************************************************

None.


****************************************************************************
*			 New global functions				   *
****************************************************************************

None.

****************************************************************************
*      New public/protected functions added to existing classes            *
****************************************************************************

QFileDialog::getOpenFileNames()
QProgressDialog::setMinimumDuration( int )
QProgressDialog::minimumDuration() const
QMouseEvent::globalPos() const
QMouseEvent::globalX() const
QMouseEvent::globalY() const
QFont::rawName() const
QWidget::setMask(const QRegion& region)
QWidget::setMask(QBitmap bitmap)
QWidget::clearMask()
QListView/QListViewItem: Various functions to create children in specified order
