KDChart::TernaryPointDiagram Class Reference

#include <KDChartTernaryPointDiagram.h>

Inheritance diagram for KDChart::TernaryPointDiagram:

Inheritance graph
[legend]
Collaboration diagram for KDChart::TernaryPointDiagram:

Collaboration graph
[legend]
List of all members.

Detailed Description

A TernaryPointDiagram is a point diagram within a ternary coordinate plane.

Definition at line 41 of file KDChartTernaryPointDiagram.h.

Signals

void dataHidden ()
 This signal is emitted, when the hidden status of at least one data cell was (un)set.
void layoutChanged (AbstractDiagram *)
 Diagrams are supposed to emit this signal, when the layout of one of their element changes.
void modelsChanged ()
 This signal is emitted, when either the model or the AttributesModel is replaced.
void propertiesChanged ()
 Emitted upon change of a property of the Diagram.

Public Member Functions

bool allowOverlappingDataValueTexts () const
 
Returns:
Whether data value labels are allowed to overlap.

bool antiAliasing () const
 
Returns:
Whether anti-aliasing is to be used for rendering this diagram.

virtual AttributesModelattributesModel () const
 Returns the AttributesModel, that is used by this diagram.
QBrush brush (const QModelIndex &index) const
 Retrieve the brush to be used, for painting the datapoint at the given index in the model.
QBrush brush (int dataset) const
 Retrieve the brush to be used for the given dataset.
QBrush brush () const
 Retrieve the brush to be used for painting datapoints globally.
bool compare (const AbstractDiagram *other) const
 Returns true if both diagrams have the same settings.
AbstractCoordinatePlanecoordinatePlane () const
 The coordinate plane associated with the diagram.
const QPair< QPointF, QPointF > dataBoundaries () const
 Return the bottom left and top right data point, that the diagram will display (unless the grid adjusts these values).
virtual void dataChanged (const QModelIndex &topLeft, const QModelIndex &bottomRight)
 [reimplemented]
QList< QBrush > datasetBrushes () const
 The set of dataset brushes currently used, for use in legends, etc.
int datasetDimension () const
 The dataset dimension of a diagram determines, how many value dimensions it expects each datapoint to have.
QStringList datasetLabels () const
 The set of dataset labels currently displayed, for use in legends, etc.
QList< MarkerAttributesdatasetMarkers () const
 The set of dataset markers currently used, for use in legends, etc.
QList< QPen > datasetPens () const
 The set of dataset pens currently used, for use in legends, etc.
DataValueAttributes dataValueAttributes (const QModelIndex &index) const
 Retrieve the DataValueAttributes for the given index.
DataValueAttributes dataValueAttributes (int column) const
 Retrieve the DataValueAttributes for the given dataset.
DataValueAttributes dataValueAttributes () const
 Retrieve the DataValueAttributes speficied globally.
virtual void doItemsLayout ()
 [reimplemented]
virtual int horizontalOffset () const
 [reimplemented]
virtual QModelIndex indexAt (const QPoint &point) const
 [reimplemented]
QModelIndexList indexesAt (const QPoint &point) const
 This method is added alongside with indexAt from QAIM, since in kdchart multiple indexes can be displayed at the same spot.
bool isHidden (const QModelIndex &index) const
 Retrieve the hidden status for the given index.
bool isHidden (int column) const
 Retrieve the hidden status for the given dataset.
bool isHidden () const
 Retrieve the hidden status speficied globally.
virtual bool isIndexHidden (const QModelIndex &index) const
 [reimplemented]
QStringList itemRowLabels () const
 The set of item row labels currently displayed, for use in Abscissa axes, etc.
virtual QModelIndex moveCursor (CursorAction cursorAction, Qt::KeyboardModifiers modifiers)
 [reimplemented]
virtual void paint (PaintContext *paintContext)
 Draw the diagram contents to the rectangle and painter, that are passed in as part of the paint context.
void paintDataValueText (QPainter *painter, const QModelIndex &index, const QPointF &pos, double value)
void paintMarker (QPainter *painter, const QModelIndex &index, const QPointF &pos)
virtual void paintMarker (QPainter *painter, const MarkerAttributes &markerAttributes, const QBrush &brush, const QPen &, const QPointF &point, const QSizeF &size)
QPen pen (const QModelIndex &index) const
 Retrieve the pen to be used, for painting the datapoint at the given index in the model.
QPen pen (int dataset) const
 Retrieve the pen to be used for the given dataset.
QPen pen () const
 Retrieve the pen to be used for painting datapoints globally.
bool percentMode () const
virtual void resize (const QSizeF &area)
 Called by the widget's sizeEvent.
virtual void scrollTo (const QModelIndex &index, ScrollHint hint=EnsureVisible)
 [reimplemented]
void setAllowOverlappingDataValueTexts (bool allow)
 Set whether data value labels are allowed to overlap.
void setAntiAliasing (bool enabled)
 Set whether anti-aliasing is to be used while rendering this diagram.
virtual void setAttributesModel (AttributesModel *model)
 Associate an AttributesModel with this diagram.
void setBrush (const QBrush &brush)
 Set the brush to be used, for painting all datasets in the model.
void setBrush (int dataset, const QBrush &brush)
 Set the brush to be used, for painting the given dataset.
void setBrush (const QModelIndex &index, const QBrush &brush)
 Set the brush to be used, for painting the datapoint at the given index.
virtual void setCoordinatePlane (AbstractCoordinatePlane *plane)
 Set the coordinate plane associated with the diagram.
void setDatasetDimension (int dimension)
 Sets the dataset dimension of the diagram.
void setDataValueAttributes (const DataValueAttributes &a)
 Set the DataValueAttributes for all datapoints in the model.
void setDataValueAttributes (int dataset, const DataValueAttributes &a)
 Set the DataValueAttributes for the given dataset.
void setDataValueAttributes (const QModelIndex &index, const DataValueAttributes &a)
 Set the DataValueAttributes for the given index.
void setHidden (bool hidden)
 Hide (or unhide, resp.
void setHidden (int column, bool hidden)
 Hide (or unhide, resp.
void setHidden (const QModelIndex &index, bool hidden)
 Hide (or unhide, resp.
virtual void setModel (QAbstractItemModel *model)
 Associate a model with the diagram.
void setPen (const QPen &pen)
 Set the pen to be used, for painting all datasets in the model.
void setPen (int dataset, const QPen &pen)
 Set the pen to be used, for painting the given dataset.
void setPen (const QModelIndex &index, const QPen &pen)
 Set the pen to be used, for painting the datapoint at the given index.
void setPercentMode (bool percent)
virtual void setRootIndex (const QModelIndex &idx)
 Set the root index in the model, where the diagram starts referencing data for display.
virtual void setSelection (const QRect &rect, QItemSelectionModel::SelectionFlags command)
 [reimplemented]
void setUnitPrefix (const QString &prefix, Qt::Orientation orientation)
 Sets the unit prefix for all values.
void setUnitPrefix (const QString &prefix, int column, Qt::Orientation orientation)
 Sets the unit prefix for one value.
void setUnitSuffix (const QString &suffix, Qt::Orientation orientation)
 Sets the unit suffix for all values.
void setUnitSuffix (const QString &suffix, int column, Qt::Orientation orientation)
 Sets the unit suffix for one value.
 TernaryPointDiagram (QWidget *parent=0, TernaryCoordinatePlane *plane=0)
QString unitPrefix (Qt::Orientation orientation) const
 Returns the global unit prefix.
QString unitPrefix (int column, Qt::Orientation orientation, bool fallback=false) const
 Returns the unit prefix for a special value.
QString unitSuffix (Qt::Orientation orientation) const
 Returns the global unit suffix.
QString unitSuffix (int column, Qt::Orientation orientation, bool fallback=false) const
 Returns the unit suffix for a special value.
void update () const
void useDefaultColors ()
 Set the palette to be used, for painting datasets to the default palette.
void useRainbowColors ()
 Set the palette to be used, for painting datasets to the rainbow palette.
virtual bool usesExternalAttributesModel () const
 Returns whether the diagram is using its own built-in attributes model or an attributes model that was set via setAttributesModel.
void useSubduedColors ()
 Set the palette to be used, for painting datasets to the subdued palette.
virtual int verticalOffset () const
 [reimplemented]
virtual QRect visualRect (const QModelIndex &index) const
 [reimplemented]
virtual QRegion visualRegionForSelection (const QItemSelection &selection) const
 [reimplemented]
virtual ~TernaryPointDiagram ()

Protected Member Functions

QModelIndex attributesModelRootIndex () const
virtual const QPair< QPointF,
QPointF > 
calculateDataBoundaries () const
virtual bool checkInvariants (bool justReturnTheStatus=false) const
QModelIndex columnToIndex (int column) const
virtual void paintDataValueTexts (QPainter *painter)
virtual void paintMarkers (QPainter *painter)
void setAttributesModelRootIndex (const QModelIndex &)
void setDataBoundariesDirty () const
double valueForCell (int row, int column) const
 Helper method, retrieving the data value (DisplayRole) for a given row and column.


Constructor & Destructor Documentation

TernaryPointDiagram::TernaryPointDiagram ( QWidget parent = 0,
TernaryCoordinatePlane plane = 0 
) [explicit]

Definition at line 50 of file KDChartTernaryPointDiagram.cpp.

References KDChart::AbstractDiagram::setDatasetDimension().

00052     : AbstractTernaryDiagram( new Private(), parent, plane )
00053 {
00054     init();
00055     setDatasetDimension( 3 ); // the third column is implicit
00056 }

TernaryPointDiagram::~TernaryPointDiagram (  )  [virtual]

Definition at line 58 of file KDChartTernaryPointDiagram.cpp.

00059 {
00060 }


Member Function Documentation

bool AbstractDiagram::allowOverlappingDataValueTexts (  )  const [inherited]

Returns:
Whether data value labels are allowed to overlap.

Definition at line 440 of file KDChartAbstractDiagram.cpp.

References d.

Referenced by KDChart::AbstractDiagram::compare().

00441 {
00442     return d->allowOverlappingDataValueTexts;
00443 }

bool AbstractDiagram::antiAliasing (  )  const [inherited]

Returns:
Whether anti-aliasing is to be used for rendering this diagram.

Definition at line 451 of file KDChartAbstractDiagram.cpp.

References d.

Referenced by KDChart::AbstractDiagram::compare().

00452 {
00453     return d->antiAliasing;
00454 }

AttributesModel * AbstractDiagram::attributesModel (  )  const [virtual, inherited]

Returns the AttributesModel, that is used by this diagram.

By default each diagram owns its own AttributesModel, which should never be deleted. Only if a user-supplied AttributesModel has been set does the pointer returned here not belong to the diagram.

Returns:
The AttributesModel associated with the diagram.
See also:
setAttributesModel

Definition at line 280 of file KDChartAbstractDiagram.cpp.

References d.

Referenced by KDChart::AbstractDiagram::brush(), KDChart::AbstractDiagram::compare(), KDChart::AbstractDiagram::datasetBrushes(), KDChart::AbstractDiagram::datasetLabels(), KDChart::AbstractDiagram::datasetMarkers(), KDChart::AbstractDiagram::datasetPens(), KDChart::AbstractDiagram::dataValueAttributes(), KDChart::AbstractDiagram::isHidden(), KDChart::AbstractDiagram::itemRowLabels(), KDChart::RingDiagram::paint(), KDChart::PolarDiagram::paint(), KDChart::AbstractDiagram::pen(), KDChart::AbstractCartesianDiagram::setAttributesModel(), KDChart::BarDiagram::setBarAttributes(), KDChart::AbstractDiagram::setBrush(), KDChart::AbstractCartesianDiagram::setModel(), KDChart::AbstractDiagram::setPen(), and KDChart::TernaryLineDiagram::TernaryLineDiagram().

00281 {
00282     return d->attributesModel;
00283 }

QModelIndex AbstractDiagram::attributesModelRootIndex (  )  const [protected, inherited]

returns a QModelIndex pointing into the AttributesModel that corresponds to the root index of the diagram.

Definition at line 302 of file KDChartAbstractDiagram.cpp.

References d.

Referenced by KDChart::AbstractDiagram::datasetBrushes(), KDChart::AbstractDiagram::datasetLabels(), KDChart::AbstractDiagram::datasetMarkers(), KDChart::AbstractDiagram::datasetPens(), KDChart::AbstractDiagram::itemRowLabels(), KDChart::Plotter::numberOfAbscissaSegments(), KDChart::LineDiagram::numberOfAbscissaSegments(), KDChart::BarDiagram::numberOfAbscissaSegments(), KDChart::Plotter::numberOfOrdinateSegments(), KDChart::LineDiagram::numberOfOrdinateSegments(), KDChart::BarDiagram::numberOfOrdinateSegments(), KDChart::AbstractDiagram::valueForCell(), and KDChart::LineDiagram::valueForCellTesting().

00303 {
00304     if ( !d->attributesModelRootIndex.isValid() )
00305         d->attributesModelRootIndex = d->attributesModel->mapFromSource( rootIndex() );
00306     return d->attributesModelRootIndex;
00307 }

QBrush AbstractDiagram::brush ( const QModelIndex &  index  )  const [inherited]

Retrieve the brush to be used, for painting the datapoint at the given index in the model.

Parameters:
index The index of the datapoint in the model.
Returns:
The brush to use for painting.

Definition at line 838 of file KDChartAbstractDiagram.cpp.

References KDChart::AbstractDiagram::attributesModel(), KDChart::AbstractDiagram::brush(), KDChart::AttributesModel::data(), KDChart::DatasetBrushRole, and KDChart::AbstractDiagram::datasetDimension().

00839 {
00840     if( datasetDimension() > 1 )
00841         return brush( index.column() );
00842     return qVariantValue<QBrush>(
00843         attributesModel()->data(
00844             attributesModel()->mapFromSource( index ),
00845             DatasetBrushRole ) );
00846 }

QBrush AbstractDiagram::brush ( int  dataset  )  const [inherited]

Retrieve the brush to be used for the given dataset.

This will fall back automatically to what was set at model level, if there are no dataset specific settings.

Parameters:
dataset The dataset to retrieve the brush for.
Returns:
The brush to use for painting.

Definition at line 828 of file KDChartAbstractDiagram.cpp.

References KDChart::AbstractDiagram::attributesModel(), KDChart::AbstractDiagram::columnToIndex(), KDChart::AttributesModel::data(), KDChart::DatasetBrushRole, and KDChart::AbstractDiagram::datasetDimension().

00829 {
00830     if( datasetDimension() > 1 )
00831         dataset /= datasetDimension();
00832     return qVariantValue<QBrush>(
00833         attributesModel()->data(
00834             attributesModel()->mapFromSource( columnToIndex( dataset ) ),
00835             DatasetBrushRole ) );
00836 }

QBrush AbstractDiagram::brush (  )  const [inherited]

Retrieve the brush to be used for painting datapoints globally.

This will fall back automatically to the default settings, if there are no specific settings.

Returns:
The brush to use for painting.

Definition at line 822 of file KDChartAbstractDiagram.cpp.

References KDChart::AbstractDiagram::attributesModel(), KDChart::AttributesModel::data(), and KDChart::DatasetBrushRole.

Referenced by KDChart::AbstractDiagram::brush(), paint(), KDChart::TernaryLineDiagram::paint(), KDChart::RingDiagram::paint(), KDChart::PolarDiagram::paint(), and KDChart::AbstractDiagram::paintMarker().

00823 {
00824     return qVariantValue<QBrush>(
00825         attributesModel()->data( DatasetBrushRole ) );
00826 }

const QPair< QPointF, QPointF > TernaryPointDiagram::calculateDataBoundaries (  )  const [protected, virtual]

Implements KDChart::AbstractTernaryDiagram.

Definition at line 134 of file KDChartTernaryPointDiagram.cpp.

References TriangleBottomLeft, TriangleBottomRight, and TriangleHeight.

00135 {
00136     // this is a constant, because we defined it to be one:
00137     static QPair<QPointF, QPointF> Boundaries(
00138         TriangleBottomLeft,
00139         QPointF( TriangleBottomRight.x(), TriangleHeight ) );
00140     return Boundaries;
00141 }

bool AbstractDiagram::checkInvariants ( bool  justReturnTheStatus = false  )  const [protected, virtual, inherited]

Definition at line 1060 of file KDChartAbstractDiagram.cpp.

References KDChart::AbstractDiagram::coordinatePlane().

Referenced by KDChart::RingDiagram::calculateDataBoundaries(), KDChart::PolarDiagram::calculateDataBoundaries(), KDChart::Plotter::calculateDataBoundaries(), KDChart::PieDiagram::calculateDataBoundaries(), KDChart::LineDiagram::calculateDataBoundaries(), KDChart::BarDiagram::calculateDataBoundaries(), KDChart::RingDiagram::paint(), KDChart::PolarDiagram::paint(), KDChart::Plotter::paint(), KDChart::PieDiagram::paint(), KDChart::LineDiagram::paint(), KDChart::BarDiagram::paint(), KDChart::AbstractDiagram::paintDataValueTexts(), KDChart::AbstractDiagram::paintMarker(), and KDChart::AbstractDiagram::paintMarkers().

01061 {
01062     if( ! justReturnTheStatus ){
01063         Q_ASSERT_X ( model(), "AbstractDiagram::checkInvariants()",
01064                     "There is no usable model set, for the diagram." );
01065 
01066         Q_ASSERT_X ( coordinatePlane(), "AbstractDiagram::checkInvariants()",
01067                     "There is no usable coordinate plane set, for the diagram." );
01068     }
01069     return model() && coordinatePlane();
01070 }

QModelIndex AbstractDiagram::columnToIndex ( int  column  )  const [protected, inherited]

Definition at line 309 of file KDChartAbstractDiagram.cpp.

Referenced by KDChart::BarDiagram::barAttributes(), KDChart::AbstractDiagram::brush(), KDChart::AbstractDiagram::dataValueAttributes(), KDChart::AbstractDiagram::isHidden(), KDChart::Plotter::lineAttributes(), KDChart::LineDiagram::lineAttributes(), KDChart::AbstractDiagram::pen(), KDChart::AbstractPieDiagram::pieAttributes(), KDChart::BarDiagram::threeDBarAttributes(), KDChart::Plotter::threeDLineAttributes(), KDChart::LineDiagram::threeDLineAttributes(), and KDChart::AbstractPieDiagram::threeDPieAttributes().

00310 {   // FIXME (Mirko): shouldn't this be headerData? instead of the index for the first row?
00311     if( model() )
00312         return QModelIndex( model()->index( 0, column, rootIndex() ) );
00313     return QModelIndex();
00314 }

bool AbstractDiagram::compare ( const AbstractDiagram other  )  const [inherited]

Returns true if both diagrams have the same settings.

Definition at line 129 of file KDChartAbstractDiagram.cpp.

References KDChart::AbstractDiagram::allowOverlappingDataValueTexts(), KDChart::AbstractDiagram::antiAliasing(), KDChart::AbstractDiagram::attributesModel(), KDChart::AttributesModel::compare(), KDChart::AbstractDiagram::datasetDimension(), and KDChart::AbstractDiagram::percentMode().

00130 {
00131     if( other == this ) return true;
00132     if( ! other ){
00133         //qDebug() << "AbstractDiagram::compare() cannot compare to Null pointer";
00134         return false;
00135     }
00136     /*
00137     qDebug() << "\n             AbstractDiagram::compare() QAbstractScrollArea:";
00138             // compare QAbstractScrollArea properties
00139     qDebug() <<
00140             ((horizontalScrollBarPolicy() == other->horizontalScrollBarPolicy()) &&
00141             (verticalScrollBarPolicy()    == other->verticalScrollBarPolicy()));
00142     qDebug() << "AbstractDiagram::compare() QFrame:";
00143             // compare QFrame properties
00144     qDebug() <<
00145             ((frameShadow() == other->frameShadow()) &&
00146             (frameShape()   == other->frameShape()) &&
00147             (frameWidth()   == other->frameWidth()) &&
00148             (lineWidth()    == other->lineWidth()) &&
00149             (midLineWidth() == other->midLineWidth()));
00150     qDebug() << "AbstractDiagram::compare() QAbstractItemView:";
00151             // compare QAbstractItemView properties
00152     qDebug() <<
00153             ((alternatingRowColors() == other->alternatingRowColors()) &&
00154             (hasAutoScroll()         == other->hasAutoScroll()) &&
00155 #if QT_VERSION > 0x040199
00156             (dragDropMode()          == other->dragDropMode()) &&
00157             (dragDropOverwriteMode() == other->dragDropOverwriteMode()) &&
00158             (horizontalScrollMode()  == other->horizontalScrollMode ()) &&
00159             (verticalScrollMode()    == other->verticalScrollMode()) &&
00160 #endif
00161             (dragEnabled()           == other->dragEnabled()) &&
00162             (editTriggers()          == other->editTriggers()) &&
00163             (iconSize()              == other->iconSize()) &&
00164             (selectionBehavior()     == other->selectionBehavior()) &&
00165             (selectionMode()         == other->selectionMode()) &&
00166             (showDropIndicator()     == other->showDropIndicator()) &&
00167             (tabKeyNavigation()      == other->tabKeyNavigation()) &&
00168             (textElideMode()         == other->textElideMode()));
00169     qDebug() << "AbstractDiagram::compare() AttributesModel: ";
00170             // compare all of the properties stored in the attributes model
00171     qDebug() << attributesModel()->compare( other->attributesModel() );
00172     qDebug() << "AbstractDiagram::compare() own:";
00173             // compare own properties
00174     qDebug() <<
00175             ((rootIndex().column()            == other->rootIndex().column()) &&
00176             (rootIndex().row()                == other->rootIndex().row()) &&
00177             (allowOverlappingDataValueTexts() == other->allowOverlappingDataValueTexts()) &&
00178             (antiAliasing()                   == other->antiAliasing()) &&
00179             (percentMode()                    == other->percentMode()) &&
00180             (datasetDimension()               == other->datasetDimension()));
00181     */
00182     return  // compare QAbstractScrollArea properties
00183             (horizontalScrollBarPolicy() == other->horizontalScrollBarPolicy()) &&
00184             (verticalScrollBarPolicy()   == other->verticalScrollBarPolicy()) &&
00185             // compare QFrame properties
00186             (frameShadow()  == other->frameShadow()) &&
00187             (frameShape()   == other->frameShape()) &&
00188 // frameWidth is a read-only property defined by the style, it should not be in here:
00189             // (frameWidth()   == other->frameWidth()) &&
00190             (lineWidth()    == other->lineWidth()) &&
00191             (midLineWidth() == other->midLineWidth()) &&
00192             // compare QAbstractItemView properties
00193             (alternatingRowColors()  == other->alternatingRowColors()) &&
00194             (hasAutoScroll()         == other->hasAutoScroll()) &&
00195 #if QT_VERSION > 0x040199
00196             (dragDropMode()          == other->dragDropMode()) &&
00197             (dragDropOverwriteMode() == other->dragDropOverwriteMode()) &&
00198             (horizontalScrollMode()  == other->horizontalScrollMode ()) &&
00199             (verticalScrollMode()    == other->verticalScrollMode()) &&
00200 #endif
00201             (dragEnabled()           == other->dragEnabled()) &&
00202             (editTriggers()          == other->editTriggers()) &&
00203             (iconSize()              == other->iconSize()) &&
00204             (selectionBehavior()     == other->selectionBehavior()) &&
00205             (selectionMode()         == other->selectionMode()) &&
00206             (showDropIndicator()     == other->showDropIndicator()) &&
00207             (tabKeyNavigation()      == other->tabKeyNavigation()) &&
00208             (textElideMode()         == other->textElideMode()) &&
00209             // compare all of the properties stored in the attributes model
00210             attributesModel()->compare( other->attributesModel() ) &&
00211             // compare own properties
00212             (rootIndex().column()             == other->rootIndex().column()) &&
00213             (rootIndex().row()                == other->rootIndex().row()) &&
00214             (allowOverlappingDataValueTexts() == other->allowOverlappingDataValueTexts()) &&
00215             (antiAliasing()                   == other->antiAliasing()) &&
00216             (percentMode()                    == other->percentMode()) &&
00217             (datasetDimension()               == other->datasetDimension());
00218 }

AbstractCoordinatePlane * AbstractDiagram::coordinatePlane (  )  const [inherited]

The coordinate plane associated with the diagram.

This determines how coordinates in value space are mapped into pixel space. By default this is a CartesianCoordinatePlane.

Returns:
The coordinate plane associated with the diagram.

Definition at line 220 of file KDChartAbstractDiagram.cpp.

References d.

Referenced by KDChart::AbstractDiagram::checkInvariants(), KDChart::AbstractCartesianDiagram::layoutPlanes(), KDChart::PolarDiagram::paint(), KDChart::AbstractDiagram::paintDataValueTexts(), KDChart::AbstractDiagram::paintMarkers(), KDChart::AbstractPolarDiagram::polarCoordinatePlane(), and KDChart::AbstractCartesianDiagram::setCoordinatePlane().

00221 {
00222     return d->plane;
00223 }

const QPair< QPointF, QPointF > AbstractDiagram::dataBoundaries (  )  const [inherited]

Return the bottom left and top right data point, that the diagram will display (unless the grid adjusts these values).

This method returns a chached result of calculations done by calculateDataBoundaries. Classes derived from AbstractDiagram must implement the calculateDataBoundaries function, to specify their own way of calculating the data boundaries. If derived classes want to force recalculation of the data boundaries, they can call setDataBoundariesDirty()

Returned value is in diagram coordinates.

Definition at line 225 of file KDChartAbstractDiagram.cpp.

References KDChart::AbstractDiagram::calculateDataBoundaries(), and d.

Referenced by KDChart::CartesianCoordinatePlane::getRawDataBoundingRectFromDiagrams(), KDChart::PolarCoordinatePlane::layoutDiagrams(), KDChart::Plotter::paint(), KDChart::LineDiagram::paint(), and KDChart::BarDiagram::paint().

00226 {
00227     if( d->databoundariesDirty ){
00228         d->databoundaries = calculateDataBoundaries ();
00229         d->databoundariesDirty = false;
00230     }
00231     return d->databoundaries;
00232 }

void AbstractDiagram::dataChanged ( const QModelIndex &  topLeft,
const QModelIndex &  bottomRight 
) [virtual, inherited]

[reimplemented]

Definition at line 330 of file KDChartAbstractDiagram.cpp.

References KDChart::AbstractDiagram::setDataBoundariesDirty().

00332 {
00333     Q_UNUSED( topLeft );
00334     Q_UNUSED( bottomRight );
00335     // We are still too dumb to do intelligent updates...
00336     setDataBoundariesDirty();
00337     scheduleDelayedItemsLayout();
00338 }

void KDChart::AbstractDiagram::dataHidden (  )  [signal, inherited]

This signal is emitted, when the hidden status of at least one data cell was (un)set.

Referenced by KDChart::AbstractDiagram::setHidden().

QList< QBrush > AbstractDiagram::datasetBrushes (  )  const [inherited]

The set of dataset brushes currently used, for use in legends, etc.

Note:
Cell-level override brushes, if set, take precedence over the dataset values, so you might need to check these too, in order to find the brush, that is used for a single cell.
Returns:
The current set of dataset brushes.

Definition at line 1018 of file KDChartAbstractDiagram.cpp.

References KDChart::AbstractDiagram::attributesModel(), KDChart::AbstractDiagram::attributesModelRootIndex(), KDChart::AttributesModel::columnCount(), KDChart::DatasetBrushRole, and KDChart::AbstractDiagram::datasetDimension().

Referenced by KDChart::Legend::setBrushesFromDiagram().

01019 {
01020     QList<QBrush> ret;
01021     if( model() == 0 )
01022         return ret;
01023 
01024     const int columnCount = attributesModel()->columnCount(attributesModelRootIndex());
01025     for( int i = 0; i < columnCount / datasetDimension(); ++i )
01026         ret << qVariantValue<QBrush>( attributesModel()->headerData( i, Qt::Vertical, DatasetBrushRole ) );
01027 
01028     return ret;
01029 }

int AbstractDiagram::datasetDimension (  )  const [inherited]

The dataset dimension of a diagram determines, how many value dimensions it expects each datapoint to have.

For each dimension it will expect one column of values in the model. If the dimensionality is 1, automatic values will be used for the abscissa.

For example a diagram with the default dimension of 1, will have one column per datapoint (the y values) and will use automatic values for the x axis (1, 2, 3, ... n). If the dimension is 2, the diagram will use the first, (and the third, fifth, etc) columns as X values, and the second, (and the fourth, sixth, etc) column as Y values.

Returns:
The dataset dimension of the diagram.

Definition at line 1072 of file KDChartAbstractDiagram.cpp.

References d.

Referenced by KDChart::AbstractDiagram::brush(), KDChart::AbstractDiagram::compare(), KDChart::AbstractDiagram::datasetBrushes(), KDChart::AbstractDiagram::datasetLabels(), KDChart::AbstractDiagram::datasetMarkers(), KDChart::AbstractDiagram::datasetPens(), KDChart::LineDiagram::getCellValues(), KDChart::CartesianCoordinatePlane::getDataDimensionsList(), paint(), KDChart::TernaryLineDiagram::paint(), KDChart::AbstractDiagram::paintDataValueTexts(), KDChart::AbstractDiagram::paintMarkers(), KDChart::AbstractDiagram::pen(), KDChart::AbstractDiagram::setPen(), KDChart::Plotter::setType(), and KDChart::LineDiagram::setType().

01073 {
01074     return d->datasetDimension;
01075 }

QStringList AbstractDiagram::datasetLabels (  )  const [inherited]

The set of dataset labels currently displayed, for use in legends, etc.

Returns:
The set of dataset labels currently displayed.

Definition at line 1005 of file KDChartAbstractDiagram.cpp.

References KDChart::AbstractDiagram::attributesModel(), KDChart::AbstractDiagram::attributesModelRootIndex(), KDChart::AttributesModel::columnCount(), KDChart::AbstractDiagram::datasetDimension(), and KDChart::AttributesModel::headerData().

01006 {
01007     QStringList ret;
01008     if( model() == 0 )
01009         return ret;
01010     
01011     const int columnCount = attributesModel()->columnCount(attributesModelRootIndex());
01012     for( int i = 0; i < columnCount / datasetDimension(); ++i )
01013         ret << attributesModel()->headerData( i, Qt::Horizontal, Qt::DisplayRole ).toString();
01014     
01015     return ret;
01016 }

QList< MarkerAttributes > AbstractDiagram::datasetMarkers (  )  const [inherited]

The set of dataset markers currently used, for use in legends, etc.

Note:
Cell-level override markers, if set, take precedence over the dataset values, so you might need to check these too, in order to find the marker, that is shown for a single cell.
Returns:
The current set of dataset brushes.

Definition at line 1044 of file KDChartAbstractDiagram.cpp.

References KDChart::AbstractDiagram::attributesModel(), KDChart::AbstractDiagram::attributesModelRootIndex(), KDChart::AttributesModel::columnCount(), KDChart::AbstractDiagram::datasetDimension(), and KDChart::DataValueLabelAttributesRole.

01045 {
01046     QList<MarkerAttributes> ret;
01047     if( model() == 0 )
01048         return ret;
01049     
01050     const int columnCount = attributesModel()->columnCount(attributesModelRootIndex());
01051     for( int i = 0; i < columnCount / datasetDimension(); ++i )
01052     {
01053         const DataValueAttributes a =
01054             qVariantValue<DataValueAttributes>( attributesModel()->headerData( i, Qt::Vertical, DataValueLabelAttributesRole ) );
01055         ret << a.markerAttributes();
01056     }
01057     return ret;
01058 }

QList< QPen > AbstractDiagram::datasetPens (  )  const [inherited]

The set of dataset pens currently used, for use in legends, etc.

Note:
Cell-level override pens, if set, take precedence over the dataset values, so you might need to check these too, in order to find the pens, that is used for a single cell.
Returns:
The current set of dataset pens.

Definition at line 1031 of file KDChartAbstractDiagram.cpp.

References KDChart::AbstractDiagram::attributesModel(), KDChart::AbstractDiagram::attributesModelRootIndex(), KDChart::AttributesModel::columnCount(), KDChart::AbstractDiagram::datasetDimension(), and KDChart::DatasetPenRole.

01032 {
01033     QList<QPen> ret;
01034     if( model() == 0 )
01035         return ret;
01036     
01037     const int columnCount = attributesModel()->columnCount(attributesModelRootIndex());
01038     for( int i = 0; i < columnCount / datasetDimension(); ++i )
01039         ret << qVariantValue<QPen>( attributesModel()->headerData( i, Qt::Vertical, DatasetPenRole ) );
01040     
01041     return ret;
01042 }

DataValueAttributes AbstractDiagram::dataValueAttributes ( const QModelIndex &  index  )  const [inherited]

Retrieve the DataValueAttributes for the given index.

This will fall back automatically to what was set at dataset or model level, if there are no datapoint specific settings.

Parameters:
index The datapoint to retrieve the attributes for.
Returns:
The DataValueAttributes for the given index.

Definition at line 421 of file KDChartAbstractDiagram.cpp.

References KDChart::AbstractDiagram::attributesModel(), KDChart::AttributesModel::data(), and KDChart::DataValueLabelAttributesRole.

00422 {
00423     return qVariantValue<DataValueAttributes>(
00424         attributesModel()->data( attributesModel()->mapFromSource(index),
00425                                  KDChart::DataValueLabelAttributesRole ) );
00426 }

DataValueAttributes AbstractDiagram::dataValueAttributes ( int  column  )  const [inherited]

Retrieve the DataValueAttributes for the given dataset.

This will fall back automatically to what was set at model level, if there are no dataset specific settings.

Parameters:
column The dataset to retrieve the attributes for.
Returns:
The DataValueAttributes for the given dataset.

Definition at line 414 of file KDChartAbstractDiagram.cpp.

References KDChart::AbstractDiagram::attributesModel(), KDChart::AbstractDiagram::columnToIndex(), KDChart::AttributesModel::data(), and KDChart::DataValueLabelAttributesRole.

00415 {
00416     return qVariantValue<DataValueAttributes>(
00417         attributesModel()->data( attributesModel()->mapFromSource(columnToIndex( column )),
00418         KDChart::DataValueLabelAttributesRole ) );
00419 }

DataValueAttributes AbstractDiagram::dataValueAttributes (  )  const [inherited]

Retrieve the DataValueAttributes speficied globally.

This will fall back automatically to the default settings, if there are no specific settings.

Returns:
The global DataValueAttributes.

Definition at line 408 of file KDChartAbstractDiagram.cpp.

References KDChart::AbstractDiagram::attributesModel(), KDChart::DataValueLabelAttributesRole, and KDChart::AttributesModel::modelData().

Referenced by KDChart::AbstractDiagram::paintDataValueText(), KDChart::AbstractDiagram::paintMarker(), and KDChart::TernaryLineDiagram::TernaryLineDiagram().

00409 {
00410     return qVariantValue<DataValueAttributes>(
00411         attributesModel()->modelData( KDChart::DataValueLabelAttributesRole ) );
00412 }

void AbstractDiagram::doItemsLayout (  )  [virtual, inherited]

[reimplemented]

Definition at line 321 of file KDChartAbstractDiagram.cpp.

References d, and KDChart::AbstractDiagram::update().

00322 {
00323     if ( d->plane ) {
00324         d->plane->layoutDiagrams();
00325         update();
00326     }
00327     QAbstractItemView::doItemsLayout();
00328 }

int AbstractDiagram::horizontalOffset (  )  const [virtual, inherited]

[reimplemented]

Definition at line 950 of file KDChartAbstractDiagram.cpp.

00951 { return 0; }

QModelIndex AbstractDiagram::indexAt ( const QPoint &  point  )  const [virtual, inherited]

[reimplemented]

Definition at line 1098 of file KDChartAbstractDiagram.cpp.

References d.

01099 {
01100     return d->indexAt( point );
01101 }

QModelIndexList AbstractDiagram::indexesAt ( const QPoint &  point  )  const [inherited]

This method is added alongside with indexAt from QAIM, since in kdchart multiple indexes can be displayed at the same spot.

Definition at line 1103 of file KDChartAbstractDiagram.cpp.

References d.

01104 {
01105     return d->indexesAt( point );
01106 }

bool AbstractDiagram::isHidden ( const QModelIndex &  index  )  const [inherited]

Retrieve the hidden status for the given index.

This will fall back automatically to what was set at dataset or diagram level, if there are no datapoint specific settings.

Parameters:
index The datapoint to retrieve the hidden status for.
Returns:
The hidden status for the given index.

Definition at line 380 of file KDChartAbstractDiagram.cpp.

References KDChart::AbstractDiagram::attributesModel(), KDChart::AttributesModel::data(), and KDChart::DataHiddenRole.

00381 {
00382     return qVariantValue<bool>(
00383         attributesModel()->data(
00384             attributesModel()->mapFromSource(index),
00385             DataHiddenRole ) );
00386 }

bool AbstractDiagram::isHidden ( int  column  )  const [inherited]

Retrieve the hidden status for the given dataset.

This will fall back automatically to what was set at diagram level, if there are no dataset specific settings.

Parameters:
column The dataset to retrieve the hidden status for.
Returns:
The hidden status for the given dataset.

Definition at line 373 of file KDChartAbstractDiagram.cpp.

References KDChart::AbstractDiagram::attributesModel(), KDChart::AbstractDiagram::columnToIndex(), KDChart::AttributesModel::data(), and KDChart::DataHiddenRole.

00374 {
00375     return qVariantValue<bool>(
00376         attributesModel()->data(
00377             attributesModel()->mapFromSource(columnToIndex( column )),
00378             DataHiddenRole ) );
00379 }

bool AbstractDiagram::isHidden (  )  const [inherited]

Retrieve the hidden status speficied globally.

This will fall back automatically to the default settings ( = not hidden), if there are no specific settings.

Returns:
The global hidden status.

Definition at line 367 of file KDChartAbstractDiagram.cpp.

References KDChart::AbstractDiagram::attributesModel(), KDChart::DataHiddenRole, and KDChart::AttributesModel::modelData().

Referenced by KDChart::LineDiagram::valueForCellTesting().

00368 {
00369     return qVariantValue<bool>(
00370         attributesModel()->modelData( DataHiddenRole ) );
00371 }

bool AbstractDiagram::isIndexHidden ( const QModelIndex &  index  )  const [virtual, inherited]

[reimplemented]

Definition at line 956 of file KDChartAbstractDiagram.cpp.

00957 { return true; }

QStringList AbstractDiagram::itemRowLabels (  )  const [inherited]

The set of item row labels currently displayed, for use in Abscissa axes, etc.

Returns:
The set of item row labels currently displayed.

Definition at line 989 of file KDChartAbstractDiagram.cpp.

References KDChart::AbstractDiagram::attributesModel(), KDChart::AbstractDiagram::attributesModelRootIndex(), KDChart::AttributesModel::rowCount(), KDChart::AbstractDiagram::unitPrefix(), and KDChart::AbstractDiagram::unitSuffix().

00990 {
00991     QStringList ret;
00992     if( model() ){
00993         //qDebug() << "AbstractDiagram::itemRowLabels(): " << attributesModel()->rowCount(attributesModelRootIndex()) << "entries";
00994         const int rowCount = attributesModel()->rowCount(attributesModelRootIndex());
00995         for( int i = 0; i < rowCount; ++i ){
00996             //qDebug() << "item row label: " << attributesModel()->headerData( i, Qt::Vertical, Qt::DisplayRole ).toString();
00997             ret << unitPrefix( i, Qt::Horizontal, true ) +
00998                    attributesModel()->headerData( i, Qt::Vertical, Qt::DisplayRole ).toString() +
00999                    unitSuffix( i, Qt::Horizontal, true );
01000         }
01001     }
01002     return ret;
01003 }

void KDChart::AbstractDiagram::layoutChanged ( AbstractDiagram  )  [signal, inherited]

Diagrams are supposed to emit this signal, when the layout of one of their element changes.

Layouts can change, for example, when axes are added or removed, or when the configuration was changed in a way that the axes or the diagram itself are displayed in a different geometry. Changes in the diagrams coordinate system also result in the layoutChanged() signal being emitted.

Referenced by KDChart::AbstractDiagram::setDatasetDimension(), KDChart::AbstractPieDiagram::setPieAttributes(), KDChart::AbstractPieDiagram::setThreeDPieAttributes(), KDChart::Plotter::setType(), KDChart::LineDiagram::setType(), and KDChart::BarDiagram::setType().

void KDChart::AbstractDiagram::modelsChanged (  )  [signal, inherited]

This signal is emitted, when either the model or the AttributesModel is replaced.

Referenced by KDChart::AbstractDiagram::setAttributesModel(), and KDChart::AbstractDiagram::setModel().

QModelIndex AbstractDiagram::moveCursor ( CursorAction  cursorAction,
Qt::KeyboardModifiers  modifiers 
) [virtual, inherited]

[reimplemented]

Definition at line 947 of file KDChartAbstractDiagram.cpp.

00948 { return QModelIndex(); }

void TernaryPointDiagram::paint ( PaintContext paintContext  )  [virtual]

Draw the diagram contents to the rectangle and painter, that are passed in as part of the paint context.

Parameters:
paintContext All information needed for painting.

Reimplemented from KDChart::AbstractTernaryDiagram.

Definition at line 72 of file KDChartTernaryPointDiagram.cpp.

References KDChart::AbstractDiagram::brush(), KDChart::PaintContext::coordinatePlane(), d, KDChart::AbstractDiagram::datasetDimension(), KDChart::PaintContext::painter(), KDChart::AbstractDiagram::paintMarker(), KDChart::AbstractDiagram::pen(), KDChart::TernaryCoordinatePlane::translate(), and translate().

00073 {
00074     d->reverseMapper.clear();
00075 
00076     d->paint( paintContext );
00077 
00078     // sanity checks:
00079     if ( model() == 0 ) return;
00080 
00081     QPainter* p = paintContext->painter();
00082     PainterSaver s( p );
00083 
00084     TernaryCoordinatePlane* plane =
00085         (TernaryCoordinatePlane*) paintContext->coordinatePlane();
00086     Q_ASSERT( plane );
00087 
00088     double x, y, z;
00089 
00090     int columnCount = model()->columnCount( rootIndex() );
00091     for(int column=0; column<columnCount; column+=datasetDimension() )
00092     {
00093         int numrows = model()->rowCount( rootIndex() );
00094         for( int row = 0; row < numrows; row++ )
00095         {
00096             QModelIndex base = model()->index( row, column );
00097             // see if there is data otherwise skip
00098             if( ! model()->data( model()->index( row, column+0 ) ).isNull() )
00099             {
00100                 p->setPen( pen( base ) );
00101                 p->setBrush( brush( base ) );
00102 
00103                 // retrieve data
00104                 x = qMax( model()->data( model()->index( row, column+0 ) ).toDouble(),
00105                           0.0 );
00106                 y = qMax( model()->data( model()->index( row, column+1 ) ).toDouble(),
00107                           0.0 );
00108                 z = qMax( model()->data( model()->index( row, column+2 ) ).toDouble(),
00109                           0.0 );
00110 
00111                 // fix messed up data values (paint as much as possible)
00112                 double total = x + y + z;
00113                 if ( fabs( total ) > 3 * std::numeric_limits<double>::epsilon() ) {
00114                     TernaryPoint tPunkt( x / total, y / total );
00115                     QPointF diagramLocation = translate( tPunkt );
00116                     QPointF widgetLocation = plane->translate( diagramLocation );
00117 
00118                     paintMarker( p, model()->index( row, column ), widgetLocation );
00119                     QString text = tr( "(%1, %2, %3)" )
00120                                    .arg( x * 100, 0, 'f', 0 )
00121                                    .arg( y * 100, 0, 'f', 0 )
00122                                    .arg( z * 100, 0, 'f', 0 );
00123                     d->paintDataValueText( p, base, widgetLocation, text );
00124                 } else {
00125                     // ignore and do not paint this point, garbage data
00126                     qDebug() << "TernaryPointDiagram::paint: data point x/y/z:"
00127                              << x << "/" << y << "/" << z << "ignored, unusable.";
00128                 }
00129             }
00130         }
00131     }
00132 }

void AbstractDiagram::paintDataValueText ( QPainter *  painter,
const QModelIndex &  index,
const QPointF &  pos,
double  value 
) [inherited]

Definition at line 468 of file KDChartAbstractDiagram.cpp.

References d, KDChart::DataValueAttributes::dataLabel(), KDChart::AbstractDiagram::dataValueAttributes(), KDChart::DataValueAttributes::decimalDigits(), KDChart::DataValueAttributes::isVisible(), KDChartEnums::MeasureOrientationMinimum, KDChart::DataValueAttributes::position(), KDChart::DataValueAttributes::prefix(), KDChart::DataValueAttributes::suffix(), and KDChart::DataValueAttributes::textAttributes().

Referenced by KDChart::RingDiagram::paint(), KDChart::PolarDiagram::paint(), and KDChart::AbstractDiagram::paintDataValueTexts().

00472 {
00473     // paint one data series
00474     const DataValueAttributes a( dataValueAttributes(index) );
00475     if ( !a.isVisible() ) return;
00476 
00477     // handle decimal digits
00478     int decimalDigits = a.decimalDigits();
00479     int decimalPos = QString::number(  value ).indexOf( QLatin1Char( '.' ) );
00480     QString roundedValue;
00481     if ( a.dataLabel().isNull() ) {
00482         if ( decimalPos > 0 && value != 0 )
00483             roundedValue =  roundValues ( value, decimalPos, decimalDigits );
00484         else
00485             roundedValue = QString::number(  value );
00486     } else
00487         roundedValue = a.dataLabel();
00488         // handle prefix and suffix
00489     if ( !a.prefix().isNull() )
00490         roundedValue.prepend( a.prefix() );
00491 
00492     if ( !a.suffix().isNull() )
00493         roundedValue.append( a.suffix() );
00494 
00495     const TextAttributes ta( a.textAttributes() );
00496     // FIXME draw the non-text bits, background, etc
00497     if ( ta.isVisible() ) {
00498 
00499         QPointF pt( pos );
00500         /* for debugging:
00501         PainterSaver painterSaver( painter );
00502         painter->setPen( Qt::black );
00503         painter->drawLine( pos - QPointF( 1,1), pos + QPointF( 1,1) );
00504         painter->drawLine( pos - QPointF(-1,1), pos + QPointF(-1,1) );
00505         */
00506 
00507         QTextDocument doc;
00508         if( Qt::mightBeRichText( roundedValue ) )
00509             doc.setHtml( roundedValue );
00510         else
00511             doc.setPlainText( roundedValue );
00512 
00513         const RelativePosition relPos( a.position( value >= 0.0 ) );
00514         const Qt::Alignment alignBottomLeft = Qt::AlignBottom | Qt::AlignLeft;
00515         const QFont calculatedFont( ta.calculatedFont( d->plane, KDChartEnums::MeasureOrientationMinimum ) );
00516         const QRectF boundRect( d->cachedFontMetrics( calculatedFont, painter->device() )->boundingRect( doc.toPlainText() ) );
00517 
00518         // To place correctly
00519         pt.ry() -= boundRect.height();
00520 
00521         //qDebug() << "calculatedFont's point size:" << calculatedFont.pointSizeF();
00522         // adjust the text start point position, if alignment is not Bottom/Left
00523         if( (relPos.alignment() & alignBottomLeft) != alignBottomLeft ){
00524             if( relPos.alignment() & Qt::AlignRight )
00525                 pt.rx() -= boundRect.width();
00526             else if( relPos.alignment() & Qt::AlignHCenter )
00527                 pt.rx() -= 0.5 * boundRect.width();
00528 
00529             if( relPos.alignment() & Qt::AlignTop )
00530                 pt.ry() += boundRect.height();
00531             else if( relPos.alignment() & Qt::AlignVCenter )
00532                 pt.ry() += 0.5 * boundRect.height();
00533         }
00534 
00535         // FIXME draw the non-text bits, background, etc
00536 
00537         if ( a.showRepetitiveDataLabels() ||
00538              pos.x() <= d->lastX ||
00539              d->lastRoundedValue != roundedValue ) {
00540             d->lastRoundedValue = roundedValue;
00541             d->lastX = pos.x();
00542             PainterSaver painterSaver( painter );
00543 
00544             doc.setDefaultFont( calculatedFont );
00545             QAbstractTextDocumentLayout::PaintContext context;
00546             context.palette = palette();
00547             context.palette.setColor(QPalette::Text, ta.pen().color() );
00548 
00549             painter->translate( pt );
00550             painter->rotate( ta.rotation() );
00551 
00552             QAbstractTextDocumentLayout* layout = doc.documentLayout();
00553             layout->draw( painter, context );
00554         }
00555     }
00556 }

void AbstractDiagram::paintDataValueTexts ( QPainter *  painter  )  [protected, virtual, inherited]

Definition at line 584 of file KDChartAbstractDiagram.cpp.

References KDChart::AbstractDiagram::checkInvariants(), KDChart::AbstractDiagram::coordinatePlane(), KDChart::AbstractDiagram::datasetDimension(), KDChart::AbstractDiagram::paintDataValueText(), and KDChart::AbstractCoordinatePlane::translate().

00585 {
00586     if ( !checkInvariants() ) return;
00587     const int rowCount = model()->rowCount(rootIndex());
00588     const int columnCount = model()->columnCount(rootIndex());
00589     for ( int i=datasetDimension()-1; i<columnCount; i += datasetDimension() ) {
00590        for ( int j=0; j< rowCount; ++j ) {
00591            const QModelIndex index = model()->index( j, i, rootIndex() );
00592            double value = model()->data( index ).toDouble();
00593            const QPointF pos = coordinatePlane()->translate( QPointF( j, value ) );
00594            paintDataValueText( painter, index, pos, value );
00595        }
00596     }
00597 }

void AbstractDiagram::paintMarker ( QPainter *  painter,
const QModelIndex &  index,
const QPointF &  pos 
) [inherited]

Definition at line 600 of file KDChartAbstractDiagram.cpp.

References KDChart::AbstractDiagram::brush(), KDChart::AbstractDiagram::checkInvariants(), d, KDChart::AbstractDiagram::dataValueAttributes(), KDChart::MarkerAttributes::isVisible(), KDChart::DataValueAttributes::isVisible(), KDChart::DataValueAttributes::markerAttributes(), KDChart::MarkerAttributes::markerColor(), KDChart::MarkerAttributes::markerSize(), KDChart::AbstractDiagram::paintMarker(), and KDChart::MarkerAttributes::pen().

00603 {
00604     if ( !checkInvariants() ) return;
00605     DataValueAttributes a = dataValueAttributes(index);
00606     if ( !a.isVisible() ) return;
00607     const MarkerAttributes &ma = a.markerAttributes();
00608     if ( !ma.isVisible() ) return;
00609 
00610     PainterSaver painterSaver( painter );
00611     QSizeF maSize( ma.markerSize() );
00612     QBrush indexBrush( brush( index ) );
00613     QPen indexPen( ma.pen() );
00614     if ( ma.markerColor().isValid() )
00615         indexBrush.setColor( ma.markerColor() );
00616 
00617     paintMarker( painter, ma, indexBrush, indexPen, pos, maSize );
00618 
00619     // workaround: BC cannot be changed, otherwise we would pass the
00620     // index down to next-lower paintMarker function. So far, we
00621     // basically save a circle of radius maSize at pos in the
00622     // reverseMapper. This means that ^^^ this version of paintMarker
00623     // needs to be called to reverse-map the marker.
00624     d->reverseMapper.addCircle( index.row(), index.column(), pos, 2 * maSize );
00625 }

void AbstractDiagram::paintMarker ( QPainter *  painter,
const MarkerAttributes markerAttributes,
const QBrush &  brush,
const QPen &  ,
const QPointF &  point,
const QSizeF &  size 
) [virtual, inherited]

Definition at line 627 of file KDChartAbstractDiagram.cpp.

References KDChart::MarkerAttributes::Marker1Pixel, KDChart::MarkerAttributes::Marker4Pixels, KDChart::MarkerAttributes::MarkerCircle, KDChart::MarkerAttributes::MarkerCross, KDChart::MarkerAttributes::MarkerDiamond, KDChart::MarkerAttributes::MarkerFastCross, KDChart::MarkerAttributes::MarkerRing, KDChart::MarkerAttributes::MarkerSquare, and KDChart::MarkerAttributes::markerStyle().

Referenced by paint(), KDChart::TernaryLineDiagram::paint(), KDChart::MarkerLayoutItem::paintIntoRect(), KDChart::AbstractDiagram::paintMarker(), and KDChart::AbstractDiagram::paintMarkers().

00633 {
00634     const QPen oldPen( painter->pen() );
00635     // Pen is used to paint 4Pixels - 1 Pixel - Ring and FastCross types.
00636     // make sure to use the brush color - see above in those cases.
00637     const bool isFourPixels = (markerAttributes.markerStyle() == MarkerAttributes::Marker4Pixels);
00638     if( isFourPixels || (markerAttributes.markerStyle() == MarkerAttributes::Marker1Pixel) ){
00639         // for high-performance point charts with tiny point markers:
00640         painter->setPen( QPen( brush.color().light() ) );
00641         if( isFourPixels ){
00642             const qreal x = pos.x();
00643             const qreal y = pos.y();
00644             painter->drawLine( QPointF(x-1.0,y-1.0),
00645                                QPointF(x+1.0,y-1.0) );
00646             painter->drawLine( QPointF(x-1.0,y),
00647                                QPointF(x+1.0,y) );
00648             painter->drawLine( QPointF(x-1.0,y+1.0),
00649                                QPointF(x+1.0,y+1.0) );
00650         }
00651         painter->drawPoint( pos );
00652     }else{
00653         PainterSaver painterSaver( painter );
00654         // we only a solid line surrounding the markers
00655         QPen painterPen( pen );
00656         painterPen.setStyle( Qt::SolidLine );
00657         painter->setPen( painterPen );
00658         painter->setBrush( brush );
00659         painter->setRenderHint ( QPainter::Antialiasing );
00660         painter->translate( pos );
00661         switch ( markerAttributes.markerStyle() ) {
00662             case MarkerAttributes::MarkerCircle:
00663                 painter->drawEllipse( QRectF( 0 - maSize.height()/2, 0 - maSize.width()/2,
00664                             maSize.height(), maSize.width()) );
00665                 break;
00666             case MarkerAttributes::MarkerSquare:
00667                 {
00668                     QRectF rect( 0 - maSize.width()/2, 0 - maSize.height()/2,
00669                                 maSize.width(), maSize.height() );
00670                     painter->drawRect( rect );
00671                     break;
00672                 }
00673             case MarkerAttributes::MarkerDiamond:
00674                 {
00675                     QVector <QPointF > diamondPoints;
00676                     QPointF top, left, bottom, right;
00677                     top    = QPointF( 0, 0 - maSize.height()/2 );
00678                     left   = QPointF( 0 - maSize.width()/2, 0 );
00679                     bottom = QPointF( 0, maSize.height()/2 );
00680                     right  = QPointF( maSize.width()/2, 0 );
00681                     diamondPoints << top << left << bottom << right;
00682                     painter->drawPolygon( diamondPoints );
00683                     break;
00684                 }
00685             // both handled on top of the method:
00686             case MarkerAttributes::Marker1Pixel:
00687             case MarkerAttributes::Marker4Pixels:
00688                     break;
00689             case MarkerAttributes::MarkerRing:
00690                 {
00691                     painter->setPen( QPen( brush.color() ) );
00692                     painter->setBrush( Qt::NoBrush );
00693                     painter->drawEllipse( QRectF( 0 - maSize.height()/2, 0 - maSize.width()/2,
00694                                         maSize.height(), maSize.width()) );
00695                     break;
00696                 }
00697             case MarkerAttributes::MarkerCross:
00698                 {
00699                     QRectF rect( maSize.width()*-0.5, maSize.height()*-0.2,
00700                                  maSize.width(), maSize.height()*0.4 );
00701                     painter->drawRect( rect );
00702                     rect.setTopLeft(QPointF( maSize.width()*-0.2, maSize.height()*-0.5 ));
00703                     rect.setSize(QSizeF( maSize.width()*0.4, maSize.height() ));
00704                     painter->drawRect( rect );
00705                     break;
00706                 }
00707             case MarkerAttributes::MarkerFastCross:
00708                 {
00709                     QPointF left, right, top, bottom;
00710                     left  = QPointF( -maSize.width()/2, 0 );
00711                     right = QPointF( maSize.width()/2, 0 );
00712                     top   = QPointF( 0, -maSize.height()/2 );
00713                     bottom= QPointF( 0, maSize.height()/2 );
00714                     painter->setPen( QPen( brush.color() ) );
00715                     painter->drawLine( left, right );
00716                     painter->drawLine(  top, bottom );
00717                     break;
00718                 }
00719             default:
00720                 Q_ASSERT_X ( false, "paintMarkers()",
00721                             "Type item does not match a defined Marker Type." );
00722         }
00723     }
00724     painter->setPen( oldPen );
00725 }

void AbstractDiagram::paintMarkers ( QPainter *  painter  )  [protected, virtual, inherited]

Definition at line 727 of file KDChartAbstractDiagram.cpp.

References KDChart::AbstractDiagram::checkInvariants(), KDChart::AbstractDiagram::coordinatePlane(), KDChart::AbstractDiagram::datasetDimension(), KDChart::AbstractDiagram::paintMarker(), and KDChart::AbstractCoordinatePlane::translate().

00728 {
00729     if ( !checkInvariants() ) return;
00730     const int rowCount = model()->rowCount(rootIndex());
00731     const int columnCount = model()->columnCount(rootIndex());
00732     for ( int i=datasetDimension()-1; i<columnCount; i += datasetDimension() ) {
00733        for ( int j=0; j< rowCount; ++j ) {
00734            const QModelIndex index = model()->index( j, i, rootIndex() );
00735            double value = model()->data( index ).toDouble();
00736            const QPointF pos = coordinatePlane()->translate( QPointF( j, value ) );
00737            paintMarker( painter, index, pos );
00738        }
00739     }
00740 }

QPen AbstractDiagram::pen ( const QModelIndex &  index  )  const [inherited]

Retrieve the pen to be used, for painting the datapoint at the given index in the model.

Parameters:
index The index of the datapoint in the model.
Returns:
The pen to use for painting.

Definition at line 788 of file KDChartAbstractDiagram.cpp.

References KDChart::AbstractDiagram::attributesModel(), KDChart::AttributesModel::data(), KDChart::AbstractDiagram::datasetDimension(), KDChart::DatasetPenRole, and KDChart::AbstractDiagram::pen().

00789 {
00790     if( datasetDimension() > 1 )
00791         return pen( index.column() );
00792     return qVariantValue<QPen>(
00793         attributesModel()->data(
00794             attributesModel()->mapFromSource( index ),
00795             DatasetPenRole ) );
00796 }

QPen AbstractDiagram::pen ( int  dataset  )  const [inherited]

Retrieve the pen to be used for the given dataset.

This will fall back automatically to what was set at model level, if there are no dataset specific settings.

Parameters:
dataset The dataset to retrieve the pen for.
Returns:
The pen to use for painting.

Definition at line 777 of file KDChartAbstractDiagram.cpp.

References KDChart::AbstractDiagram::attributesModel(), KDChart::AbstractDiagram::columnToIndex(), KDChart::AttributesModel::data(), KDChart::AbstractDiagram::datasetDimension(), and KDChart::DatasetPenRole.

00778 {
00779     if( datasetDimension() > 1 )
00780         dataset /= datasetDimension();
00781 
00782     return qVariantValue<QPen>(
00783         attributesModel()->data(
00784             attributesModel()->mapFromSource( columnToIndex( dataset ) ),
00785             DatasetPenRole ) );
00786 }

QPen AbstractDiagram::pen (  )  const [inherited]

Retrieve the pen to be used for painting datapoints globally.

This will fall back automatically to the default settings, if there are no specific settings.

Returns:
The pen to use for painting.

Definition at line 771 of file KDChartAbstractDiagram.cpp.

References KDChart::AbstractDiagram::attributesModel(), KDChart::AttributesModel::data(), and KDChart::DatasetPenRole.

Referenced by paint(), KDChart::TernaryLineDiagram::paint(), and KDChart::AbstractDiagram::pen().

00772 {
00773     return qVariantValue<QPen>(
00774         attributesModel()->data( DatasetPenRole ) );
00775 }

bool AbstractDiagram::percentMode (  )  const [inherited]

Definition at line 462 of file KDChartAbstractDiagram.cpp.

References d.

Referenced by KDChart::AbstractDiagram::compare(), and KDChart::CartesianCoordinatePlane::getDataDimensionsList().

00463 {
00464     return d->percent;
00465 }

void KDChart::AbstractDiagram::propertiesChanged (  )  [signal, inherited]

Emitted upon change of a property of the Diagram.

Referenced by KDChart::Plotter::resetLineAttributes(), KDChart::LineDiagram::resetLineAttributes(), KDChart::AbstractDiagram::setAllowOverlappingDataValueTexts(), KDChart::AbstractDiagram::setAntiAliasing(), KDChart::BarDiagram::setBarAttributes(), KDChart::AbstractDiagram::setBrush(), KDChart::AbstractDiagram::setDataValueAttributes(), KDChart::Plotter::setLineAttributes(), KDChart::LineDiagram::setLineAttributes(), KDChart::AbstractDiagram::setPen(), KDChart::AbstractDiagram::setPercentMode(), KDChart::BarDiagram::setThreeDBarAttributes(), KDChart::Plotter::setThreeDLineAttributes(), KDChart::LineDiagram::setThreeDLineAttributes(), KDChart::Plotter::setType(), KDChart::LineDiagram::setType(), KDChart::BarDiagram::setType(), KDChart::Plotter::setValueTrackerAttributes(), and KDChart::LineDiagram::setValueTrackerAttributes().

void TernaryPointDiagram::resize ( const QSizeF &  area  )  [virtual]

Called by the widget's sizeEvent.

Adjust all internal structures, that are calculated, dependending on the size of the widget.

Parameters:
area 

Implements KDChart::AbstractTernaryDiagram.

Definition at line 67 of file KDChartTernaryPointDiagram.cpp.

00068 {
00069     Q_UNUSED( area );
00070 }

void AbstractDiagram::scrollTo ( const QModelIndex &  index,
ScrollHint  hint = EnsureVisible 
) [virtual, inherited]

[reimplemented]

Definition at line 942 of file KDChartAbstractDiagram.cpp.

00943 {}

void AbstractDiagram::setAllowOverlappingDataValueTexts ( bool  allow  )  [inherited]

Set whether data value labels are allowed to overlap.

Parameters:
allow True means that overlapping labels are allowed.

Definition at line 434 of file KDChartAbstractDiagram.cpp.

References d, and KDChart::AbstractDiagram::propertiesChanged().

00435 {
00436     d->allowOverlappingDataValueTexts = allow;
00437     emit propertiesChanged();
00438 }

void AbstractDiagram::setAntiAliasing ( bool  enabled  )  [inherited]

Set whether anti-aliasing is to be used while rendering this diagram.

Parameters:
enabled True means that AA is enabled.

Definition at line 445 of file KDChartAbstractDiagram.cpp.

References d, and KDChart::AbstractDiagram::propertiesChanged().

00446 {
00447     d->antiAliasing = enabled;
00448     emit propertiesChanged();
00449 }

void AbstractDiagram::setAttributesModel ( AttributesModel model  )  [virtual, inherited]

Associate an AttributesModel with this diagram.

Note that the diagram does _not_ take ownership of the AttributesModel. This should thus only be used with AttributesModels that have been explicitely created by the user, and are owned by her. Setting an AttributesModel that is internal to another diagram is an error.

Correct:

 AttributesModel *am = new AttributesModel( model, 0 );
 diagram1->setAttributesModel( am );
 diagram2->setAttributesModel( am );

Wrong:

 diagram1->setAttributesModel( diagram2->attributesModel() );

Parameters:
model The AttributesModel to use for this diagram.
See also:
AttributesModel, usesExternalAttributesModel

Reimplemented in KDChart::AbstractCartesianDiagram.

Definition at line 255 of file KDChartAbstractDiagram.cpp.

References d, KDChart::AbstractDiagram::modelsChanged(), and KDChart::AbstractDiagram::setDataBoundariesDirty().

Referenced by KDChart::AbstractCartesianDiagram::setAttributesModel().

00256 {
00257     if( amodel->sourceModel() != model() ) {
00258         qWarning("KDChart::AbstractDiagram::setAttributesModel() failed: "
00259                  "Trying to set an attributesmodel which works on a different "
00260                  "model than the diagram.");
00261         return;
00262     }
00263     if( qobject_cast<PrivateAttributesModel*>(amodel) ) {
00264         qWarning("KDChart::AbstractDiagram::setAttributesModel() failed: "
00265                  "Trying to set an attributesmodel that is private to another diagram.");
00266         return;
00267     }
00268     d->setAttributesModel(amodel);
00269     scheduleDelayedItemsLayout();
00270     setDataBoundariesDirty();
00271     emit modelsChanged();
00272 }

void AbstractDiagram::setAttributesModelRootIndex ( const QModelIndex &   )  [protected, inherited]

Definition at line 293 of file KDChartAbstractDiagram.cpp.

References d, and KDChart::AbstractDiagram::setDataBoundariesDirty().

Referenced by KDChart::AbstractDiagram::setRootIndex().

00294 {
00295     d->attributesModelRootIndex=idx;
00296     setDataBoundariesDirty();
00297     scheduleDelayedItemsLayout();
00298 }

void AbstractDiagram::setBrush ( const QBrush &  brush  )  [inherited]

Set the brush to be used, for painting all datasets in the model.

Parameters:
brush The brush to use.

Definition at line 806 of file KDChartAbstractDiagram.cpp.

References KDChart::AbstractDiagram::attributesModel(), KDChart::DatasetBrushRole, KDChart::AbstractDiagram::propertiesChanged(), and KDChart::AttributesModel::setModelData().

00807 {
00808     attributesModel()->setModelData(
00809         qVariantFromValue( brush ), DatasetBrushRole );
00810     emit propertiesChanged();
00811 }

void AbstractDiagram::setBrush ( int  dataset,
const QBrush &  brush 
) [inherited]

Set the brush to be used, for painting the given dataset.

Parameters:
dataset The dataset's column in the model.
brush The brush to use.

Definition at line 813 of file KDChartAbstractDiagram.cpp.

References KDChart::AbstractDiagram::attributesModel(), KDChart::DatasetBrushRole, KDChart::AbstractDiagram::propertiesChanged(), and KDChart::AttributesModel::setHeaderData().

00814 {
00815     attributesModel()->setHeaderData(
00816         column, Qt::Vertical,
00817         qVariantFromValue( brush ),
00818         DatasetBrushRole );
00819     emit propertiesChanged();
00820 }

void AbstractDiagram::setBrush ( const QModelIndex &  index,
const QBrush &  brush 
) [inherited]

Set the brush to be used, for painting the datapoint at the given index.

Parameters:
index The datapoint's index in the model.
brush The brush to use.

Definition at line 798 of file KDChartAbstractDiagram.cpp.

References KDChart::AbstractDiagram::attributesModel(), KDChart::DatasetBrushRole, KDChart::AbstractDiagram::propertiesChanged(), and KDChart::AttributesModel::setData().

00799 {
00800     attributesModel()->setData(
00801         attributesModel()->mapFromSource( index ),
00802         qVariantFromValue( brush ), DatasetBrushRole );
00803     emit propertiesChanged();
00804 }

void AbstractDiagram::setCoordinatePlane ( AbstractCoordinatePlane plane  )  [virtual, inherited]

Set the coordinate plane associated with the diagram.

This determines how coordinates in value space are mapped into pixel space. The chart takes ownership.

Returns:
The coordinate plane associated with the diagram.

Reimplemented in KDChart::AbstractCartesianDiagram.

Definition at line 316 of file KDChartAbstractDiagram.cpp.

References d.

Referenced by KDChart::AbstractCoordinatePlane::addDiagram(), KDChart::AbstractCartesianDiagram::setCoordinatePlane(), and KDChart::AbstractCoordinatePlane::takeDiagram().

00317 {
00318     d->plane = parent;
00319 }

void AbstractDiagram::setDataBoundariesDirty (  )  const [protected, inherited]

Definition at line 234 of file KDChartAbstractDiagram.cpp.

References d.

Referenced by KDChart::AbstractDiagram::dataChanged(), KDChart::Plotter::resize(), KDChart::LineDiagram::resize(), KDChart::BarDiagram::resize(), KDChart::AbstractDiagram::setAttributesModel(), KDChart::AbstractDiagram::setAttributesModelRootIndex(), KDChart::AbstractDiagram::setDatasetDimension(), KDChart::AbstractDiagram::setModel(), KDChart::BarDiagram::setThreeDBarAttributes(), KDChart::Plotter::setThreeDLineAttributes(), KDChart::LineDiagram::setThreeDLineAttributes(), KDChart::Plotter::setType(), KDChart::LineDiagram::setType(), and KDChart::BarDiagram::setType().

00235 {
00236     d->databoundariesDirty = true;
00237 }

void AbstractDiagram::setDatasetDimension ( int  dimension  )  [inherited]

Sets the dataset dimension of the diagram.

See also:
datasetDimension.
Parameters:
dimension 

Definition at line 1077 of file KDChartAbstractDiagram.cpp.

References d, KDChart::AbstractDiagram::layoutChanged(), and KDChart::AbstractDiagram::setDataBoundariesDirty().

Referenced by KDChart::Widget::setType(), KDChart::TernaryLineDiagram::TernaryLineDiagram(), and TernaryPointDiagram().

01078 {
01079     if ( d->datasetDimension == dimension ) return;
01080     d->datasetDimension = dimension;
01081     setDataBoundariesDirty();
01082     emit layoutChanged( this );
01083 }

void AbstractDiagram::setDataValueAttributes ( const DataValueAttributes a  )  [inherited]

Set the DataValueAttributes for all datapoints in the model.

Parameters:
a The attributes to set.

Definition at line 428 of file KDChartAbstractDiagram.cpp.

References d, KDChart::DataValueLabelAttributesRole, and KDChart::AbstractDiagram::propertiesChanged().

00429 {
00430     d->attributesModel->setModelData( qVariantFromValue( a ), DataValueLabelAttributesRole );
00431     emit propertiesChanged();
00432 }

void AbstractDiagram::setDataValueAttributes ( int  dataset,
const DataValueAttributes a 
) [inherited]

Set the DataValueAttributes for the given dataset.

Parameters:
dataset The dataset to set the attributes for.
a The attributes to set.

Definition at line 400 of file KDChartAbstractDiagram.cpp.

References d, KDChart::DataValueLabelAttributesRole, and KDChart::AbstractDiagram::propertiesChanged().

00401 {
00402     d->attributesModel->setHeaderData(
00403         column, Qt::Vertical,
00404         qVariantFromValue( a ), DataValueLabelAttributesRole );
00405     emit propertiesChanged();
00406 }

void AbstractDiagram::setDataValueAttributes ( const QModelIndex &  index,
const DataValueAttributes a 
) [inherited]

Set the DataValueAttributes for the given index.

Parameters:
index The datapoint to set the attributes for.
a The attributes to set.

Definition at line 389 of file KDChartAbstractDiagram.cpp.

References d, KDChart::DataValueLabelAttributesRole, and KDChart::AbstractDiagram::propertiesChanged().

00391 {
00392     d->attributesModel->setData(
00393         d->attributesModel->mapFromSource( index ),
00394         qVariantFromValue( a ),
00395         DataValueLabelAttributesRole );
00396     emit propertiesChanged();
00397 }

void AbstractDiagram::setHidden ( bool  hidden  )  [inherited]

Hide (or unhide, resp.

) all datapoints in the model.

Note:
Hidden data are still taken into account by the coordinate plane, so neither the grid nor your axes' ranges will change, when you hide data. For totally removing data from KD Chart's view you can use another approach: e.g. you could define a proxy model on top of your data model, and register the proxy model calling setModel() instead of registering your real data model.
Parameters:
hidden The hidden status to set.

Definition at line 359 of file KDChartAbstractDiagram.cpp.

References d, KDChart::AbstractDiagram::dataHidden(), and KDChart::DataHiddenRole.

00360 {
00361     d->attributesModel->setModelData(
00362         qVariantFromValue( hidden ),
00363         DataHiddenRole );
00364     emit dataHidden();
00365 }

void AbstractDiagram::setHidden ( int  column,
bool  hidden 
) [inherited]

Hide (or unhide, resp.

) a dataset.

Note:
Hidden data are still taken into account by the coordinate plane, so neither the grid nor your axes' ranges will change, when you hide data. For totally removing data from KD Chart's view you can use another approach: e.g. you could define a proxy model on top of your data model, and register the proxy model calling setModel() instead of registering your real data model.
Parameters:
column The dataset to set the hidden status for.
hidden The hidden status to set.

Definition at line 350 of file KDChartAbstractDiagram.cpp.

References d, KDChart::AbstractDiagram::dataHidden(), and KDChart::DataHiddenRole.

00351 {
00352     d->attributesModel->setHeaderData(
00353         column, Qt::Vertical,
00354         qVariantFromValue( hidden ),
00355         DataHiddenRole );
00356     emit dataHidden();
00357 }

void AbstractDiagram::setHidden ( const QModelIndex &  index,
bool  hidden 
) [inherited]

Hide (or unhide, resp.

) a data cell.

Note:
Hidden data are still taken into account by the coordinate plane, so neither the grid nor your axes' ranges will change, when you hide data. For totally removing data from KD Chart's view you can use another approach: e.g. you could define a proxy model on top of your data model, and register the proxy model calling setModel() instead of registering your real data model.
Parameters:
index The datapoint to set the hidden status for.
hidden The hidden status to set.

Definition at line 341 of file KDChartAbstractDiagram.cpp.

References d, KDChart::AbstractDiagram::dataHidden(), and KDChart::DataHiddenRole.

00342 {
00343     d->attributesModel->setData(
00344         d->attributesModel->mapFromSource( index ),
00345         qVariantFromValue( hidden ),
00346         DataHiddenRole );
00347     emit dataHidden();
00348 }

void AbstractDiagram::setModel ( QAbstractItemModel *  model  )  [virtual, inherited]

Associate a model with the diagram.

Reimplemented in KDChart::AbstractCartesianDiagram.

Definition at line 239 of file KDChartAbstractDiagram.cpp.

References d, KDChart::AttributesModel::initFrom(), KDChart::AbstractDiagram::modelsChanged(), and KDChart::AbstractDiagram::setDataBoundariesDirty().

Referenced by KDChart::AbstractCartesianDiagram::setModel(), and KDChart::Widget::setType().

00240 {
00241   QAbstractItemView::setModel( newModel );
00242   AttributesModel* amodel = new PrivateAttributesModel( newModel, this );
00243   amodel->initFrom( d->attributesModel );
00244   d->setAttributesModel(amodel);
00245   scheduleDelayedItemsLayout();
00246   setDataBoundariesDirty();
00247   emit modelsChanged();
00248 }

void AbstractDiagram::setPen ( const QPen &  pen  )  [inherited]

Set the pen to be used, for painting all datasets in the model.

Parameters:
pen The pen to use.

Definition at line 753 of file KDChartAbstractDiagram.cpp.

References KDChart::AbstractDiagram::attributesModel(), KDChart::DatasetPenRole, KDChart::AbstractDiagram::propertiesChanged(), and KDChart::AttributesModel::setModelData().

00754 {
00755     attributesModel()->setModelData(
00756         qVariantFromValue( pen ), DatasetPenRole );
00757     emit propertiesChanged();
00758 }

void AbstractDiagram::setPen ( int  dataset,
const QPen &  pen 
) [inherited]

Set the pen to be used, for painting the given dataset.

Parameters:
dataset The dataset's row in the model.
pen The pen to use.

Definition at line 760 of file KDChartAbstractDiagram.cpp.

References KDChart::AbstractDiagram::attributesModel(), KDChart::AbstractDiagram::datasetDimension(), KDChart::DatasetPenRole, KDChart::AbstractDiagram::propertiesChanged(), and KDChart::AttributesModel::setHeaderData().

00761 {
00762     if( datasetDimension() > 1 )
00763         column *= datasetDimension();
00764     attributesModel()->setHeaderData(
00765         column, Qt::Vertical,
00766         qVariantFromValue( pen ),
00767         DatasetPenRole );
00768     emit propertiesChanged();
00769 }

void AbstractDiagram::setPen ( const QModelIndex &  index,
const QPen &  pen 
) [inherited]

Set the pen to be used, for painting the datapoint at the given index.

Parameters:
index The datapoint's index in the model.
pen The pen to use.

Definition at line 743 of file KDChartAbstractDiagram.cpp.

References KDChart::AbstractDiagram::attributesModel(), KDChart::AbstractDiagram::datasetDimension(), KDChart::DatasetPenRole, KDChart::AbstractDiagram::propertiesChanged(), and KDChart::AttributesModel::setData().

00744 {
00745     if( datasetDimension() > 1 )
00746         return setPen( index.column(), pen );
00747     attributesModel()->setData(
00748         attributesModel()->mapFromSource( index ),
00749         qVariantFromValue( pen ), DatasetPenRole );
00750     emit propertiesChanged();
00751 }

void AbstractDiagram::setPercentMode ( bool  percent  )  [inherited]

Definition at line 456 of file KDChartAbstractDiagram.cpp.

References d, and KDChart::AbstractDiagram::propertiesChanged().

Referenced by KDChart::LineDiagram::setType(), and KDChart::BarDiagram::setType().

00457 {
00458     d->percent = percent;
00459     emit propertiesChanged();
00460 }

void AbstractDiagram::setRootIndex ( const QModelIndex &  idx  )  [virtual, inherited]

Set the root index in the model, where the diagram starts referencing data for display.

[reimplemented]

Reimplemented in KDChart::AbstractCartesianDiagram.

Definition at line 286 of file KDChartAbstractDiagram.cpp.

References d, and KDChart::AbstractDiagram::setAttributesModelRootIndex().

Referenced by KDChart::AbstractCartesianDiagram::setRootIndex().

00287 {
00288     QAbstractItemView::setRootIndex(idx);
00289     setAttributesModelRootIndex( d->attributesModel->mapFromSource(idx) );
00290 }

void AbstractDiagram::setSelection ( const QRect &  rect,
QItemSelectionModel::SelectionFlags  command 
) [virtual, inherited]

[reimplemented]

Definition at line 959 of file KDChartAbstractDiagram.cpp.

References d.

00960 {
00961     const QModelIndexList indexes = d->indexesIn( rect );
00962     QItemSelection selection;
00963     KDAB_FOREACH( const QModelIndex& index, indexes )
00964     {
00965         selection.append( QItemSelectionRange( index ) );
00966     }
00967     selectionModel()->select( selection, command );
00968 }

void AbstractDiagram::setUnitPrefix ( const QString &  prefix,
Qt::Orientation  orientation 
) [inherited]

Sets the unit prefix for all values.

Parameters:
prefix the prefix to be set
orientation the orientantion of the axis to set

Definition at line 864 of file KDChartAbstractDiagram.cpp.

References d.

00865 {
00866     d->unitPrefix[ orientation ] = prefix;
00867 }

void AbstractDiagram::setUnitPrefix ( const QString &  prefix,
int  column,
Qt::Orientation  orientation 
) [inherited]

Sets the unit prefix for one value.

Parameters:
prefix the prefix to be set
column the value using that prefix
orientation the orientantion of the axis to set

Definition at line 854 of file KDChartAbstractDiagram.cpp.

References d.

00855 {
00856     d->unitPrefixMap[ column ][ orientation ]= prefix;
00857 }

void AbstractDiagram::setUnitSuffix ( const QString &  suffix,
Qt::Orientation  orientation 
) [inherited]

Sets the unit suffix for all values.

Parameters:
suffix the suffix to be set
orientation the orientantion of the axis to set

Definition at line 885 of file KDChartAbstractDiagram.cpp.

References d.

00886 {
00887     d->unitSuffix[ orientation ] = suffix;
00888 }

void AbstractDiagram::setUnitSuffix ( const QString &  suffix,
int  column,
Qt::Orientation  orientation 
) [inherited]

Sets the unit suffix for one value.

Parameters:
suffix the suffix to be set
column the value using that suffix
orientation the orientantion of the axis to set

Definition at line 875 of file KDChartAbstractDiagram.cpp.

References d.

00876 {
00877     d->unitSuffixMap[ column ][ orientation ]= suffix;
00878 }

QString AbstractDiagram::unitPrefix ( Qt::Orientation  orientation  )  const [inherited]

Returns the global unit prefix.

Parameters:
orientation the orientation of the axis
Returns:
the unit prefix

Definition at line 908 of file KDChartAbstractDiagram.cpp.

References d.

00909 {
00910     return d->unitPrefix[ orientation ];
00911 }

QString AbstractDiagram::unitPrefix ( int  column,
Qt::Orientation  orientation,
bool  fallback = false 
) const [inherited]

Returns the unit prefix for a special value.

Parameters:
column the value which's prefix is requested
orientation the orientation of the axis
fallback if true, the global prefix is return when no specific one is set for that value
Returns:
the unit prefix

Definition at line 897 of file KDChartAbstractDiagram.cpp.

References d.

Referenced by KDChart::AbstractDiagram::itemRowLabels(), and KDChart::CartesianAxis::paintCtx().

00898 {
00899     if( !fallback || d->unitPrefixMap[ column ].contains( orientation ) )
00900         return d->unitPrefixMap[ column ][ orientation ];
00901     return d->unitPrefix[ orientation ];
00902 }

QString AbstractDiagram::unitSuffix ( Qt::Orientation  orientation  )  const [inherited]

Returns the global unit suffix.

Parameters:
orientation the orientation of the axis
Returns:
the unit siffix

Definition at line 931 of file KDChartAbstractDiagram.cpp.

References d.

00932 {
00933     return d->unitSuffix[ orientation ];
00934 }

QString AbstractDiagram::unitSuffix ( int  column,
Qt::Orientation  orientation,
bool  fallback = false 
) const [inherited]

Returns the unit suffix for a special value.

Parameters:
column the value which's suffix is requested
orientation the orientation of the axis
fallback if true, the global suffix is return when no specific one is set for that value
Returns:
the unit suffix

Definition at line 920 of file KDChartAbstractDiagram.cpp.

References d.

Referenced by KDChart::AbstractDiagram::itemRowLabels(), and KDChart::CartesianAxis::paintCtx().

00921 {
00922     if( !fallback || d->unitSuffixMap[ column ].contains( orientation ) )
00923         return d->unitSuffixMap[ column ][ orientation ];
00924     return d->unitSuffix[ orientation ];
00925 }

void AbstractDiagram::update (  )  const [inherited]

Definition at line 1091 of file KDChartAbstractDiagram.cpp.

References d.

Referenced by KDChart::AbstractDiagram::doItemsLayout().

01092 {
01093     //qDebug("KDChart::AbstractDiagram::update() called");
01094     if( d->plane )
01095         d->plane->update();
01096 }

void KDChart::AbstractDiagram::useDefaultColors (  )  [inherited]

Set the palette to be used, for painting datasets to the default palette.

See also:
KDChart::Palette. FIXME: fold into one usePalette (KDChart::Palette&) method

Definition at line 974 of file KDChartAbstractDiagram.cpp.

References d, and KDChart::AttributesModel::PaletteTypeDefault.

00975 {
00976     d->attributesModel->setPaletteType( AttributesModel::PaletteTypeDefault );
00977 }

void KDChart::AbstractDiagram::useRainbowColors (  )  [inherited]

Set the palette to be used, for painting datasets to the rainbow palette.

See also:
KDChart::Palette.

Definition at line 984 of file KDChartAbstractDiagram.cpp.

References d, and KDChart::AttributesModel::PaletteTypeRainbow.

00985 {
00986     d->attributesModel->setPaletteType( AttributesModel::PaletteTypeRainbow );
00987 }

bool AbstractDiagram::usesExternalAttributesModel (  )  const [virtual, inherited]

Returns whether the diagram is using its own built-in attributes model or an attributes model that was set via setAttributesModel.

See also:
setAttributesModel

Definition at line 274 of file KDChartAbstractDiagram.cpp.

References d.

00275 {
00276     return d->usesExternalAttributesModel();
00277 }

void KDChart::AbstractDiagram::useSubduedColors (  )  [inherited]

Set the palette to be used, for painting datasets to the subdued palette.

See also:
KDChart::Palette.

Definition at line 979 of file KDChartAbstractDiagram.cpp.

References d, and KDChart::AttributesModel::PaletteTypeSubdued.

00980 {
00981     d->attributesModel->setPaletteType( AttributesModel::PaletteTypeSubdued );
00982 }

double AbstractDiagram::valueForCell ( int  row,
int  column 
) const [protected, inherited]

Helper method, retrieving the data value (DisplayRole) for a given row and column.

Parameters:
row The row to query.
column The column to query.
Returns:
The value of the display role at the given row and column as a double.
Deprecated:

Definition at line 1085 of file KDChartAbstractDiagram.cpp.

References KDChart::AbstractDiagram::attributesModelRootIndex(), and d.

01086 {
01087     return d->attributesModel->data(
01088             d->attributesModel->index( row, column, attributesModelRootIndex() ) ).toDouble();
01089 }

int AbstractDiagram::verticalOffset (  )  const [virtual, inherited]

[reimplemented]

Definition at line 953 of file KDChartAbstractDiagram.cpp.

00954 { return 0; }

QRect AbstractDiagram::visualRect ( const QModelIndex &  index  )  const [virtual, inherited]

[reimplemented]

Definition at line 937 of file KDChartAbstractDiagram.cpp.

00938 {
00939     return QRect();
00940 }

QRegion AbstractDiagram::visualRegionForSelection ( const QItemSelection &  selection  )  const [virtual, inherited]

[reimplemented]

Definition at line 970 of file KDChartAbstractDiagram.cpp.

00971 { return QRegion(); }


The documentation for this class was generated from the following files:
Generated on Mon Sep 17 16:18:31 2007 for KD Chart 2 by  doxygen 1.5.1