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.