
    Resolved issues / fixed bugs / new examples in KD Chart 2.0.3
    _____________________________________________________________


    KDChart::Serializer:

    This is a new module to be compiled separately: It will
    be linked to a library of its own.
    The reason for this separation is that Serializer requires
    the Qt library to provide XML features, which is not true
    for all of the different Qt licenses.

    The scope of the serializer is storing / loading of all
    KD Chart settings from / into a QIODevice.

    Serializer comes with three examples of different complexity:
    $KDCHARTDIR/kdchartserializer/examples/

    a side-effect:
    Most of the top-level components in KD Chart have gotten
    their own compare() methods now.  While these were added
    for testing the Serializer, you are of course free to use
    them for your own purposes: They are part of the public API.


    Chart:

    * We now set all internally used top-level margins to Zero,
    so we get rid of that external leading, if no such leading
    was specified by the user calling Chart::setExternalLeading()

    * Several minor (yet annoying) layouting issues fixed.

    * Now all relative Measure values are calculated correctly,
    even when painting into a qpainter using a target rect.

    * Now we can set the direction of the coordinate planes layout
    using the following code if m_chart is your KDChart::Chart:
        QBoxLayout* planeLayout
            = dynamic_cast<QBoxLayout*>(
                m_chart->coordinatePlaneLayout());
        if( planeLayout )
            planeLayout->setDirection( QBoxLayout::LeftToRight );
    As an example see kdchartserializer/examples/complexLayout/


    MarkerAttributes:

    * Marker types like ring 4-Pixels fast-cross and 1-Pixel do not
    use any brush, but you can use the Pen for configuring
    the marker's color.


    GridAttributes:

    * Now horizontal / vertical grid can be specified independently
    from each other (before, due to a bug, you needed to set both)

    * Horizontal grid step and substep width are considered now.


    CartesianAxis:

    * Avoid axis labels overlapping even for long-string labels.

    * Adjust the axis labels collision handling for small resolution.

    * Do not automatically switch the horizontal labels to the built-in
    internal labels when resizing the widget to a smaller size,
    but keep the manually given labels even then.

    * Do not stop painting the labels when the widget is re-sized to a
    small size.

    * Fixed the axis labels: We do not draw a label, if its respective
    tick-mark is outside of the axis area.

    * Now displaying horizontal values fitting the grid as configured
    by the user.

    * Text layout items (like the axis labels or the axis title) may
    now use "\n" for line breaks: KD Chart will recognise these
    and calculate the item's height accordingly.


    BarDiagram:

    * Display the X axis labels in the middle of their columns.


    LineDiagram:

    * Cells can use a different brush than their neighboring cells
    of the same dataset.


    PolarDiagram:

    * Polar charts can now have the series closed by connecting the
    last point to the first point.
    ( Before this was not possible, even if you added an extra
        point to each of the datasets, because KD Chart would still
        leave an open gap between the first and the last angle. )


    DataValueAttributes:

    * setShowRepetitiveDataLabels( bool )

    Set whether data value labels not different from their
    predecessors should be drawn.


    Legend:

    * New method setLegendStyle() allows for displaying either the
    markers only or the lines only or both, the markers and
    lines.


    examples/tools/TableModel:

    * setDataHasHorizontalHeaders( bool )
    setDataHasVerticalHeaders( bool )
    setSupplyHeaderData( bool )

    These can be used to adjust the behaviour of
    TableModel::loadFromCSV()


    Examples:

    * Lines/BubbleChart/
    showing how cell-specific MarkerAttributes could be
    used to show kind-of a bubble chart-like diagram

    * Grids/CartesianGrid/
    now setting both vertical and horizontal grids,
    and also the horizontal steps and the axis labels

    * Lines/AreaPerCell/
    showing how to differently diplay ares in cells that
    are in the same dataset

    * SharedAbscissa/SeparateDiagrams/
    showing two diagrams painted next to each other
    using two separate coordinate planes
    sharing one X axis

    * Plane/OverlayedDiagrams/
    showing two diagrams painter over each other
    using two separate coordinate planes
    without sharing an axis

    * Plane/AdjustedBoundaries/
    demonstrating how to set the plane ranges

    * DrawIntoPainter/
    several adjustments made to this example, showing the
    results of drawing into pixmaps of different sizes


    Programmers manual:

    * Added some explanation about shared coordinate plane
    and their layouting concept.


    other documentation:

    * Added instructions about how to build statical lib on
    windows to the INSTALL file.


    Summary:
    --------
    Besides from the issues mentioned above, there were also
    a few other bugs fixed, like seg-faulting under rare
    conditions and similar things ... (e.g. there was an
    endless loop happening in case all of the points were
    positioned out of their respective axis' internal area).

    Also many parts of the implementation have been streamlined
    and/or re-factored for both, better maintainability and
    easier extensibility.

    In general using KD Chart 2.0.3 instead of an earlier 2.x
    version makes a lot of sense, and we strongly recommend it.
    __________________

    The KD Chart developers team.

