#include <KDChartAbstractCartesianDiagram.h>
Inheritance diagram for KDChart::AbstractCartesianDiagram:
The AbstractCartesianDiagram interface adds those elements that are specific to diagrams based on a cartesian coordinate system to the basic AbstractDiagram interface.
Definition at line 45 of file KDChartAbstractCartesianDiagram.h.
Public Member Functions | |
AbstractCartesianDiagram (QWidget *parent=0, CartesianCoordinatePlane *plane=0) | |
virtual void | addAxis (CartesianAxis *axis) |
Add the axis to the diagram. | |
bool | allowOverlappingDataValueTexts () const |
bool | antiAliasing () const |
virtual AttributesModel * | attributesModel () const |
Returns the AttributesModel, that is used by this diagram. | |
virtual KDChart::CartesianAxisList | axes () const |
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. | |
bool | compare (const AbstractCartesianDiagram *other) const |
Returns true if both diagrams have the same settings. | |
AbstractCoordinatePlane * | coordinatePlane () 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< MarkerAttributes > | datasetMarkers () 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] | |
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 void | layoutPlanes () |
virtual QModelIndex | moveCursor (CursorAction cursorAction, Qt::KeyboardModifiers modifiers) |
[reimplemented] | |
virtual const int | numberOfAbscissaSegments () const=0 |
virtual const int | numberOfOrdinateSegments () const=0 |
virtual void | paint (PaintContext *paintContext)=0 |
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 AbstractCartesianDiagram * | referenceDiagram () const |
virtual QPointF | referenceDiagramOffset () const |
virtual void | resize (const QSizeF &area)=0 |
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.) all datapoints in the model. | |
void | setHidden (int column, bool hidden) |
Hide (or unhide, resp.) a dataset. | |
void | setHidden (const QModelIndex &index, bool hidden) |
Hide (or unhide, resp.) a data cell. | |
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 | setReferenceDiagram (AbstractCartesianDiagram *diagram, const QPointF &offset=QPointF()) |
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] | |
virtual void | takeAxis (CartesianAxis *axis) |
Removes the axis from the diagram, without deleting it. | |
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 | ~AbstractCartesianDiagram () |
Protected Member Functions | |
QModelIndex | attributesModelRootIndex () const |
virtual const QPair< QPointF, QPointF > | calculateDataBoundaries () const=0 |
virtual bool | checkInvariants (bool justReturnTheStatus=false) const |
QModelIndex | columnToIndex (int column) const |
void | dataHidden () |
This signal is emitted, when the hidden status of at least one data cell was (un)set. | |
void | modelsChanged () |
This signal is emitted, when either the model or the AttributesModel is replaced. | |
virtual void | paintDataValueTexts (QPainter *painter) |
virtual void | paintMarkers (QPainter *painter) |
void | propertiesChanged () |
Emitted upon change of a property of the Diagram. | |
void | setAttributesModelRootIndex (const QModelIndex &) |
void | setDataBoundariesDirty () const |
virtual double | threeDItemDepth (int column) const=0 |
virtual double | threeDItemDepth (const QModelIndex &index) const=0 |
double | valueForCell (int row, int column) const |
Helper method, retrieving the data value (DisplayRole) for a given row and column. | |
Protected Attributes | |
Q_SIGNALS | __pad0__: void layoutChanged( AbstractDiagram* ) |
|
Definition at line 76 of file KDChartAbstractCartesianDiagram.cpp.
00077 : AbstractDiagram ( new Private(), parent, plane ) 00078 { 00079 } |
|
Definition at line 81 of file KDChartAbstractCartesianDiagram.cpp. References d, and KDChart::AbstractAxis::deleteObserver().
00082 { 00083 Q_FOREACH( CartesianAxis* axis, d->axesList ) { 00084 axis->deleteObserver( this ); 00085 } 00086 d->axesList.clear(); 00087 } |
|
Add the axis to the diagram. The diagram takes ownership of the axis and will delete it. To gain back ownership (e.g. for assigning the axis to another diagram) use the takeAxis method, before calling addAxis on the other diagram.
Definition at line 89 of file KDChartAbstractCartesianDiagram.cpp. References KDChart::AbstractAxis::createObserver(), d, and layoutPlanes().
00090 { 00091 if ( !d->axesList.contains( axis ) ) { 00092 d->axesList.append( axis ); 00093 axis->createObserver( this ); 00094 layoutPlanes(); 00095 } 00096 } |
|
Definition at line 446 of file KDChartAbstractDiagram.cpp. References d.
00450 { |
|
Definition at line 457 of file KDChartAbstractDiagram.cpp. References d. Referenced by KDChart::LineDiagram::paint().
00461 { |
|
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.
Definition at line 286 of file KDChartAbstractDiagram.cpp. References d. Referenced by KDChart::RingDiagram::paint(), KDChart::PolarDiagram::paint(), and KDChart::BarDiagram::setBarAttributes().
00287 { 00288 return d->attributesModel; 00289 } |
|
returns a QModelIndex pointing into the AttributesModel that corresponds to the root index of the diagram. Definition at line 310 of file KDChartAbstractDiagram.cpp. References d. Referenced by KDChart::LineDiagram::calculateDataBoundaries(), KDChart::BarDiagram::calculateDataBoundaries(), KDChart::LineDiagram::numberOfAbscissaSegments(), KDChart::BarDiagram::numberOfAbscissaSegments(), KDChart::LineDiagram::numberOfOrdinateSegments(), KDChart::BarDiagram::numberOfOrdinateSegments(), KDChart::LineDiagram::paint(), KDChart::BarDiagram::paint(), and KDChart::AbstractDiagram::valueForCell().
00316 { |
|
Definition at line 108 of file KDChartAbstractCartesianDiagram.cpp. References KDChart::CartesianAxisList, and d.
00109 { 00110 return d->axesList; 00111 } |
|
Retrieve the brush to be used, for painting the datapoint at the given index in the model.
Definition at line 816 of file KDChartAbstractDiagram.cpp.
00822 : QRect AbstractDiagram::visualRect(const QModelIndex &) const |
|
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.
Definition at line 808 of file KDChartAbstractDiagram.cpp.
00815 { |
|
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.
Definition at line 802 of file KDChartAbstractDiagram.cpp. Referenced by KDChart::PieDiagram::paint(), KDChart::LineDiagram::paint(), and KDChart::AbstractDiagram::paintMarker().
00807 { |
|
Implemented in KDChart::BarDiagram, KDChart::LineDiagram, KDChart::PieDiagram, KDChart::PolarDiagram, and KDChart::RingDiagram. Referenced by KDChart::AbstractDiagram::dataBoundaries(). |
|
Definition at line 930 of file KDChartAbstractDiagram.cpp. References KDChart::AbstractDiagram::coordinatePlane(). Referenced by KDChart::RingDiagram::calculateDataBoundaries(), KDChart::PolarDiagram::calculateDataBoundaries(), KDChart::PieDiagram::calculateDataBoundaries(), KDChart::LineDiagram::calculateDataBoundaries(), KDChart::BarDiagram::calculateDataBoundaries(), KDChart::RingDiagram::paint(), KDChart::PolarDiagram::paint(), KDChart::PieDiagram::paint(), KDChart::LineDiagram::paint(), KDChart::BarDiagram::paint(), and KDChart::AbstractDiagram::paintMarker().
00930 { 00931 Q_ASSERT_X ( model(), "AbstractDiagram::checkInvariants()", 00932 "There is no usable model set, for the diagram." ); 00933 00934 Q_ASSERT_X ( coordinatePlane(), "AbstractDiagram::checkInvariants()", 00935 "There is no usable coordinate plane set, for the diagram." ); 00936 } 00937 return model() && coordinatePlane(); 00938 } 00939 00940 int AbstractDiagram::datasetDimension( ) const |
|
Definition at line 317 of file KDChartAbstractDiagram.cpp.
00323 { |
|
Returns true if both diagrams have the same settings.
Definition at line 135 of file KDChartAbstractDiagram.cpp.
00136 { 00137 if( other == this ) return true; 00138 if( ! other ){ 00139 //qDebug() << "AbstractDiagram::compare() cannot compare to Null pointer"; 00140 return false; 00141 } 00142 /* 00143 qDebug() << "\n AbstractDiagram::compare() QAbstractScrollArea:"; 00144 // compare QAbstractScrollArea properties 00145 qDebug() << 00146 ((horizontalScrollBarPolicy() == other->horizontalScrollBarPolicy()) && 00147 (verticalScrollBarPolicy() == other->verticalScrollBarPolicy())); 00148 qDebug() << "AbstractDiagram::compare() QFrame:"; 00149 // compare QFrame properties 00150 qDebug() << 00151 ((frameShadow() == other->frameShadow()) && 00152 (frameShape() == other->frameShape()) && 00153 (frameWidth() == other->frameWidth()) && 00154 (lineWidth() == other->lineWidth()) && 00155 (midLineWidth() == other->midLineWidth())); 00156 qDebug() << "AbstractDiagram::compare() QAbstractItemView:"; 00157 // compare QAbstractItemView properties 00158 qDebug() << 00159 ((alternatingRowColors() == other->alternatingRowColors()) && 00160 (hasAutoScroll() == other->hasAutoScroll()) && 00161 #if QT_VERSION > 0x040199 00162 (dragDropMode() == other->dragDropMode()) && 00163 (dragDropOverwriteMode() == other->dragDropOverwriteMode()) && 00164 (horizontalScrollMode() == other->horizontalScrollMode ()) && 00165 (verticalScrollMode() == other->verticalScrollMode()) && 00166 #endif 00167 (dragEnabled() == other->dragEnabled()) && 00168 (editTriggers() == other->editTriggers()) && 00169 (iconSize() == other->iconSize()) && 00170 (selectionBehavior() == other->selectionBehavior()) && 00171 (selectionMode() == other->selectionMode()) && 00172 (showDropIndicator() == other->showDropIndicator()) && 00173 (tabKeyNavigation() == other->tabKeyNavigation()) && 00174 (textElideMode() == other->textElideMode())); 00175 qDebug() << "AbstractDiagram::compare() AttributesModel: "; 00176 // compare all of the properties stored in the attributes model 00177 qDebug() << attributesModel()->compare( other->attributesModel() ); 00178 qDebug() << "AbstractDiagram::compare() own:"; 00179 // compare own properties 00180 qDebug() << 00181 ((rootIndex().column() == other->rootIndex().column()) && 00182 (rootIndex().row() == other->rootIndex().row()) && 00183 (allowOverlappingDataValueTexts() == other->allowOverlappingDataValueTexts()) && 00184 (antiAliasing() == other->antiAliasing()) && 00185 (percentMode() == other->percentMode()) && 00186 (datasetDimension() == other->datasetDimension())); 00187 */ 00188 return // compare QAbstractScrollArea properties 00189 (horizontalScrollBarPolicy() == other->horizontalScrollBarPolicy()) && 00190 (verticalScrollBarPolicy() == other->verticalScrollBarPolicy()) && 00191 // compare QFrame properties 00192 (frameShadow() == other->frameShadow()) && 00193 (frameShape() == other->frameShape()) && 00194 (frameWidth() == other->frameWidth()) && 00195 (lineWidth() == other->lineWidth()) && 00196 (midLineWidth() == other->midLineWidth()) && 00197 // compare QAbstractItemView properties 00198 (alternatingRowColors() == other->alternatingRowColors()) && 00199 (hasAutoScroll() == other->hasAutoScroll()) && 00200 #if QT_VERSION > 0x040199 00201 (dragDropMode() == other->dragDropMode()) && 00202 (dragDropOverwriteMode() == other->dragDropOverwriteMode()) && 00203 (horizontalScrollMode() == other->horizontalScrollMode ()) && 00204 (verticalScrollMode() == other->verticalScrollMode()) && 00205 #endif 00206 (dragEnabled() == other->dragEnabled()) && 00207 (editTriggers() == other->editTriggers()) && 00208 (iconSize() == other->iconSize()) && 00209 (selectionBehavior() == other->selectionBehavior()) && 00210 (selectionMode() == other->selectionMode()) && 00211 (showDropIndicator() == other->showDropIndicator()) && 00212 (tabKeyNavigation() == other->tabKeyNavigation()) && 00213 (textElideMode() == other->textElideMode()) && 00214 // compare all of the properties stored in the attributes model 00215 attributesModel()->compare( other->attributesModel() ) && 00216 // compare own properties 00217 (rootIndex().column() == other->rootIndex().column()) && 00218 (rootIndex().row() == other->rootIndex().row()) && 00219 (allowOverlappingDataValueTexts() == other->allowOverlappingDataValueTexts()) && 00220 (antiAliasing() == other->antiAliasing()) && 00221 (percentMode() == other->percentMode()) && 00222 (datasetDimension() == other->datasetDimension()); 00223 } |
|
Returns true if both diagrams have the same settings.
Definition at line 52 of file KDChartAbstractCartesianDiagram.cpp.
00053 { 00054 if( other == this ) return true; 00055 if( ! other ){ 00056 //qDebug() << "AbstractCartesianDiagram::compare() cannot compare to Null pointer"; 00057 return false; 00058 } 00059 /* 00060 qDebug() << "\n AbstractCartesianDiagram::compare():"; 00061 // compare own properties 00062 qDebug() << 00063 ((referenceDiagram() == other->referenceDiagram()) && 00064 ((! referenceDiagram()) || (referenceDiagramOffset() == other->referenceDiagramOffset()))); 00065 */ 00066 return // compare the base class 00067 ( static_cast<const AbstractDiagram*>(this)->compare( other ) ) && 00068 // compare own properties 00069 (referenceDiagram() == other->referenceDiagram()) && 00070 ((! referenceDiagram()) || (referenceDiagramOffset() == other->referenceDiagramOffset())); 00071 } |
|
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.
Definition at line 226 of file KDChartAbstractDiagram.cpp. References d. Referenced by KDChart::AbstractDiagram::checkInvariants(), layoutPlanes(), KDChart::PolarDiagram::paint(), KDChart::LineDiagram::paint(), KDChart::BarDiagram::paint(), KDChart::AbstractPolarDiagram::polarCoordinatePlane(), and setCoordinatePlane().
00227 { 00228 return d->plane; 00229 } |
|
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 231 of file KDChartAbstractDiagram.cpp. References KDChart::AbstractDiagram::calculateDataBoundaries(), and d. Referenced by KDChart::CartesianCoordinatePlane::getRawDataBoundingRectFromDiagrams(), KDChart::PolarCoordinatePlane::layoutDiagrams(), KDChart::LineDiagram::paint(), and KDChart::BarDiagram::paint().
00232 { 00233 if( d->databoundariesDirty ){ 00234 d->databoundaries = calculateDataBoundaries (); 00235 d->databoundariesDirty = false; 00236 } 00237 return d->databoundaries; 00238 } |
|
[reimplemented]
Definition at line 338 of file KDChartAbstractDiagram.cpp. References d.
00338 { 00339 // We are still too dumb to do intelligent updates... 00340 d->databoundariesDirty = true; 00341 scheduleDelayedItemsLayout(); 00342 } 00343 00344 |
|
This signal is emitted, when the hidden status of at least one data cell was (un)set.
|
|
The set of dataset brushes currently used, for use in legends, etc.
Definition at line 894 of file KDChartAbstractDiagram.cpp. Referenced by KDChart::Legend::buildLegend(), KDChart::Legend::datasetCount(), and KDChart::Legend::setBrushesFromDiagram().
00896 { 00897 QBrush brush = qVariantValue<QBrush>( attributesModel()->headerData( i, Qt::Vertical, DatasetBrushRole ) ); 00898 ret << brush; 00899 } 00900 00901 return ret; 00902 } 00903 00904 QList<QPen> AbstractDiagram::datasetPens() const |
|
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.
Definition at line 942 of file KDChartAbstractDiagram.cpp. References d. Referenced by KDChart::LineDiagram::calculateDataBoundaries(), KDChart::LineDiagram::getCellValues(), KDChart::CartesianCoordinatePlane::getDataDimensionsList(), KDChart::LineDiagram::paint(), and KDChart::LineDiagram::setType().
00946 { |
|
The set of dataset labels currently displayed, for use in legends, etc.
Definition at line 882 of file KDChartAbstractDiagram.cpp. Referenced by KDChart::Legend::buildLegend(), and KDChart::Legend::datasetCount().
00883 : " << attributesModel()->columnCount(attributesModelRootIndex()) << "entries"; 00884 const int columnCount = attributesModel()->columnCount(attributesModelRootIndex()); 00885 for( int i = datasetDimension()-1; i < columnCount; i += datasetDimension() ){ 00886 //qDebug() << "dataset label: " << attributesModel()->headerData( i, Qt::Horizontal, Qt::DisplayRole ).toString(); 00887 ret << attributesModel()->headerData( i, Qt::Horizontal, Qt::DisplayRole ).toString(); 00888 } 00889 return ret; 00890 } 00891 00892 QList<QBrush> AbstractDiagram::datasetBrushes() const |
|
The set of dataset markers currently used, for use in legends, etc.
Definition at line 917 of file KDChartAbstractDiagram.cpp. Referenced by KDChart::Legend::buildLegend().
00919 { 00920 DataValueAttributes a = 00921 qVariantValue<DataValueAttributes>( attributesModel()->headerData( i, Qt::Vertical, DataValueLabelAttributesRole ) ); 00922 const MarkerAttributes &ma = a.markerAttributes(); 00923 ret << ma; 00924 } 00925 return ret; 00926 } 00927 00928 bool AbstractDiagram::checkInvariants( bool justReturnTheStatus ) const |
|
The set of dataset pens currently used, for use in legends, etc.
Definition at line 906 of file KDChartAbstractDiagram.cpp. Referenced by KDChart::Legend::buildLegend().
00908 { 00909 QPen pen = qVariantValue<QPen>( attributesModel()->headerData( i, Qt::Vertical, DatasetPenRole ) ); 00910 ret << pen; 00911 } 00912 return ret; 00913 } 00914 00915 QList<MarkerAttributes> AbstractDiagram::datasetMarkers() const |
|
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.
Definition at line 427 of file KDChartAbstractDiagram.cpp.
00433 { |
|
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.
Definition at line 420 of file KDChartAbstractDiagram.cpp.
00426 { |
|
Retrieve the DataValueAttributes speficied globally. This will fall back automatically to the default settings, if there are no specific settings.
Definition at line 414 of file KDChartAbstractDiagram.cpp. Referenced by KDChart::AbstractDiagram::paintDataValueText(), and KDChart::AbstractDiagram::paintMarker().
00419 { |
|
[reimplemented]
Definition at line 329 of file KDChartAbstractDiagram.cpp. References d, and KDChart::AbstractDiagram::update().
00329 { 00330 d->plane->layoutDiagrams(); 00331 update(); 00332 } 00333 QAbstractItemView::doItemsLayout(); 00334 } 00335 00336 void AbstractDiagram::dataChanged( const QModelIndex &topLeft, |
|
[reimplemented]
Definition at line 839 of file KDChartAbstractDiagram.cpp.
00841 { return 0; }
|
|
[reimplemented]
Definition at line 833 of file KDChartAbstractDiagram.cpp.
00835 { return QModelIndex(); }
|
|
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.
Definition at line 386 of file KDChartAbstractDiagram.cpp. |
|
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.
Definition at line 379 of file KDChartAbstractDiagram.cpp.
00385 { |
|
Retrieve the hidden status speficied globally. This will fall back automatically to the default settings ( = not hidden), if there are no specific settings.
Definition at line 373 of file KDChartAbstractDiagram.cpp. Referenced by KDChart::Legend::buildLegend(), KDChart::LineDiagram::paint(), and KDChart::LineDiagram::valueForCellTesting().
00378 { |
|
[reimplemented]
Definition at line 845 of file KDChartAbstractDiagram.cpp.
00847 {} |
|
The set of item row labels currently displayed, for use in Abscissa axes, etc.
Definition at line 870 of file KDChartAbstractDiagram.cpp.
00871 : " << attributesModel()->rowCount(attributesModelRootIndex()) << "entries"; 00872 const int rowCount = attributesModel()->rowCount(attributesModelRootIndex()); 00873 for( int i = 0; i < rowCount; ++i ){ 00874 //qDebug() << "item row label: " << attributesModel()->headerData( i, Qt::Vertical, Qt::DisplayRole ).toString(); 00875 ret << attributesModel()->headerData( i, Qt::Vertical, Qt::DisplayRole ).toString(); 00876 } 00877 return ret; 00878 } 00879 00880 QStringList AbstractDiagram::datasetLabels() const |
|
Definition at line 113 of file KDChartAbstractCartesianDiagram.cpp. References KDChart::AbstractDiagram::coordinatePlane(), and KDChart::AbstractCoordinatePlane::layoutPlanes(). Referenced by addAxis(), and takeAxis().
00114 { 00115 //qDebug() << "KDChart::AbstractCartesianDiagram::layoutPlanes()"; 00116 AbstractCoordinatePlane* plane = coordinatePlane(); 00117 if( plane ){ 00118 plane->layoutPlanes(); 00119 //qDebug() << "KDChart::AbstractCartesianDiagram::layoutPlanes() OK"; 00120 } 00121 } |
|
This signal is emitted, when either the model or the AttributesModel is replaced.
Referenced by KDChart::AbstractDiagram::setAttributesModel(), and KDChart::AbstractDiagram::setModel(). |
|
[reimplemented]
Definition at line 836 of file KDChartAbstractDiagram.cpp.
00838 { return 0; }
|
|
Implemented in KDChart::BarDiagram, and KDChart::LineDiagram. |
|
Implemented in KDChart::BarDiagram, and KDChart::LineDiagram. |
|
Draw the diagram contents to the rectangle and painter, that are passed in as part of the paint context.
Implemented in KDChart::BarDiagram, KDChart::LineDiagram, KDChart::PieDiagram, KDChart::PolarDiagram, and KDChart::RingDiagram. |
|
Definition at line 474 of file KDChartAbstractDiagram.cpp. References KDChart::RelativePosition::alignment(), KDChart::TextAttributes::calculatedFont(), d, KDChart::DataValueAttributes::dataLabel(), KDChart::AbstractDiagram::dataValueAttributes(), KDChart::DataValueAttributes::decimalDigits(), KDChart::TextAttributes::isVisible(), KDChart::DataValueAttributes::isVisible(), KDChart::TextAttributes::pen(), KDChart::DataValueAttributes::position(), KDChart::DataValueAttributes::prefix(), KDChart::TextAttributes::rotation(), KDChart::DataValueAttributes::showRepetitiveDataLabels(), KDChart::DataValueAttributes::suffix(), and KDChart::DataValueAttributes::textAttributes(). Referenced by KDChart::RingDiagram::paint(), and KDChart::PolarDiagram::paint().
00476 { 00477 // paint one data series 00478 const DataValueAttributes a( dataValueAttributes(index) ); 00479 if ( !a.isVisible() ) return; 00480 00481 // handle decimal digits 00482 int decimalDigits = a.decimalDigits(); 00483 int decimalPos = QString::number( value ).indexOf( QLatin1Char( '.' ) ); 00484 QString roundedValue; 00485 if ( a.dataLabel().isNull() ) { 00486 if ( decimalPos > 0 && value != 0 ) 00487 roundedValue = roundValues ( value, decimalPos, decimalDigits ); 00488 else 00489 roundedValue = QString::number( value ); 00490 } else 00491 roundedValue = a.dataLabel(); 00492 // handle prefix and suffix 00493 if ( !a.prefix().isNull() ) 00494 roundedValue.prepend( a.prefix() ); 00495 00496 if ( !a.suffix().isNull() ) 00497 roundedValue.append( a.suffix() ); 00498 00499 const TextAttributes ta( a.textAttributes() ); 00500 // FIXME draw the non-text bits, background, etc 00501 if ( ta.isVisible() ) { 00502 00503 QPointF pt( pos ); 00504 /* for debugging: 00505 PainterSaver painterSaver( painter ); 00506 painter->setPen( Qt::black ); 00507 painter->drawLine( pos - QPointF( 1,1), pos + QPointF( 1,1) ); 00508 painter->drawLine( pos - QPointF(-1,1), pos + QPointF(-1,1) ); 00509 */ 00510 00511 // adjust the text start point position, if alignment is not Bottom/Left 00512 const RelativePosition relPos( a.position( value >= 0.0 ) ); 00513 const Qt::Alignment alignBottomLeft = Qt::AlignBottom | Qt::AlignLeft; 00514 const QFont calculatedFont( ta.calculatedFont( d->plane, KDChartEnums::MeasureOrientationMinimum ) ); 00515 //qDebug() << "calculatedFont's point size:" << calculatedFont.pointSizeF(); 00516 if( (relPos.alignment() & alignBottomLeft) != alignBottomLeft ){ 00517 const QRectF boundRect( 00518 d->cachedFontMetrics( calculatedFont, this )->boundingRect( roundedValue ) ); 00519 if( relPos.alignment() & Qt::AlignRight ) 00520 pt.rx() -= boundRect.width(); 00521 else if( relPos.alignment() & Qt::AlignHCenter ) 00522 pt.rx() -= 0.5 * boundRect.width(); 00523 00524 if( relPos.alignment() & Qt::AlignTop ) 00525 pt.ry() += boundRect.height(); 00526 else if( relPos.alignment() & Qt::AlignVCenter ) 00527 pt.ry() += 0.5 * boundRect.height(); 00528 } 00529 00530 // FIXME draw the non-text bits, background, etc 00531 00532 if ( a.showRepetitiveDataLabels() || 00533 pos.x() <= d->lastX || 00534 d->lastRoundedValue != roundedValue ) { 00535 d->lastRoundedValue = roundedValue; 00536 d->lastX = pos.x(); 00537 00538 PainterSaver painterSaver( painter ); 00539 painter->setPen( ta.pen() ); 00540 painter->setFont( calculatedFont ); 00541 painter->translate( pt ); 00542 painter->rotate( ta.rotation() ); 00543 painter->drawText( QPointF(0, 0), roundedValue ); 00544 } 00545 } 00546 } 00547 00548 |
|
Definition at line 576 of file KDChartAbstractDiagram.cpp.
00579 { 00580 for ( int j=0; j< rowCount; ++j ) { 00581 const QModelIndex index = model()->index( j, i, rootIndex() ); 00582 double value = model()->data( index ).toDouble(); 00583 const QPointF pos = coordinatePlane()->translate( QPointF( j, value ) ); 00584 paintDataValueText( painter, index, pos, value ); 00585 } 00586 } 00587 } 00588 00589 |
|
|
Definition at line 614 of file KDChartAbstractDiagram.cpp. References KDChart::MarkerAttributes::markerStyle(). Referenced by KDChart::MarkerLayoutItem::paintIntoRect(), and KDChart::AbstractDiagram::paintMarker().
00618 { 00619 00620 const QPen oldPen( painter->pen() ); 00621 // Pen is used to paint 4Pixels - 1 Pixel - Ring and FastCross types. 00622 // make sure to use the brush color - see above in those cases. 00623 const bool isFourPixels = (markerAttributes.markerStyle() == MarkerAttributes::Marker4Pixels); 00624 if( isFourPixels || (markerAttributes.markerStyle() == MarkerAttributes::Marker1Pixel) ){ 00625 // for high-performance point charts with tiny point markers: 00626 painter->setPen( QPen( brush.color().light() ) ); 00627 if( isFourPixels ){ 00628 const qreal x = pos.x(); 00629 const qreal y = pos.y(); 00630 painter->drawLine( QPointF(x-1.0,y-1.0), 00631 QPointF(x+1.0,y-1.0) ); 00632 painter->drawLine( QPointF(x-1.0,y), 00633 QPointF(x+1.0,y) ); 00634 painter->drawLine( QPointF(x-1.0,y+1.0), 00635 QPointF(x+1.0,y+1.0) ); 00636 } 00637 painter->drawPoint( pos ); 00638 }else{ 00639 PainterSaver painterSaver( painter ); 00640 // we only a solid line surrounding the markers 00641 QPen painterPen( pen ); 00642 painterPen.setStyle( Qt::SolidLine ); 00643 painter->setPen( painterPen ); 00644 painter->setBrush( brush ); 00645 painter->setRenderHint ( QPainter::Antialiasing ); 00646 painter->translate( pos ); 00647 switch ( markerAttributes.markerStyle() ) { 00648 case MarkerAttributes::MarkerCircle: 00649 painter->drawEllipse( QRectF( 0 - maSize.height()/2, 0 - maSize.width()/2, 00650 maSize.height(), maSize.width()) ); 00651 break; 00652 case MarkerAttributes::MarkerSquare: 00653 { 00654 QRectF rect( 0 - maSize.width()/2, 0 - maSize.height()/2, 00655 maSize.width(), maSize.height() ); 00656 painter->drawRect( rect ); 00657 painter->fillRect( rect, brush.color() ); 00658 break; 00659 } 00660 case MarkerAttributes::MarkerDiamond: 00661 { 00662 QVector <QPointF > diamondPoints; 00663 QPointF top, left, bottom, right; 00664 top = QPointF( 0, 0 - maSize.height()/2 ); 00665 left = QPointF( 0 - maSize.width()/2, 0 ); 00666 bottom = QPointF( 0, maSize.height()/2 ); 00667 right = QPointF( maSize.width()/2, 0 ); 00668 diamondPoints << top << left << bottom << right; 00669 painter->drawPolygon( diamondPoints ); 00670 break; 00671 } 00672 // both handled on top of the method: 00673 case MarkerAttributes::Marker1Pixel: 00674 case MarkerAttributes::Marker4Pixels: 00675 break; 00676 case MarkerAttributes::MarkerRing: 00677 { 00678 painter->setPen( QPen( brush.color() ) ); 00679 painter->setBrush( Qt::NoBrush ); 00680 painter->drawEllipse( QRectF( 0 - maSize.height()/2, 0 - maSize.width()/2, 00681 maSize.height(), maSize.width()) ); 00682 break; 00683 } 00684 case MarkerAttributes::MarkerCross: 00685 { 00686 QRectF rect( maSize.width()*-0.5, maSize.height()*-0.2, 00687 maSize.width(), maSize.height()*0.4 ); 00688 painter->drawRect( rect ); 00689 rect.setTopLeft(QPointF( maSize.width()*-0.2, maSize.height()*-0.5 )); 00690 rect.setSize(QSizeF( maSize.width()*0.4, maSize.height() )); 00691 painter->drawRect( rect ); 00692 break; 00693 } 00694 case MarkerAttributes::MarkerFastCross: 00695 { 00696 QPointF left, right, top, bottom; 00697 left = QPointF( -maSize.width()/2, 0 ); 00698 right = QPointF( maSize.width()/2, 0 ); 00699 top = QPointF( 0, -maSize.height()/2 ); 00700 bottom= QPointF( 0, maSize.height()/2 ); 00701 painter->setPen( QPen( brush.color() ) ); 00702 painter->drawLine( left, right ); 00703 painter->drawLine( top, bottom ); 00704 break; 00705 } 00706 default: 00707 Q_ASSERT_X ( false, "paintMarkers()", 00708 "Type item does not match a defined Marker Type." ); 00709 } 00710 } 00711 painter->setPen( oldPen ); 00712 } 00713 00714 void AbstractDiagram::paintMarkers( QPainter* painter ) |
|
Definition at line 716 of file KDChartAbstractDiagram.cpp.
00719 { 00720 for ( int j=0; j< rowCount; ++j ) { 00721 const QModelIndex index = model()->index( j, i, rootIndex() ); 00722 double value = model()->data( index ).toDouble(); 00723 const QPointF pos = coordinatePlane()->translate( QPointF( j, value ) ); 00724 paintMarker( painter, index, pos ); 00725 } 00726 } 00727 } 00728 00729 |
|
Retrieve the pen to be used, for painting the datapoint at the given index in the model.
Definition at line 770 of file KDChartAbstractDiagram.cpp.
00777 { |
|
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.
Definition at line 762 of file KDChartAbstractDiagram.cpp.
00769 { |
|
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.
Definition at line 756 of file KDChartAbstractDiagram.cpp. Referenced by KDChart::PieDiagram::paint(), and KDChart::LineDiagram::paint().
00761 { |
|
Definition at line 468 of file KDChartAbstractDiagram.cpp. References d. Referenced by KDChart::CartesianCoordinatePlane::getDataDimensionsList(). |
|
Emitted upon change of a property of the Diagram.
Referenced by KDChart::LineDiagram::resetLineAttributes(), KDChart::AbstractDiagram::setDataValueAttributes(), KDChart::LineDiagram::setLineAttributes(), KDChart::LineDiagram::setThreeDLineAttributes(), and KDChart::LineDiagram::setType(). |
|
Definition at line 146 of file KDChartAbstractCartesianDiagram.cpp. References d. Referenced by KDChart::LineDiagram::paint(), and referenceDiagramIsBarDiagram().
00147 { 00148 return d->referenceDiagram; 00149 } |
|
Definition at line 151 of file KDChartAbstractCartesianDiagram.cpp. References d.
00152 { 00153 return d->referenceDiagramOffset; 00154 } |
|
Called by the widget's sizeEvent. Adjust all internal structures, that are calculated, dependending on the size of the widget.
Implemented in KDChart::BarDiagram, KDChart::LineDiagram, KDChart::PieDiagram, KDChart::PolarDiagram, and KDChart::RingDiagram. |
|
[reimplemented]
Definition at line 830 of file KDChartAbstractDiagram.cpp.
00832 { return QModelIndex(); }
|
|
Set whether data value labels are allowed to overlap.
Definition at line 440 of file KDChartAbstractDiagram.cpp. References d.
00445 { |
|
Set whether anti-aliasing is to be used while rendering this diagram.
Definition at line 451 of file KDChartAbstractDiagram.cpp. References d.
00456 { |
|
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:
Wrong:
Definition at line 261 of file KDChartAbstractDiagram.cpp. References d, and KDChart::AbstractDiagram::modelsChanged().
00262 { 00263 if( amodel->sourceModel() != model() ) { 00264 qWarning("KDChart::AbstractDiagram::setAttributesModel() failed: " 00265 "Trying to set an attributesmodel which works on a different " 00266 "model than the diagram."); 00267 return; 00268 } 00269 if( qobject_cast<PrivateAttributesModel*>(amodel) ) { 00270 qWarning("KDChart::AbstractDiagram::setAttributesModel() failed: " 00271 "Trying to set an attributesmodel that is private to another diagram."); 00272 return; 00273 } 00274 d->setAttributesModel(amodel); 00275 scheduleDelayedItemsLayout(); 00276 d->databoundariesDirty = true; 00277 emit modelsChanged(); 00278 } |
|
Definition at line 301 of file KDChartAbstractDiagram.cpp. References d. |
|
Set the brush to be used, for painting all datasets in the model.
Definition at line 786 of file KDChartAbstractDiagram.cpp.
00792 { |
|
Set the brush to be used, for painting the given dataset.
Definition at line 793 of file KDChartAbstractDiagram.cpp.
00801 { |
|
Set the brush to be used, for painting the datapoint at the given index.
Definition at line 778 of file KDChartAbstractDiagram.cpp.
00785 { |
|
Set the coordinate plane associated with the diagram. This determines how coordinates in value space are mapped into pixel space. The chart takes ownership.
Reimplemented from KDChart::AbstractDiagram. Definition at line 123 of file KDChartAbstractCartesianDiagram.cpp. References KDChart::AbstractDiagram::coordinatePlane(), and KDChart::AbstractDiagram::setCoordinatePlane().
00124 { 00125 if( coordinatePlane() ) disconnect( coordinatePlane() ); 00126 AbstractDiagram::setCoordinatePlane(plane); 00127 00128 // show the axes, after all have been adjusted 00129 // (because they might be dependend on each other) 00130 /* 00131 if( plane ) 00132 Q_FOREACH( CartesianAxis* axis, d->axesList ) 00133 axis->show(); 00134 else 00135 Q_FOREACH( CartesianAxis* axis, d->axesList ) 00136 axis->hide(); 00137 */ 00138 } |
|
Definition at line 240 of file KDChartAbstractDiagram.cpp. References d. Referenced by KDChart::BarDiagram::setThreeDBarAttributes(), KDChart::LineDiagram::setThreeDLineAttributes(), KDChart::LineDiagram::setType(), and KDChart::BarDiagram::setType().
00241 { 00242 d->databoundariesDirty = true; 00243 } |
|
Sets the dataset dimension of the diagram.
Definition at line 947 of file KDChartAbstractDiagram.cpp. References d.
00954 { |
|
Set the DataValueAttributes for all datapoints in the model.
Definition at line 434 of file KDChartAbstractDiagram.cpp. References d.
00439 { |
|
Set the DataValueAttributes for the given dataset.
Definition at line 406 of file KDChartAbstractDiagram.cpp. References d.
00413 { |
|
Set the DataValueAttributes for the given index.
Definition at line 395 of file KDChartAbstractDiagram.cpp. References d, KDChart::DataValueLabelAttributesRole, and KDChart::AbstractDiagram::propertiesChanged().
00395 { 00396 d->attributesModel->setData( 00397 d->attributesModel->mapFromSource( index ), 00398 qVariantFromValue( a ), 00399 DataValueLabelAttributesRole ); 00400 emit propertiesChanged(); 00401 } 00402 00403 |
|
Hide (or unhide, resp.) all datapoints in the model.
Definition at line 365 of file KDChartAbstractDiagram.cpp. References d.
00372 { |
|
Hide (or unhide, resp.) a dataset.
Definition at line 356 of file KDChartAbstractDiagram.cpp. References d.
00364 { |
|
Hide (or unhide, resp.) a data cell.
Definition at line 347 of file KDChartAbstractDiagram.cpp. References d, and KDChart::DataHiddenRole.
00355 { |
|
Associate a model with the diagram.
Definition at line 245 of file KDChartAbstractDiagram.cpp. References d, KDChart::AttributesModel::initFrom(), and KDChart::AbstractDiagram::modelsChanged().
00246 { 00247 QAbstractItemView::setModel( newModel ); 00248 AttributesModel* amodel = new PrivateAttributesModel( newModel, this ); 00249 amodel->initFrom( d->attributesModel ); 00250 d->setAttributesModel(amodel); 00251 scheduleDelayedItemsLayout(); 00252 d->databoundariesDirty = true; 00253 emit modelsChanged(); 00254 } |
|
Set the pen to be used, for painting all datasets in the model.
Definition at line 740 of file KDChartAbstractDiagram.cpp.
00746 { |
|
Set the pen to be used, for painting the given dataset.
Definition at line 747 of file KDChartAbstractDiagram.cpp.
00755 { |
|
Set the pen to be used, for painting the datapoint at the given index.
Definition at line 732 of file KDChartAbstractDiagram.cpp.
00739 { |
|
Definition at line 462 of file KDChartAbstractDiagram.cpp. References d. Referenced by KDChart::LineDiagram::setType(), and KDChart::BarDiagram::setType().
00467 { |
|
Definition at line 140 of file KDChartAbstractCartesianDiagram.cpp. References d.
|
|
Set the root index in the model, where the diagram starts referencing data for display. [reimplemented] Definition at line 294 of file KDChartAbstractDiagram.cpp. References d. |
|
[reimplemented]
Definition at line 848 of file KDChartAbstractDiagram.cpp.
00850 { return QRegion(); }
|
|
Removes the axis from the diagram, without deleting it. The diagram no longer owns the axis, so it is the caller's responsibility to delete the axis.
Definition at line 98 of file KDChartAbstractCartesianDiagram.cpp. References d, KDChart::AbstractAxis::deleteObserver(), layoutPlanes(), and KDChart::AbstractLayoutItem::setParentWidget(). Referenced by KDChart::CartesianAxis::~CartesianAxis().
00099 { 00100 const int idx = d->axesList.indexOf( axis ); 00101 if( idx != -1 ) 00102 d->axesList.takeAt( idx ); 00103 axis->deleteObserver( this ); 00104 axis->setParentWidget( 0 ); 00105 layoutPlanes(); 00106 } |
|
Implemented in KDChart::BarDiagram, and KDChart::LineDiagram. |
|
Implemented in KDChart::BarDiagram, and KDChart::LineDiagram. |
|
Definition at line 961 of file KDChartAbstractDiagram.cpp. References d. Referenced by KDChart::AbstractDiagram::doItemsLayout(). |
|
Set the palette to be used, for painting datasets to the default palette.
Definition at line 855 of file KDChartAbstractDiagram.cpp. References d.
00859 { |
|
Set the palette to be used, for painting datasets to the rainbow palette.
Definition at line 865 of file KDChartAbstractDiagram.cpp. References d.
00869 { |
|
Returns whether the diagram is using its own built-in attributes model or an attributes model that was set via setAttributesModel.
Definition at line 280 of file KDChartAbstractDiagram.cpp. References d.
00281 { 00282 return d->usesExternalAttributesModel(); 00283 } |
|
Set the palette to be used, for painting datasets to the subdued palette.
Definition at line 860 of file KDChartAbstractDiagram.cpp. References d.
00864 { |
|
Helper method, retrieving the data value (DisplayRole) for a given row and column.
Definition at line 955 of file KDChartAbstractDiagram.cpp. References KDChart::AbstractDiagram::attributesModelRootIndex(), and d. Referenced by KDChart::LineDiagram::paint().
00960 { |
|
[reimplemented]
Definition at line 842 of file KDChartAbstractDiagram.cpp.
00844 { return true; } |
|
[reimplemented]
Definition at line 825 of file KDChartAbstractDiagram.cpp.
00829 {} |
|
[reimplemented]
Definition at line 851 of file KDChartAbstractDiagram.cpp. |
|
Definition at line 589 of file KDChartAbstractDiagram.h. |