Here is a list of (major) changes in Qt from 0.95 to 0.96. Bug-fixes, optimizations and improved documentation, of course. QClipboard is new. There are some changes in the API (Qt header files). Some functions have been renamed or the arguments have changed. The old versions of these functions have been obsoleted. A call to an obsoleted function will by default generate a runtime warning the first time it is called, but it will be executed correctly. If you really need to ship code fast, you can turn off the runtime obsolescence warnings by calling qSuppressObsoleteWarnings(). Obsoleted functions will disappear in a future release. To get compile-time errors for each use of an obsoleted function, compile your code with -DTEST_OBSOLETE. You should recompile without this option when you have upgraded your code (otherwise, you may get linking errors). Note: it is probably not a good idea to compile the Qt library with -DTEST_OBSOLETE, it may cause problems if you try to link or run programs that use obsoleted functions. For new users: obsoleted functions are no longer documented, in fact they are not even visible in the documentation. *************** Changes that might affect runtime behavior ***************** QFileInfo: ---------- size() returns uint(previousy int), 0 if the size cannot be fetched (was -1). Use isFile() to check. QPopupMenu ------------ When a popup menu is a submenu (directly or as a subsub...menu) of a menu bar(QMenuBar), the menu bar will now always emit the activated() or highlighted() signal when a submenu emits these signals. This fix might have undesired effects if you previously have worked around it by connecting to signals both in menu bar and its submenus. *************** Changes that might generate compile errors ***************** ************** when compiling old code ***************** QDataStream: ----------- Serialization of int and uint is no longer supported. Use INT32 and UINT32 instead. This had to be changed in order to run Qt on 64-bit architectures. QImage: ------- 24-bpp pixel format no longer supported, use 32-bpp instead. This means that you have to use uint* instead of uchar* when accessing pixel values. You cannot use the uchar* pointer directly, because the pixel format depends on the byte order on the underlying platform. Use qRgb() and friends (qcolor.h) to access the pixels. QWidget: -------- setMouseTracking() does not return bool. Call hasMouseTracking() to determine the mouse tracking state. (This only affects code that actually uses the return value.) (There are other changes in QWidget, see below) *************** Type changes that might generate warnings: ***************** QCache/QIntCache: ----------------- Using int/uint instead of long/ulong. QDate/QTime/QDateTime: ---------------------- Using int/uint instead of long/ulong (MS-DOS required long). QIODevice/QBuffer/QFile: ------------------------ Using int/uint instead of long/ulong. QKeyEvent: ---------- ascii() now returns int (previously uchar). QTableView: ------------ uint used instead of ulong (tableFlags() etc.) QTextStream: ------------ int used instead of long (flags() etc.) ***************** Obsoleted functions ********************** QAccel: ------- enable(), disable() and isDisabled() are obsolete. Use setEnabled(TRUE/FALSE) and !isEnabled() instead. isItemDisabled(), enableItem(), disableItem() are obsolete. Use !isItemEnabled(), setItemEnabled(TRUE/FALSE) instead. QApplication: ------------- cursor(), setCursor() and restoreCursor() obsoleted. Use overrideCursor(), setOverrideCursor() and restoreOverrideCursor() instead. QBitmap: -------- Constructor takes "const uchar *bits" instead of "const char *" because of sign problems (uchar = unsigned char). Old constructors are obsolete. QButton: -------- toggleButton() is obsolete, renamed to isToggleButton(). QColor: ------- The functions QRED, QGREEN, QBLUE, QRGB, QGRAY obsolete. Instead, use qRed, qGreen, qBlue, qRgb, qGray. QComboBox: ---------- setStrList() obsolete, use clear() + insertStrList() instead. string() obsolete, use text() instead. QLCDNumber: ---------- longValue() is obsolete, use intValue() instead. QListbox: --------- The macro LBI_String is obsolete, use LBI_text instead. string() obsolete, use text() instead. stringCopy() and setStringCopy() are obsolete. QMenuData: ---------- string() obsolete, use text() instead. isItemDisabled(), enableItem(), disableItem() are obsolete. Use !isItemEnabled(), setItemEnabled(TRUE/FALSE) instead. checkItem() and uncheckItem() are obsolete. Use setItemChecked(TRUE/FALSE) instead. QPainter: --------- drawBezier() is obsolete, general Bezier curves are rarely used and cost too much. Qt will only support drawQuadBezier() (four-point Bezier) in the future. QPointArray: ----------- move() is obsolete, use translate() instead. bezier() is obsolete, general Bezier curves are rarely used and cost too much. Qt will only support quadBezier() (four-point Bezier) in the future. QRect: ------ move() is obsolete, use moveBy() instead. setTopLeft(), setTopRight(), setBottomLeft(), setBottomRight() and setCenter() is obsolete, use moveTopLeft(), moveTopRight(), moveBottomLeft(), moveBottomRight() and moveCenter() instead. QRegion: ------- move() is obsolete, use translate() instead. QSocketNotifier: ---------------- enabled() is obsolete. Use isEnabled() instead. QWidget: -------- enable(), disable() and isDisabled() are obsolete. Use setEnabled(TRUE/FALSE) and !isEnabled() instead. setMinimumSize(), setMaximumSize(), minimumSize(), maximumSize() are obsolete use setMinSize(), setMaxSize(), minSize(), maxSize() instead. enableUpdates() obsolete, use isUpdatesEnabled()/setUpdatesEnabled(). id() is obsolete, it has been renamed to winId(). ***************** All other changes from 0.95 to 0.96 ********************** moc ---------- Gives a warning if no output is generated. qglobal.h: ---------- INT32 and UINT32 typedefs changed to work with DEC Alpha. QApplication: ------------- clipboard() is new. QButtonGroup: ------------- Exclusive group setting added (isExclusive and setExclusive). find() is new. QColor: ------- New type QRgb (uint), used for RGB triplet. QLineEdit: ---------- You can now mark text, and copy and paste to/from the clipboard. QPaintDevice: --------- The bitblt function now takes an ignoreMask parameter. It has a default value, so no old code will be broken. QPrinter: ------------ fixed minor bugs in handling of polygons and beziers. QWidget: -------- New protected virtual functions styleChange(), backgroundColorChange(), backgroundPixmapChange(), paletteChange() and fontChange(). These functions are called from setStyle(), setBackgroundColor() etc. You can reimplement them to if you need to know when widget properties changed and to optimize updates. The destroyed() signal has been moved to QObject.