Here is a list of user-visible changes in Qt from 1.2 to 1.30.  As
usual, we fixed some bugs, made some more speedups, and improved the
documentation.

Keyboard accelerators and traversal are significantly improved.

Two new extensions included with Qt 1.30. They are not part of the library:

Netscape plugin support. You can now write portable Netscape plugins
using Qt. See the qt/extensions/nsplugin directory in the distribution.

The ImageIO extension library gives a framework for adding new image
formats, including PNG and JPEG in this release. See the qt/extensions/imageio
directory in the distribution.

The OpenGL extension for Qt now resides in qt/extensions.


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

* QProgressBar displays a progress bar.

* QProgressDialog uses QProgressBar to give the user feedback during long
  operations, as well as a means of aborting.

* QMovie supports animated GIFs and incremental loading of images.

* QHBoxLayout and QVBoxLayout are convenience classes giving a simpler
  interface to QBoxLayout.

* QValidator provides a mechanism for validating input.


****************************************************************************
*		       Enhancements from 1.2 to 1.30			   *
****************************************************************************

QFont now supports charsets latin1 through latin9.

New command-line arguments: -style motif and -style windows are
accepted, as well as -style=motif and -style=windows, -visual, -ncols,
-cmap.

QMultiLineEdit is usable for much bigger documents than in 1.2

More sizeHint() functions added, some existing ones tweaked.

Many widgets have improved look and feel, particularly changes to
Windows GUI style to match Windows more closely.

Improved Postscript output.

Color handling has been improved; better 32-to-8 conversion; Qt
prefers to use Macintosh/Netscape color cube in 8-bit mode; more and
better dithering support.

GIF and PPM support.

QMessageBox has a number of new static functions to replace the
venerable message(): information(), warning(), critical() and about().

QPopupMenu can now display icon and text in the same item.

QPopupMenu::exec() to pop up a synchronous popup menu.

QListBox now supports multi selection.

QWidget::setBackgroundMode() gives a powerful way of managing widget
backgrounds, to reduce flicker.

QWidget::setIcon() now works under both X11 and Windows.

The file dialog now remembers the previously selected directory.

QApplication::setWinStyleHighlightColor() sets the highlight color in
windows style.

QApplication::setDoubleClickInterval() sets the double click timeout

The layout example is new and more informative.

There is a new openGL example; extension/opengl/examples/box/ shows
how to control an openGL widget using Qt user interface components.


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

Tab/Shift-Tab handling has been improved a lot; this means that
widgets which couldn't get keyboard focus before now can.

Some widgets (buttons, tab bars, tab dialogs) semi-automatically set
up keyboard accelerators. ( setText("E&xit") will give Alt-X as an
accelerator.)  In some very rare cases, this will cause changes of
behaviour.

The QColor::light() function now works, and anything which relied on
its buggy behaviour might be a little darker than expected until changed,
usually just recompiling (the default argument has also changed).

The colors used have been tuned a bit; pixmaps that "know" the RGB
values of colorGroup().background() and the like will look just a tiny
bit wrong.

QApplication calls setlocale to the local environment, except for
LC_NUMERIC which is set to the C locale. This means that input/output
of floating point numbers will always use '.' as the decimal separator, 
while all other locale dependant operations will use the default locale.
 

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

none

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

none

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

QApplication::setColorMode()
 - see QApplication::setColorSpec(int)
QRegion::xor()
 - see QRegion::eor()
QMessageBox::message()
 - see QMessageBox::information/warning/critical
QMultiLineEdit::getCursorPosition()
 - see QMultiLineEdit::cursorPosition()
QTabDialog::setOKButton()
 - see QTabDialog::setOkButton()

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

QAccel::repairEventFilter()
QApplication::activeModalWidget()
QApplication::activePopupWidget()
QApplication::allWidgets()
QApplication::doubleClickInterval()
QApplication::hasGlobalMouseTracking()
QApplication::processEvents(int)
QApplication::processOneEvent()
QApplication::setDoubleClickInterval(int)
QApplication::setGlobalMouseTracking(bool)
QApplication::setWinStyleHighlightColor(QColor const &)
QApplication::winStyleHighlightColor()
QApplication::x11ProcessEvent(_XEvent *)
QBoxLayout::className() const
QButton::accel() const
QButton::animateClick()
QButton::enabledChange(bool)
QButton::setAccel(int)
QComboBox::clearValidator()
QComboBox::setStyle(GUIStyle)
QComboBox::setValidator(QValidator *)
QComboBox::validator() const
QDir::convertSeparators(char const *)
QFrame::sizeHint() const
QGridLayout::addColSpacing(int, int)
QGridLayout::addRowSpacing(int, int)
QGridLayout::className() const
QImage::convertDepth(int, int) const
QImage::create(QSize const &, int, int, QImage::Endian)
QImage::createAlphaMask(int) const
QImage::inputFormats()
QImage::outputFormats()
QImage::pixel(int, int) const
QImage::pixelIndex(int, int) const
QImage::setPixel(int, int, unsigned int)
QImage::valid(int, int) const
QImageIO::inputFormats()
QImageIO::outputFormats()
QLabel::movie() const
QLabel::setMovie(QMovie const &)
QLayout::className() const
QLineEdit::clearValidator()
QLineEdit::setValidator(QValidator *)
QLineEdit::sizeHint() const
QLineEdit::validator() const
QListBox::clearSelection()
QListBox::focusOutEvent(QFocusEvent *)
QListBox::highlighted(char const *)
QListBox::isMultiSelection() const
QListBox::isSelected(int) const
QListBox::selected(char const *)
QListBox::selectionChanged()
QListBox::setMultiSelection(bool)
QListBox::setSelected(int, bool)
QListBox::toggleCurrentItem()
QMenuBar::heightForWidth(int) const
QMenuBar::leaveEvent(QEvent *)
QMenuBar::separator() const
QMenuBar::setSeparator(QMenuBar::Separator)
QMenuData::changeItem(QPixmap const &, char const *, int)
QMenuData::insertItem(QPixmap const &, char const *, QObject const *, char const *, int)
QMenuData::insertItem(QPixmap const &, char const *, QPopupMenu *, int, int)
QMenuData::insertItem(QPixmap const &, char const *, int, int)
QMessageBox::about(QWidget *, char const *, char const *)
QMessageBox::aboutQt(QWidget *, char const *)
QMessageBox::buttonText(int) const
QMessageBox::critical(QWidget *, char const *, char const *, char const *, char const *, char const *, int, int)
QMessageBox::critical(QWidget *, char const *, char const *, int, int, int)
QMessageBox::icon() const
QMessageBox::iconPixmap() const
QMessageBox::information(QWidget *, char const *, char const *, char const *, char const *, char const *, int, int)
QMessageBox::information(QWidget *, char const *, char const *, int, int, int)
QMessageBox::setButtonText(int, char const *)
QMessageBox::setIcon(QMessageBox::Icon)
QMessageBox::setIconPixmap(QPixmap const &)
QMessageBox::setStyle(GUIStyle)
QMessageBox::standardIcon(QMessageBox::Icon, GUIStyle)
QMessageBox::warning(QWidget *, char const *, char const *, char const *, char const *, char const *, int, int)
QMessageBox::warning(QWidget *, char const *, char const *, int, int, int)
QMultiLineEdit::cursorPoint() const
QMultiLineEdit::cursorPosition(int *, int *) const
QMultiLineEdit::getMarkedRegion(int *, int *, int *, int *) const
QPainter::drawPoints(QPointArray const &, int, int)
QPainter::drawWinFocusRect( int, int, int, int, const QColor & )
QPalette::detach()
QPicture::data() const
QPicture::isNull() const
QPicture::setData(char const *, unsigned int)
QPicture::size() const
QPixmap::convertFromImage(QImage const &, int)
QPixmap::load(char const *, char const *, int)
QPixmap::loadFromData(unsigned char const *, unsigned int, char const *, int)
QPopupMenu::exec()
QPopupMenu::setActiveItem(int)
QRegion::eor(QRegion const &) const
QSize::transpose()
QTabBar::setCurrentTab(QTab *)
QTabBar::setCurrentTab(int)
QTabBar::setShape(QTabBar::Shape)
QTabBar::shape() const
QTabBar::tab(int)
QTabBar::tabList()
QTabDialog::addTab(QWidget *, QTab *)
QTabDialog::hasOkButton() const
QTabDialog::selected(char const *)
QTabDialog::setTabBar(QTabBar *)
QTabDialog::showPage(QWidget *)
QTabDialog::styleChange(GUIStyle)
QTabDialog::tabBar() const
QTabDialog::tabLabel(QWidget *)
QTableView::minViewX() const
QTableView::minViewY() const
QTableView::updateTableSize()
QToolTip::font()
QToolTip::palette()
QToolTip::setFont(QFont const &)
QToolTip::setPalette(QPalette const &)
QWidget::backgroundMode() const
QWidget::create(unsigned int, bool, bool)
QWidget::destroy(bool, bool)
QWidget::focusProxy() const
QWidget::focusWidget() const
QWidget::isVisibleToTLW() const
QWidget::setBackgroundMode(QWidget::BackgroundMode)
QWidget::setFixedHeight(int)
QWidget::setFixedWidth(int)
QWidget::setFocusProxy(QWidget *)
QWidget::setMaximumHeight(int)
QWidget::setMaximumWidth(int)
QWidget::setMinimumHeight(int)
QWidget::setMinimumWidth(int)
QWidget::setTabOrder(QWidget *, QWidget *)
QWidget::update(QRect const &)
