Home | Back
Release 6.0
===================

Changes
-------
1) Qt3 support dropped
2) QwtPlot layout/render code ported from int to double
   Exported/printed documents in scalable formats like SVG or PDF
   are 100% scalable now.
3) Template base classes introduced for curve and curve data
   to be reusable in all plot items displaying series of samples.
4) New plot items
   - QwtPlotHistogram
   - QwtPlotIntervalCurve ( error bars or displaying the area between 2 curves )
   - QwtPlotSpectroCurve ( mapping the z value to a color )
5) Raster items
   - QwtMatrixRasterData introduced
   - More accurate rendering
   - Several API changes
   - Thread support for rendering spectrograms
6) QwtPlot::print moved to QwtPlotRenderer
7) Other new classes
   QwtColumnSymbol
   QwtDoublePoint3D
   QwtIntervalSymbol
   QwtPlotDirectPainter
   QwtSamplingThread
   QwtSystemClock
8) QwtPicker and friends reorganized, 
   QwtPickerTrackerMachine added for displaying a rubberband for
   mouse moves. Enter/Leave added to events, that are handled
   by the picker machines.
9) QwtScaleWidget::LayoutFlag added
   Introduced to control the direction of vertical axis titles.
10)QwtWeedingCurveFitter added
   QwtWeedingCurveFitter is an implementation of the Douglas/Peuker 
   algorithm, that can be used to reduce the number of curve points.
   It can be very useful to improve the performance of painting
   curves of many lines ( f.e. by implementing different level of details ).
11)Legend code update for representing different pixmaps for different
   types of plot items.
12)Copy operators removed, using pointers instead
13)QwtPolarPoint from qwtpolar added
14)QwtThermo
   Optional QwtColorMaps added
15)Interfaces and code of all sliders/dials cleaned up.
   QApplication::globalStrut(), styled backgrounds ...


Release 5.2.1
===================

Bug Fixes
---------
1) Export declarations removed from qwt_valuelist.h to avoid
   compiler errors with Qt 4.6 + certain compilers on Windows.
2) QwtScaleDraw
   Wrong border dist hints for unregular scale divisions fixed
   Layout calculation for the tick labels fixed. 
   The layout was wrong by 1 pixel for top/left/bottom axes. 
   On a left axis without a title the labels were sometimes cut off.
3) QwtPainter 
   Splits polylines for all pens to avoid a bottleneck of the 
   raster paint engine.
4) QwtScaleWidget
   Calculation of the colorbar position fixed ( spacing/margin )
5) QwtPlotCurve
   Wrong clipping rect fixed
6) QwtPicker
   QwtPicker::setTrackerFont() fixed.
   Recursion on the Mac, when constructing the rubberband fixed.
   Workaround for a Qt3 bug added that is responsible for left aligning
   all tracker texts to the canvas.

Changes
-------
1) Project files adopted for symbian
2) qwt.pro 
   CONFIG += ordered added for using make -j
   CONFIG += silent added

Release 5.2.0
===================

Changes
-------
1) Ported to Qt 4.5.x
2) Scaling of non cosmetic pens (for printing to devices in high resolution)
3) Clipping of polygons for SVG rendering
4) QwtRect removed
   use QwtClipper instead
5) QwtPlotRescaler 
   Introduced
6) QwtDoubleInterval
   BorderMode introduced
7) QwtPlotCurve
   Performance of incremental curve painting ( = draw(from, to) ) improved.
8) QwtLegendItem
   setIdentfierMode renamed to setIdentifierMode
9) QwtPlotCanvas::replot() introduced
   code from QwtPlot::replot shifted
10)QwtPlot 
   drawCanvas(), updateAxes() changed from protected to public
11)QwtScaleEngine 
   loMargin/hiMargin renamed to lowerMargin/upperMargin
12)QwtScaleDiv 
   lBound/hBound renamed to lowerBound/upperBound
13)QwtSpline
   cofficientA/B/C introduced
14)QwtDial
   counter clockwise scales introduced
15)QwtPlotMarker
   Vertical text labels
16)doc/qwt-5.2.0.qch added foe browsing the Qwt docs in the Qt assistant

Bug Fixes
---------
1) QwtLinearScaleEngine
   Rounding problems fixed
2) Again some print layout problems fixed
3) QwtPlotScaleItem: 1 pixel offset fixed
4) QwtPlotSpectrogram, clipping of contour lines 
   against the bounding rect
5) QwtPlotZoomer::setZoomStack for stacks with unlimited depth
6) Printing of rotated tick labels


Release 5.1.1
===================

Bug Fixes
---------
1) Several compiler incompatibilities fixed
2) DBL_EPSILON removed 
   Using DBL_EPSILON in the calculations of the dials/sliders and the 
   scale engines leads to problems with the inaccuracy of floating points.
   The behaviour has been reverted to 5.0.x.
3) QwtSlider/QwtKnob
   setScaleDraw() fixed.
4) QwtRect
   Pointless private declaration removed

Release 5.1.0
===================

Changes
-------
1) QwtSymbol::copy introduced
   Now it is possible to use derived symbol classes for curves
2) QwtPlotScaleItem introduced
   A new type of plot item for displaying axes on the canvas
3) QwtClipper added
   A collection of clipping algos
4) Using DBL_EPSILON
   This change allows smaller intervals for sliders/dials
5) QwtPanner
   setOrientation() added.
6) QwtPlot
   axisStepSize() added
   clear is virtual now
7) QwtPlotPrintFilter
   PrintCanvasBackground splitted into PrintBackground, PrintFrameWithScales
8) QwtPlotZoomer
   setZoomStack() added
9) Changes for the QwtPolar package
   QwtLegendItemManager introduced
   QwtMagnifier introduced
10)Suffix rules added in qwtconfig.pri for different targets for 
   debug/release builds.

Bug Fixes
---------
1. QwtAbstractScaleDraw::setAbstractScaleDraw
   Reinitialization problem fixed
2. QwtLegendItem
   key event handlers fixed
3. QwtPicker
   solaris-cc compiler problem fixed
4. Inaccurate mapping of scale to widget coordinates fixed
5. QwtPlotCurve::draw
   Updates for Qt 4.3 added
6. QwtPlotLayout
   AlignToCanvas layout calculation fixed
7. QwtPlot::print
   Workaround for a QPen initialization problem, 
   when printing to Pdf, added
8. QwtText
   Layout of rich text documents fixed
9. Designer
   Handling of QwtScaleWidget fixed
10. realtime example
   Qt::WA_PaintOutsidePaintEvent added, ScrollZoomer fixed
11. Several others I have forgotten

Release 5.0.2
===================

Bug Fixes
---------
1. QwtPlotCurve::Xfy curve type fixed
2. Memory leak in QwtLegend fixed
3. Vertical alignment of rich texts fixed
4. Workaround for a Qt4 bug added, that produces horrible performance
   when painting curves with a pen width > 1.
5. Background for the tracker text of QwtPickers fixed.
   Improved (faster + better rendered texts) implementation of
   painting tracker texts, using capabilities of Qt >= 4.3.
6. QwtArrowButton/QwtCounter: workaround for layout bug ( Qt < 4.3 )
   of the Cleanlook style added.
7. A couple of minor fixes

Changes
-------
1. QSvgGenerator added to the bode example

Release 5.0.1
===================

Changes
-------
1.  A couple of problems, when building Qwt fixed.
2.  Displaying Rich Text with Qt 4.x fixed

Release 5.0.0
===================

Platforms
---------
Support of Qt3 and Qt4. Qt2 is not supported any longer.

Key features
------------
1.  Redesign of plot items. Makes it much easier to develop
    individual items.
2.  Redesign of the scale classes. All calculations are
    collected in scale engines, where the application can
    implement it´s own (f.e log2, or date scales). Now it´s
    also possible to have individual and completely irregular scales
3.  Redesign of the QwtText classes. The MathML renderer of
    the Qt4 solutions package is embedded. 
    work for all expressions/situations.
4.  New classes for navigating: QwtPanner, QwtMaginfier
5.  Spectrogram/Contour plots  and other classes for displaying
    raster data added.

Changes
-------
5.0.0 is by far the release with the most changes in the history of Qwt
- too many to make list.


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.