Files
GoldenCheetah/qwt/CHANGES
Damien c44758c5ad Qwt 6.0.1 Support
Upgrade to QWT 6.0.1, but still uses a locally patched copy
since support for 8 axes has not been included, despite it
being a relatively simple patch.

Fixes #634.
Fixes #567.
2012-02-12 10:43:15 +00:00

511 lines
18 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Release 6.0.1
===================
Changes
-------
1) Incompatibilities with Qt < 4.6.1 fixed
2) Reduce warnings with pedantic compiler options
3) Examples fixed
4) Legend identifiers of with symbol and line fixed
Release 6.0.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.2
===================
Bug Fixes
---------
1) QwtSplineCurveFitter
Rounding to integers values removed
2) QwtPlot
initial size of 200x200
3) QwtPlotPrintFilter, QwtPlot::print
handling of background color in QwtPlot::print
4) QwtPlotPrintFilter
Problem with colored plot titles fixed
5) QwtPlotItem
Crash fixed, when changing the z order of attached items
6) QwtLinearScaleEngine, QwtLog10ScaleEngine
Several minor fixes
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.