Here is a list of (major) changes in Qt from 0.93 to 0.94.

Bug-fixes, optimizations and much improved documentation, of course.

There are not many changes in the API interface.


QTextStream:
------------
  eos() renamed to eof() for iostream compatibility.
  operator>> for double, float, char*, QString are implemented
  get() and getline() added.


QDataStream:
------------
  eos() renamed to eof() for iostream compatibility.


QPixmap:
--------
  Support for transparency: setMask(QBitmap) and bitBlt.


QImage:
-------
  Scanline data is aligned on a 32 bit boundary (it used to be 8
  bits). Conversion to and from QPixmap is now faster.


Documentation:
--------------
  More documentation fixes.
