Release 4.2.0/0.4.2
===================

License
--------
A couple of exceptions to the LGPL with the intention to allow static
linking with commercial applications. See COPYING.

Key features: 
-------------
1.  Designer plugin 
2.  Rich Text support ( f.e. E = m * c<sup>2</sup> ) added.
3.  QwtDial class family added (QwtDial, QwtCompass, QwtAnalogClock, ...)
4.  QwtPicker class family added. Includes QwtPlotZoomer, a complete
    implementation of recursive zooming.
5.  Device metrics independent printing of QwtPlot. (QPrinter::HighResolution)
6.  QwtPlot::setCurveBrush(), QwtCurve::setBrush() added. The area
    between curve and baseline will be filled with this brush.
7.  Rotation of axis tick labels added. Very useful for axis with long
    labels like time scales ...
8.  Added a new abstract QwtData class to plot data from almost any type of
    container class.  
9.  QwtDoublePoint, QwtDoubleSize, QwtDoubleRect double counterparts
    for QPoint, QSize, QRect.
10. First steps to support Qtopia. All examples can be compiled and started
    in the qvfb emulator.


Changes:
---------
1.  Rewrite of QwtLegend/QwtLegendItem (no QTable anymore)
2.  Each plot item will be painted, even if one of the axis it is 
    attached to is disabled. (like in all other releases beside 0.4.1)
3.  Code for double buffering moved to a new class QwtPaintBuffer.
    Double buffering can be enabled/disabled now. 
4.  QwtPainter, QwtMetricsMap, QwtLayoutMetrics added
    Hide paint device metrics dependencies.
5.  Layout code rewritten and moved to a new class QwtPlotLayout
    New layout options canvasMargin(), alignCanvasToScales()
6.  QwtPlot: sizeHint() != minimumSizeHint()
9.  Internal plot data are private again. A couple of get methods 
    added instead.
10. canvas repaints triggered by paint events. Enables event filtering
11. QwtPlot::drawCanvasItems added. In opposite to QwtPlot::drawCanvas
    it is used by the printing code too.
12. qwtMax, qwtMin, qwtInt mapped to QMAX, QMIN, qRound from qglobal.h
13. operator= for plot item classes changed.
14. readOnly property added for sliders.
15. valid flag added for QwtDblRange
16. QwtCounter wrap around policy: a counter under- or overflow sets
    focus to the smallest up/down button and disables counting.
    A space bar keypress release event re-enables counting.
17. QwtPushButton added. A class that adds rich text and alignments
    features to QPushButton, like they are used in QLabel
18. Clipped painting code moved from QwtCurve to QwtPainter/QwtRect
19. Canvas cache added to optimize trivial repaints.
20. QwtPlot::drawCurve added for incremental curve data
21. QwtSliderBase, readOnly, isValid added
22. Added filtering of the colors of the title and scales to QwtPrintFilter.
23. Support of QT_NO_CAST_ASII and QT_NO_COMPAT added
24. Batch file added for generating Visual Studio project files
25. QwtPlotCurve, QwtPlotMarker, QwtPlotGrid: more methods public
26. QwtPlot::setLegendPosition added
27. A lot of changes I don't remember, ... sorry.

Bugfixes:
---------
1.  Autodetection of painter redirection. QPixmap::grabWidget() works
    with Qwt Widgets again.
2.  QwtSlider: Rounding double->int conversions instead of simple casts.
3.  Bad additional line, connected to the first curve point, when zooming 
    deep, fixed.
4.  QwtMarker: Painting of symbols with width != height fixed
5.  QwtPlot::plotMouseXXX/canvasMap pixel coordinates synced. 
    Now both include the canvas frame.
6.  Layout fixed for QwtScaleDraws without tick labels
8.  Tab focus chains fixed, focus indications added.
9.  Support QwtAutoScale::Inverted when autoScale is off also.
10. Keyboard control, focus indications added.
11. Improved QStyle awareness. 
12. Printing of plots with disabled axes

Examples
--------
1.  New example linux/cpustat added. Runs also on non linux boxes
    with dummy values. Beside showing a couple of features that
    are new with 0.4.1 and 0.4.2, it shows how to extend and customize
    a QwtPlots.
2.  Added new example event_filter to demonstrate event filtering.
    This example shows how to add additional controls to the scales,
    how to translate mouse clicks on the scales into signals and
    how to move points on the canvas.
3.  realtime example shows how to use scrollbars when zooming

Release 0.4.1
============

Changes:
---------
1.  Platform independent project files. makefiles directory removed.
2.  RPM spec file template added.
3.  __declspec formalism added for Win32 DLLs. Requires
    'DEFINES += QWT_DLL' in the .pro file.
4.  QString used for visible texts.
5.  Code for error curves removed. These type of features should be
    implemented in derived curve classes.
6.  A lot of Qt 1.2 related code removed/replaced.
7.  QwtColorFilter, QwtPixFrame removed. QwtPlotPixFrame renamed 
    to QwtPlotCanvas.
8.  qmodules.h aware. Skips QwtLegend in case of !QT_MODULE_TABLE
9.  All Widgets including QwtPlot optimized to reduce flicker
    during resize/repaint.
10. QwtPlot curves/markers can be disabled/enabled to hide/show individual
    curves without removing the curves from the plot.
11. Internal maps removed from QwtCurve. QwtCurve::setMap, QwtCurve::setRect, 
    QwtCurve::setRange removed.

Feature additions:
------------------
1. Printing
   QwtPlot::print prints to any type of QPaintDevice now.
   Hardcoded printer attributes margin, creator and document title have
   been removed and must/can be set by the applications now.
   Printing of background and legends added. QwtColorFilter replaced
   by QwtPlotPrintFilter.
2. Layout
   Many layout fixes and additions.  Now all Widgets behave well in
   QLayouts and provide sensible sizeHints. QwtPlot::setMargin(int) added.
   Fieldwidth added for QwtPlot::setAxisFormat for application that need
   range independent width. Title and axis title are Qt:Alignment aware.
   Qt::WordBreak or multiline titles are possible.
3. Legend
   En/Disabling of single curves in the legend added.
   QwtPlot::setAutoLegend added.
4. Extensibility
   QwtPlot::insertCurve + QwtPlot::insertMarker added. Now derived
   classes of QwtPlotCurve and QwtPlotMarker can be added. Virtual
   methods provided by QwtPlotCurve for sub-classing.
   QwtScale::setScaleDraw + QwtPlot::setAxisScaleDraw + some virtual
   methods for QwtScaleDraw added. Application can implement individual
   axis labels now.
5. Sliders
   QWheelEvent added. The MouseWheel stepsize is controlled by the
   Scroll Page Size. QwtWheel::setWheelWidth added. QwtKnob::setSymbol,
   QwtKnob::symbol added.

Bugfixes:
---------
1. Workaround for spontanous curves resulting from overruns
   when zooming too deep.
2. Wrong QColorGroup::ColorRole for background colors fixed.
   Necessary for several non default QStyles.
3. QwtWheel fixed for vertical wheels. Better color support.
4. QwtSlider fixed.
5. Many forgotten others

Release 0.4.0
============

Bugfixes:
---------
1. A few occurences of the boolean literal \c false were changed into macro
   \c FALSE for cross compiler compatibility.
2. A few local variables in member functions were renamed to suppress
   warnings issued by really picky compilers about global/class variables
   being hidden.
3. In qwt_legend.h, a fully qualified name was used in a class declaration.
   The HPUX compiler chokes on this (and it's ugly), so it was fixed.
4. Macro M_2PI is now only defined is this hasn't already been done by the
   system's clib.

Feature additions:
------------------
1. Qwt now works with Qt3.0. In order to achieve this, QwtLegend now no
   longer derives from QTableView, but from QTable. This seems to have had
   quite a few consequences. Kudo's to Uwe Rathmann for uploading this nice
   fix to the CVS tree.
2. Getters for a plot's title and title font have been added.

Release 0.3.0
============

License:
--------
1. The license has changed from GPL to LGPL.

Bugfixes:
---------
1. The makefiles for win32 caused object files to have extension .o instead of
   .obj. The 'propagate' file was changed to fix this, using tmake's target
   platform flag.
2. There were problems with rint() on win32 platforms. rint() is a BSD call,
   not even available on all unices. All calls to rint(x) have been replaced
   by floor(x+.5).
3. Some static class data members were initialized with the value of other
   static class data members (from Qt). This caused programs depend on the
   initialization order of class members. This is now fixed by replacing the
   static properties by static signleton factories.
4. When a plot was zoomed and then printed, curves and markers laying outside
   the plot's scale were still printed. The print() function now uses clipping.

Feature additions:
------------------
1. Multi-line plot titles are now supported: the PostScript document name is
   not the plot title, with "\n" characters replaced by "--". Geometry
   management has been changed to support multi-line titles.
2. In the mailinglist, there were often feature requests for features that
   were in fact implemented, but not available through QwtPlot's API. Many
   private members have been made protected or even public, to give users
   more control. This is poor design, but Qwt will be refactored anyway.
3. Qwt always displayed floats with 5 digits. This was insufficient for many
   applications. QwtPlot, QwtScale, QwtAutoScale got some methods to set the
   label format. This is a printf like format for the numbers at the scales,
   consisting of 'f' and a precision, or 'g' and the significance.

Build system:
-------------
1. The 'makefiles' directory was removed from the cvs tree, and is now only
   generated for releases. CVS users should have tmake installed, to generate
   the makefiles themselves.
2. The 'examples' directory now uses tmake's 'subdirs' template, to iterate
   over all subdirectories and build all examples with one command. There was
   allready a makefile for this, but now the process is automated by tmake.
3. Under unix, the library now gets a proper version number. Current version
   is 0.3.0.

Documentation:
--------------
1. All documentation is converted to the Doxygen documentation system. The
   release contains two settings files, 'Doxygen' and 'Doxygen.users',
   generating a developer's and user's manual, respectively.
