#include <KDChartPolarCoordinatePlane.h>
Definition at line 39 of file KDChartPolarCoordinatePlane.h.
Public Types | |
enum | AxesCalcMode { Linear, Logarithmic } |
typedef QList < CoordinateTransformation > | CoordinateTransformationList |
Public Slots | |
void | layoutPlanes () |
Calling layoutPlanes() on the plane triggers the global KDChart::Chart::slotLayoutPlanes(). | |
void | relayout () |
Calling relayout() on the plane triggers the global KDChart::Chart::slotRelayout(). | |
void | setGridNeedsRecalculate () |
Used by the chart to clear the cached grid data. | |
void | update () |
Calling update() on the plane triggers the global KDChart::Chart::update(). | |
Signals | |
void | destroyedCoordinatePlane (AbstractCoordinatePlane *) |
Emitted when this coordinate plane is destroyed. | |
void | geometryChanged (QRect, QRect) |
Emitted after the geometry of the Coordinate Plane has been changed. | |
void | internal_geometryChanged (QRect, QRect) |
void | needLayoutPlanes () |
Emitted when plane needs to trigger the Chart's layouting of the coord. | |
void | needRelayout () |
Emitted when plane needs to trigger the Chart's layouting. | |
void | needUpdate () |
Emitted when plane needs to update its drawings. | |
void | positionChanged (AbstractArea *) |
void | propertiesChanged () |
Emitted upon change of a property of the Coordinate Plane or any of its components. | |
Public Member Functions | |
void | addDiagram (AbstractDiagram *diagram) |
Adds a diagram to this coordinate plane. | |
void | alignToReferencePoint (const RelativePosition &position) |
qreal | angleUnit () const |
BackgroundAttributes | backgroundAttributes () const |
virtual int | bottomOverlap (bool doNotRecalculate=false) const |
This is called at layout time by KDChart:AutoSpacerLayoutItem::sizeHint(). | |
bool | compare (const AbstractAreaBase *other) const |
Returns true if both areas have the same settings. | |
AbstractDiagram * | diagram () |
| |
ConstAbstractDiagramList | diagrams () const |
| |
AbstractDiagramList | diagrams () |
| |
virtual Qt::Orientations | expandingDirections () const |
pure virtual in QLayoutItem | |
FrameAttributes | frameAttributes () const |
virtual QRect | geometry () const |
pure virtual in QLayoutItem | |
void | getFrameLeadings (int &left, int &top, int &right, int &bottom) const |
GridAttributes | globalGridAttributes () const |
| |
const GridAttributes | gridAttributes (bool circular) const |
| |
DataDimensionsList | gridDimensionsList () |
Returns the dimensions used for drawing the grid lines. | |
bool | hasOwnGridAttributes (bool circular) const |
| |
virtual bool | isEmpty () const |
pure virtual in QLayoutItem | |
bool | isRubberBandZoomingEnabled () const |
| |
const bool | isVisiblePoint (const QPointF &point) const |
Tests, if a point is visible on the coordinate plane. | |
virtual int | leftOverlap (bool doNotRecalculate=false) const |
This is called at layout time by KDChart::AutoSpacerLayoutItem::sizeHint(). | |
virtual QSize | maximumSize () const |
pure virtual in QLayoutItem | |
virtual QSize | minimumSize () const |
pure virtual in QLayoutItem | |
virtual QSize | minimumSizeHint () const |
[reimplemented] | |
void | mouseDoubleClickEvent (QMouseEvent *event) |
void | mouseMoveEvent (QMouseEvent *event) |
void | mousePressEvent (QMouseEvent *event) |
void | mouseReleaseEvent (QMouseEvent *event) |
virtual void | paint (QPainter *) |
reimpl | |
virtual void | paintAll (QPainter &painter) |
Call paintAll, if you want the background and the frame to be drawn before the normal paint() is invoked automatically. | |
virtual void | paintBackground (QPainter &painter, const QRect &rectangle) |
virtual void | paintCtx (PaintContext *context) |
Default impl: Paint the complete item using its layouted position and size. | |
virtual void | paintFrame (QPainter &painter, const QRect &rectangle) |
virtual void | paintIntoRect (QPainter &painter, const QRect &rect) |
Draws the background and frame, then calls paint(). | |
const Chart * | parent () const |
Chart * | parent () |
QLayout * | parentLayout () |
PolarCoordinatePlane (Chart *parent=0) | |
qreal | radiusUnit () const |
AbstractCoordinatePlane * | referenceCoordinatePlane () const |
There are two ways, in which planes can be caused to interact, in where they are put layouting wise: The first is the reference plane. | |
void | removeFromParentLayout () |
virtual void | replaceDiagram (AbstractDiagram *diagram, AbstractDiagram *oldDiagram=0) |
Replaces the old diagram, or appends the diagram, it there is none yet. | |
void | resetGridAttributes (bool circular) |
Reset the attributes to be used for grid lines drawn in circular direction (or in sagittal direction, resp. | |
virtual int | rightOverlap (bool doNotRecalculate=false) const |
This is called at layout time by KDChart::AutoSpacerLayoutItem::sizeHint(). | |
void | setBackgroundAttributes (const BackgroundAttributes &a) |
void | setFrameAttributes (const FrameAttributes &a) |
virtual void | setGeometry (const QRect &r) |
pure virtual in QLayoutItem | |
void | setGlobalGridAttributes (const GridAttributes &) |
Set the grid attributes to be used by this coordinate plane. | |
void | setGridAttributes (bool circular, const GridAttributes &) |
Set the attributes to be used for grid lines drawn in circular direction (or in sagittal direction, resp. | |
void | setParent (Chart *parent) |
Called internally by KDChart::Chart. | |
void | setParentLayout (QLayout *lay) |
virtual void | setParentWidget (QWidget *widget) |
Inform the item about its widget: This enables the item, to trigger that widget's update, whenever the size of the item's contents has changed. | |
void | setReferenceCoordinatePlane (AbstractCoordinatePlane *plane) |
Set another coordinate plane to be used as the reference plane for this one. | |
void | setRubberBandZoomingEnabled (bool enable) |
Enables or disables zooming with a rubber band using the mouse. | |
void | setStartPosition (qreal degrees) |
Specify the rotation of the coordinate plane. | |
virtual void | setZoomCenter (const QPointF ¢er) |
Set the point (in value coordinates) to be used as the center point in zoom operations. | |
virtual void | setZoomFactors (double factorX, double factorY) |
Sets both zoom factors in one go. | |
virtual void | setZoomFactorX (double factor) |
Sets the zoom factor in horizontal direction, that is applied to all coordinate transformations. | |
virtual void | setZoomFactorY (double factor) |
Sets the zoom factor in vertical direction, that is applied to all coordinate transformations. | |
virtual AbstractCoordinatePlane * | sharedAxisMasterPlane (QPainter *p=0) |
virtual QSize | sizeHint () const |
pure virtual in QLayoutItem | |
virtual void | sizeHintChanged () const |
Report changed size hint: ask the parent widget to recalculate the layout. | |
virtual QSizePolicy | sizePolicy () const |
[reimplemented] | |
qreal | startPosition () const |
Retrieve the rotation of the coordinate plane. | |
virtual void | takeDiagram (AbstractDiagram *diagram) |
Removes the diagram from the plane, without deleting it. | |
virtual int | topOverlap (bool doNotRecalculate=false) const |
This is called at layout time by KDChart::AutoSpacerLayoutItem::sizeHint(). | |
const QPointF | translate (const QPointF &diagramPoint) const |
Translate the given point in value space coordinates to a position in pixel space. | |
const QPointF | translatePolar (const QPointF &diagramPoint) const |
virtual QPointF | zoomCenter () const |
| |
virtual double | zoomFactorX () const |
| |
virtual double | zoomFactorY () const |
| |
~PolarCoordinatePlane () | |
Static Public Member Functions | |
static void | paintBackgroundAttributes (QPainter &painter, const QRect &rectangle, const KDChart::BackgroundAttributes &attributes) |
static void | paintFrameAttributes (QPainter &painter, const QRect &rectangle, const KDChart::FrameAttributes &attributes) |
Protected Slots | |
void | adjustZoomAndRepaint () |
void | slotLayoutChanged (AbstractDiagram *diagram) |
Protected Member Functions | |
virtual QRect | areaGeometry () const |
virtual DataDimensionsList | getDataDimensionsList () const |
QRect | innerRect () const |
void | layoutDiagrams () |
Distribute the available space among the diagrams and axes. | |
void | paintEvent (QPaintEvent *) |
virtual void | positionHasChanged () |
void | resizeEvent (QResizeEvent *) |
Protected Attributes | |
QWidget * | mParent |
QLayout * | mParentLayout |
typedef QList<CoordinateTransformation> KDChart::PolarCoordinatePlane::CoordinateTransformationList |
Definition at line 47 of file KDChartPolarCoordinatePlane.h.
enum KDChart::AbstractCoordinatePlane::AxesCalcMode [inherited] |
PolarCoordinatePlane::PolarCoordinatePlane | ( | Chart * | parent = 0 |
) | [explicit] |
Definition at line 118 of file KDChartPolarCoordinatePlane.cpp.
00119 : AbstractCoordinatePlane ( new Private(), parent ) 00120 { 00121 // this bloc left empty intentionally 00122 }
PolarCoordinatePlane::~PolarCoordinatePlane | ( | ) |
void PolarCoordinatePlane::addDiagram | ( | AbstractDiagram * | diagram | ) | [virtual] |
Adds a diagram to this coordinate plane.
diagram | The diagram to add. |
Reimplemented from KDChart::AbstractCoordinatePlane.
Definition at line 134 of file KDChartPolarCoordinatePlane.cpp.
References KDChart::AbstractCoordinatePlane::addDiagram(), and slotLayoutChanged().
00135 { 00136 Q_ASSERT_X ( dynamic_cast<AbstractPolarDiagram*> ( diagram ), 00137 "PolarCoordinatePlane::addDiagram", "Only polar" 00138 "diagrams can be added to a polar coordinate plane!" ); 00139 AbstractCoordinatePlane::addDiagram ( diagram ); 00140 connect ( diagram, SIGNAL ( layoutChanged ( AbstractDiagram* ) ), 00141 SLOT ( slotLayoutChanged ( AbstractDiagram* ) ) ); 00142 00143 }
void PolarCoordinatePlane::adjustZoomAndRepaint | ( | ) | [protected, slot] |
Definition at line 206 of file KDChartPolarCoordinatePlane.cpp.
References d, setZoomFactors(), and KDChart::AbstractCoordinatePlane::update().
Referenced by paint().
00207 { 00208 const qreal newZoom = qMin(d->newZoomX, d->newZoomY); 00209 setZoomFactors(newZoom, newZoom); 00210 update(); 00211 }
void AbstractAreaBase::alignToReferencePoint | ( | const RelativePosition & | position | ) | [inherited] |
Definition at line 91 of file KDChartAbstractAreaBase.cpp.
00092 { 00093 Q_UNUSED( position ); 00094 // PENDING(kalle) FIXME 00095 qWarning( "Sorry, not implemented: void AbstractAreaBase::alignToReferencePoint( const RelativePosition& position )" ); 00096 }
qreal PolarCoordinatePlane::angleUnit | ( | ) | const |
Definition at line 279 of file KDChartPolarCoordinatePlane.cpp.
References d.
Referenced by layoutDiagrams().
00280 { 00281 Q_ASSERT_X ( d->currentTransformation != 0, "PolarCoordinatePlane::angleUnit", 00282 "Only call angleUnit() from within paint()." ); 00283 return d->currentTransformation->angleUnit; 00284 }
QRect AbstractArea::areaGeometry | ( | ) | const [protected, virtual, inherited] |
Implements KDChart::AbstractAreaBase.
Definition at line 150 of file KDChartAbstractArea.cpp.
Referenced by KDChart::CartesianCoordinatePlane::drawingArea(), KDChart::TernaryCoordinatePlane::layoutDiagrams(), layoutDiagrams(), KDChart::TernaryCoordinatePlane::paint(), KDChart::CartesianAxis::paint(), KDChart::AbstractArea::paintAll(), and KDChart::CartesianAxis::paintCtx().
BackgroundAttributes AbstractAreaBase::backgroundAttributes | ( | ) | const [inherited] |
Definition at line 121 of file KDChartAbstractAreaBase.cpp.
References d.
Referenced by KDChart::AbstractAreaBase::compare(), and updateCommonBrush().
00122 { 00123 return d->backgroundAttributes; 00124 }
int AbstractArea::bottomOverlap | ( | bool | doNotRecalculate = false |
) | const [virtual, inherited] |
This is called at layout time by KDChart:AutoSpacerLayoutItem::sizeHint().
The method triggers AbstractArea::sizeHint() to find out the amount of overlap at the bottom edge of the area.
Definition at line 101 of file KDChartAbstractArea.cpp.
References d.
Referenced by KDChart::AutoSpacerLayoutItem::sizeHint().
00102 { 00103 // Re-calculate the sizes, 00104 // so we also get the amountOf..Overlap members set newly: 00105 if( ! doNotRecalculate ) 00106 sizeHint(); 00107 return d->amountOfBottomOverlap; 00108 }
bool AbstractAreaBase::compare | ( | const AbstractAreaBase * | other | ) | const [inherited] |
Returns true if both areas have the same settings.
Definition at line 76 of file KDChartAbstractAreaBase.cpp.
References KDChart::AbstractAreaBase::backgroundAttributes(), and KDChart::AbstractAreaBase::frameAttributes().
00077 { 00078 if( other == this ) return true; 00079 if( ! other ){ 00080 //qDebug() << "CartesianAxis::compare() cannot compare to Null pointer"; 00081 return false; 00082 } 00083 /* 00084 qDebug() << "AbstractAreaBase:" << (frameAttributes() == other->frameAttributes()) 00085 << (backgroundAttributes() == other->backgroundAttributes()) << "\n"; 00086 */ 00087 return (frameAttributes() == other->frameAttributes()) && 00088 (backgroundAttributes() == other->backgroundAttributes()); 00089 }
void KDChart::AbstractCoordinatePlane::destroyedCoordinatePlane | ( | AbstractCoordinatePlane * | ) | [signal, inherited] |
Emitted when this coordinate plane is destroyed.
Referenced by KDChart::AbstractCoordinatePlane::~AbstractCoordinatePlane().
AbstractDiagram * AbstractCoordinatePlane::diagram | ( | ) | [inherited] |
Definition at line 125 of file KDChartAbstractCoordinatePlane.cpp.
References d.
Referenced by KDChart::Widget::diagram(), KDChart::CartesianCoordinatePlane::getRawDataBoundingRectFromDiagrams(), KDChart::TernaryCoordinatePlane::layoutDiagrams(), layoutDiagrams(), KDChart::CartesianCoordinatePlane::setGeometry(), setStartPosition(), KDChart::Widget::setType(), and KDChart::CartesianCoordinatePlane::sharedAxisMasterPlane().
00126 { 00127 if ( d->diagrams.isEmpty() ) 00128 { 00129 return 0; 00130 } else { 00131 return d->diagrams.first(); 00132 } 00133 }
ConstAbstractDiagramList AbstractCoordinatePlane::diagrams | ( | ) | const [inherited] |
Definition at line 140 of file KDChartAbstractCoordinatePlane.cpp.
References d.
00141 { 00142 ConstAbstractDiagramList list; 00143 #ifndef QT_NO_STL 00144 qCopy( d->diagrams.begin(), d->diagrams.end(), std::back_inserter( list ) ); 00145 #else 00146 Q_FOREACH( AbstractDiagram * a, d->diagrams ) 00147 list.push_back( a ); 00148 #endif 00149 return list;
AbstractDiagramList AbstractCoordinatePlane::diagrams | ( | ) | [inherited] |
Definition at line 135 of file KDChartAbstractCoordinatePlane.cpp.
References d.
Referenced by KDChart::Chart::event(), KDChart::CartesianCoordinatePlane::getDataDimensionsList(), KDChart::CartesianCoordinatePlane::getRawDataBoundingRectFromDiagrams(), KDChart::TernaryCoordinatePlane::layoutDiagrams(), layoutDiagrams(), KDChart::CartesianCoordinatePlane::layoutDiagrams(), KDChart::Chart::mouseDoubleClickEvent(), KDChart::Chart::mouseMoveEvent(), KDChart::Chart::mousePressEvent(), KDChart::Chart::mouseReleaseEvent(), KDChart::TernaryCoordinatePlane::paint(), paint(), KDChart::CartesianCoordinatePlane::paint(), and KDChart::CartesianCoordinatePlane::setGeometry().
00136 { 00137 return d->diagrams; 00138 }
Qt::Orientations KDChart::AbstractCoordinatePlane::expandingDirections | ( | ) | const [virtual, inherited] |
FrameAttributes AbstractAreaBase::frameAttributes | ( | ) | const [inherited] |
Definition at line 107 of file KDChartAbstractAreaBase.cpp.
References d.
Referenced by KDChart::Legend::clone(), KDChart::AbstractAreaBase::compare(), and updateCommonBrush().
00108 { 00109 return d->frameAttributes; 00110 }
QRect KDChart::AbstractCoordinatePlane::geometry | ( | ) | const [virtual, inherited] |
pure virtual in QLayoutItem
Definition at line 259 of file KDChartAbstractCoordinatePlane.cpp.
References d.
Referenced by KDChart::Chart::mouseDoubleClickEvent(), KDChart::Chart::mouseMoveEvent(), KDChart::AbstractCoordinatePlane::mouseMoveEvent(), KDChart::Chart::mousePressEvent(), KDChart::Chart::mouseReleaseEvent(), KDChart::AbstractCoordinatePlane::mouseReleaseEvent(), KDChart::PolarDiagram::paint(), paint(), and KDChart::CartesianCoordinatePlane::setGeometry().
00261 { 00262 return d->geometry;
void KDChart::AbstractCoordinatePlane::geometryChanged | ( | QRect | , | |
QRect | ||||
) | [signal, inherited] |
Emitted after the geometry of the Coordinate Plane has been changed.
and control has returned to the event loop.
Parameters are the the old geometry, the new geometry.
DataDimensionsList PolarCoordinatePlane::getDataDimensionsList | ( | ) | const [protected, virtual] |
Implements KDChart::AbstractCoordinatePlane.
Definition at line 379 of file KDChartPolarCoordinatePlane.cpp.
00380 { 00381 DataDimensionsList l; 00382 00383 //FIXME(khz): do the real calculation 00384 00385 return l; 00386 }
void AbstractAreaBase::getFrameLeadings | ( | int & | left, | |
int & | top, | |||
int & | right, | |||
int & | bottom | |||
) | const [inherited] |
Definition at line 213 of file KDChartAbstractAreaBase.cpp.
References d.
Referenced by KDChart::AbstractAreaBase::innerRect(), and KDChart::AbstractAreaWidget::paintAll().
00214 { 00215 if( d && d->frameAttributes.isVisible() ){ 00216 const int padding = qMax( d->frameAttributes.padding(), 0 ); 00217 left = padding; 00218 top = padding; 00219 right = padding; 00220 bottom = padding; 00221 }else{ 00222 left = 0; 00223 top = 0; 00224 right = 0; 00225 bottom = 0; 00226 } 00227 }
GridAttributes KDChart::AbstractCoordinatePlane::globalGridAttributes | ( | ) | const [inherited] |
Definition at line 168 of file KDChartAbstractCoordinatePlane.cpp.
References d.
Referenced by gridAttributes(), and KDChart::CartesianCoordinatePlane::gridAttributes().
00170 { 00171 return d->gridAttributes;
const GridAttributes KDChart::PolarCoordinatePlane::gridAttributes | ( | bool | circular | ) | const |
).
Definition at line 408 of file KDChartPolarCoordinatePlane.cpp.
References d, KDChart::AbstractCoordinatePlane::globalGridAttributes(), and hasOwnGridAttributes().
00410 { 00411 if( hasOwnGridAttributes( circular ) ){ 00412 if( circular ) 00413 return d->gridAttributesCircular; 00414 else 00415 return d->gridAttributesSagittal; 00416 }else{ 00417 return globalGridAttributes(); 00418 } 00419 }
KDChart::DataDimensionsList KDChart::AbstractCoordinatePlane::gridDimensionsList | ( | ) | [inherited] |
Returns the dimensions used for drawing the grid lines.
Returned data is the result of (cached) grid calculations, so - if you need that information for your own tasks - make sure to call again this function after every data modification that has changed the data range, since grid calculation is based upon the data range, thus the grid start/end might have changed if the data was changed.
Definition at line 173 of file KDChartAbstractCoordinatePlane.cpp.
References d.
Referenced by KDChart::CartesianCoordinatePlane::layoutDiagrams().
00175 { 00176 //KDChart::DataDimensionsList l( d->grid->updateData( this ) ); 00177 //qDebug() << "AbstractCoordinatePlane::gridDimensionsList() Y-range:" << l.last().end - l.last().start << " step width:" << l.last().stepWidth; 00178 //qDebug() << "AbstractCoordinatePlane::gridDimensionsList() X-range:" << l.first().end - l.first().start << " step width:" << l.first().stepWidth; 00179 return d->grid->updateData( this );
bool KDChart::PolarCoordinatePlane::hasOwnGridAttributes | ( | bool | circular | ) | const |
If false, the grid will use the global attributes set by AbstractCoordinatePlane::globalGridAttributes (or the default attributes, resp.)
Definition at line 431 of file KDChartPolarCoordinatePlane.cpp.
References d.
Referenced by gridAttributes().
00433 { 00434 return 00435 ( circular ) 00436 ? d->hasOwnGridAttributesCircular 00437 : d->hasOwnGridAttributesSagittal; 00438 }
QRect AbstractAreaBase::innerRect | ( | ) | const [protected, inherited] |
Definition at line 229 of file KDChartAbstractAreaBase.cpp.
References KDChart::AbstractAreaBase::areaGeometry(), and KDChart::AbstractAreaBase::getFrameLeadings().
Referenced by KDChart::TextArea::paintAll(), and KDChart::AbstractArea::paintAll().
00230 { 00231 int left; 00232 int top; 00233 int right; 00234 int bottom; 00235 getFrameLeadings( left, top, right, bottom ); 00236 return 00237 QRect( QPoint(0,0), areaGeometry().size() ) 00238 .adjusted( left, top, -right, -bottom ); 00239 }
void KDChart::AbstractCoordinatePlane::internal_geometryChanged | ( | QRect | , | |
QRect | ||||
) | [signal, inherited] |
Referenced by KDChart::AbstractCoordinatePlane::setGeometry().
bool KDChart::AbstractCoordinatePlane::isEmpty | ( | ) | const [virtual, inherited] |
pure virtual in QLayoutItem
Definition at line 212 of file KDChartAbstractCoordinatePlane.cpp.
Referenced by KDChart::CartesianCoordinatePlane::layoutDiagrams().
00214 { 00215 return false; // never empty! 00216 // coordinate planes with no associated diagrams 00217 // are showing a default grid of ()1..10, 1..10) stepWidth 1
bool KDChart::AbstractCoordinatePlane::isRubberBandZoomingEnabled | ( | ) | const [inherited] |
Definition at line 293 of file KDChartAbstractCoordinatePlane.cpp.
References d.
00295 { 00296 return d->enableRubberBandZooming;
const bool KDChart::AbstractCoordinatePlane::isVisiblePoint | ( | const QPointF & | point | ) | const [inherited] |
Tests, if a point is visible on the coordinate plane.
Definition at line 421 of file KDChartAbstractCoordinatePlane.cpp.
References d.
00423 { 00424 return d->isVisiblePoint( this, point );
void PolarCoordinatePlane::layoutDiagrams | ( | ) | [protected, virtual] |
Distribute the available space among the diagrams and axes.
Implements KDChart::AbstractCoordinatePlane.
Definition at line 220 of file KDChartPolarCoordinatePlane.cpp.
References angleUnit(), KDChart::AbstractArea::areaGeometry(), d, KDChart::AbstractDiagram::dataBoundaries(), KDChart::AbstractCoordinatePlane::diagram(), KDChart::AbstractCoordinatePlane::diagrams(), radiusUnit(), startPosition(), and KDChart::AbstractPolarDiagram::valueTotals().
Referenced by resizeEvent(), and slotLayoutChanged().
00221 { 00222 // the rectangle the diagrams cover in the *plane*: 00223 // (Why -3? We save 1px on each side for the antialiased drawing, and 00224 // respect the way QPainter calculates the width of a painted rect (the 00225 // size is the rectangle size plus the pen width). This way, most clipping 00226 // for regular pens should be avoided. When pens with a penWidth or larger 00227 // than 1 are used, this may not b sufficient. 00228 const QRect rect( areaGeometry() ); 00229 d->contentRect = QRectF ( 1, 1, rect.width() - 3, rect.height() - 3 ); 00230 00231 const ZoomParameters zoom = d->coordinateTransformations.isEmpty() ? ZoomParameters() 00232 : d->coordinateTransformations.front().zoom; 00233 // FIXME distribute space according to options: 00234 const qreal oldStartPosition = startPosition(); 00235 d->coordinateTransformations.clear(); 00236 Q_FOREACH( AbstractDiagram* diagram, diagrams() ) 00237 { 00238 AbstractPolarDiagram *polarDiagram = dynamic_cast<AbstractPolarDiagram*>( diagram ); 00239 Q_ASSERT( polarDiagram ); 00240 QPair<QPointF, QPointF> dataBoundariesPair = polarDiagram->dataBoundaries(); 00241 00242 const double angleUnit = 360 / polarDiagram->valueTotals(); 00243 //qDebug() << "--------------------------------------------------------"; 00244 const double radius = qAbs( dataBoundariesPair.first.y() ) + dataBoundariesPair.second.y(); 00245 //qDebug() << radius <<"="<<dataBoundariesPair.second.y(); 00246 const double diagramWidth = radius * 2; // == height 00247 const double planeWidth = d->contentRect.width(); 00248 const double planeHeight = d->contentRect.height(); 00249 const double radiusUnit = qMin( planeWidth, planeHeight ) / diagramWidth; 00250 //qDebug() << radiusUnit <<"=" << "qMin( "<<planeWidth<<","<< planeHeight <<") / "<<diagramWidth; 00251 QPointF coordinateOrigin = QPointF ( planeWidth / 2, planeHeight / 2 ); 00252 coordinateOrigin += d->contentRect.topLeft(); 00253 00254 CoordinateTransformation diagramTransposition; 00255 diagramTransposition.originTranslation = coordinateOrigin; 00256 diagramTransposition.radiusUnit = radiusUnit; 00257 diagramTransposition.angleUnit = angleUnit; 00258 diagramTransposition.startPosition = oldStartPosition; 00259 diagramTransposition.zoom = zoom; 00260 diagramTransposition.minValue = dataBoundariesPair.first.y() < 0 ? dataBoundariesPair.first.y() : 0.0; 00261 d->coordinateTransformations.append( diagramTransposition ); 00262 } 00263 }
void KDChart::AbstractCoordinatePlane::layoutPlanes | ( | ) | [slot, inherited] |
Calling layoutPlanes() on the plane triggers the global KDChart::Chart::slotLayoutPlanes().
Definition at line 276 of file KDChartAbstractCoordinatePlane.cpp.
References KDChart::AbstractCoordinatePlane::needLayoutPlanes().
Referenced by KDChart::AbstractCoordinatePlane::addDiagram(), KDChart::CartesianAxis::layoutPlanes(), KDChart::AbstractCartesianDiagram::layoutPlanes(), KDChart::AbstractCoordinatePlane::replaceDiagram(), and KDChart::AbstractCoordinatePlane::takeDiagram().
00278 { 00279 //qDebug("KDChart::AbstractCoordinatePlane::relayout() called"); 00280 emit needLayoutPlanes();
int AbstractArea::leftOverlap | ( | bool | doNotRecalculate = false |
) | const [virtual, inherited] |
This is called at layout time by KDChart::AutoSpacerLayoutItem::sizeHint().
The method triggers AbstractArea::sizeHint() to find out the amount of overlap at the left edge of the area.
Definition at line 77 of file KDChartAbstractArea.cpp.
References d.
Referenced by KDChart::AutoSpacerLayoutItem::sizeHint().
00078 { 00079 // Re-calculate the sizes, 00080 // so we also get the amountOf..Overlap members set newly: 00081 if( ! doNotRecalculate ) 00082 sizeHint(); 00083 return d->amountOfLeftOverlap; 00084 }
QSize KDChart::AbstractCoordinatePlane::maximumSize | ( | ) | const [virtual, inherited] |
pure virtual in QLayoutItem
Definition at line 224 of file KDChartAbstractCoordinatePlane.cpp.
Referenced by KDChart::AbstractCoordinatePlane::sizeHint().
00226 { 00227 // No maximum size set. Especially not parent()->size(), we are not layouting 00228 // to the parent widget's size when using Chart::paint()! 00229 return QSize(QLAYOUTSIZE_MAX, QLAYOUTSIZE_MAX);
QSize KDChart::AbstractCoordinatePlane::minimumSize | ( | ) | const [virtual, inherited] |
QSize KDChart::AbstractCoordinatePlane::minimumSizeHint | ( | ) | const [virtual, inherited] |
[reimplemented]
Reimplemented in KDChart::TernaryCoordinatePlane.
Definition at line 151 of file KDChartAbstractCoordinatePlane.cpp.
void KDChart::AbstractCoordinatePlane::mouseDoubleClickEvent | ( | QMouseEvent * | event | ) | [inherited] |
Definition at line 338 of file KDChartAbstractCoordinatePlane.cpp.
References d, and KDChart::AbstractCoordinatePlane::mousePressEvent().
Referenced by KDChart::Chart::mouseDoubleClickEvent().
00340 { 00341 if( event->button() == Qt::RightButton ) 00342 { 00343 // othewise the second click gets lost 00344 // which is pretty annoying when zooming out fast 00345 mousePressEvent( event ); 00346 } 00347 KDAB_FOREACH( AbstractDiagram * a, d->diagrams ) 00348 { 00349 a->mouseDoubleClickEvent( event ); 00350 }
void KDChart::AbstractCoordinatePlane::mouseMoveEvent | ( | QMouseEvent * | event | ) | [inherited] |
Definition at line 402 of file KDChartAbstractCoordinatePlane.cpp.
References d, and KDChart::AbstractCoordinatePlane::geometry().
Referenced by KDChart::Chart::mouseMoveEvent().
00404 { 00405 if( d->rubberBand != 0 ) 00406 { 00407 const QRect normalized = QRect( d->rubberBandOrigin, event->pos() ).normalized(); 00408 d->rubberBand->setGeometry( normalized & geometry() ); 00409 00410 event->accept(); 00411 } 00412 00413 KDAB_FOREACH( AbstractDiagram * a, d->diagrams ) 00414 { 00415 a->mouseMoveEvent( event ); 00416 }
void KDChart::AbstractCoordinatePlane::mousePressEvent | ( | QMouseEvent * | event | ) | [inherited] |
Definition at line 298 of file KDChartAbstractCoordinatePlane.cpp.
References KDChart::ZoomParameters::center(), d, p, KDChart::AbstractCoordinatePlane::parent(), KDChart::AbstractCoordinatePlane::setZoomCenter(), KDChart::AbstractCoordinatePlane::setZoomFactorX(), KDChart::AbstractCoordinatePlane::setZoomFactorY(), KDChart::ZoomParameters::xFactor, and KDChart::ZoomParameters::yFactor.
Referenced by KDChart::AbstractCoordinatePlane::mouseDoubleClickEvent(), and KDChart::Chart::mousePressEvent().
00300 { 00301 if( event->button() == Qt::LeftButton ) 00302 { 00303 if( d->enableRubberBandZooming && d->rubberBand == 0 ) 00304 d->rubberBand = new QRubberBand( QRubberBand::Rectangle, qobject_cast< QWidget* >( parent() ) ); 00305 00306 if( d->rubberBand != 0 ) 00307 { 00308 d->rubberBandOrigin = event->pos(); 00309 d->rubberBand->setGeometry( QRect( event->pos(), QSize() ) ); 00310 d->rubberBand->show(); 00311 00312 event->accept(); 00313 } 00314 } 00315 else if( event->button() == Qt::RightButton ) 00316 { 00317 if( d->enableRubberBandZooming && !d->rubberBandZoomConfigHistory.isEmpty() ) 00318 { 00319 // restore the last config from the stack 00320 ZoomParameters config = d->rubberBandZoomConfigHistory.pop(); 00321 setZoomFactorX( config.xFactor ); 00322 setZoomFactorY( config.yFactor ); 00323 setZoomCenter( config.center() ); 00324 00325 QWidget* const p = qobject_cast< QWidget* >( parent() ); 00326 if( p != 0 ) 00327 p->update(); 00328 00329 event->accept(); 00330 } 00331 } 00332 00333 KDAB_FOREACH( AbstractDiagram * a, d->diagrams ) 00334 { 00335 a->mousePressEvent( event ); 00336 }
void KDChart::AbstractCoordinatePlane::mouseReleaseEvent | ( | QMouseEvent * | event | ) | [inherited] |
Definition at line 352 of file KDChartAbstractCoordinatePlane.cpp.
References d, KDChart::AbstractCoordinatePlane::geometry(), KDChart::AbstractCoordinatePlane::setZoomCenter(), KDChart::AbstractCoordinatePlane::setZoomFactorX(), KDChart::AbstractCoordinatePlane::setZoomFactorY(), KDChart::AbstractCoordinatePlane::zoomCenter(), KDChart::AbstractCoordinatePlane::zoomFactorX(), and KDChart::AbstractCoordinatePlane::zoomFactorY().
Referenced by KDChart::Chart::mouseReleaseEvent().
00354 { 00355 if( d->rubberBand != 0 ) 00356 { 00357 // save the old config on the stack 00358 d->rubberBandZoomConfigHistory.push( ZoomParameters( zoomFactorX(), zoomFactorY(), zoomCenter() ) ); 00359 00360 // this is the height/width of the rubber band in pixel space 00361 const double rubberWidth = static_cast< double >( d->rubberBand->width() ); 00362 const double rubberHeight = static_cast< double >( d->rubberBand->height() ); 00363 00364 if( rubberWidth > 0.0 && rubberHeight > 0.0 ) 00365 { 00366 // this is the center of the rubber band in pixel space 00367 const double rubberCenterX = static_cast< double >( d->rubberBand->geometry().center().x() - geometry().x() ); 00368 const double rubberCenterY = static_cast< double >( d->rubberBand->geometry().center().y() - geometry().y() ); 00369 00370 // this is the height/width of the plane in pixel space 00371 const double myWidth = static_cast< double >( geometry().width() ); 00372 const double myHeight = static_cast< double >( geometry().height() ); 00373 00374 // this describes the new center of zooming, relative to the plane pixel space 00375 const double newCenterX = rubberCenterX / myWidth / zoomFactorX() + zoomCenter().x() - 0.5 / zoomFactorX(); 00376 const double newCenterY = rubberCenterY / myHeight / zoomFactorY() + zoomCenter().y() - 0.5 / zoomFactorY(); 00377 00378 // this will be the new zoom factor 00379 const double newZoomFactorX = zoomFactorX() * myWidth / rubberWidth; 00380 const double newZoomFactorY = zoomFactorY() * myHeight / rubberHeight; 00381 00382 // and this the new center 00383 const QPointF newZoomCenter( newCenterX, newCenterY ); 00384 00385 setZoomFactorX( newZoomFactorX ); 00386 setZoomFactorY( newZoomFactorY ); 00387 setZoomCenter( newZoomCenter ); 00388 } 00389 00390 d->rubberBand->parentWidget()->update(); 00391 delete d->rubberBand; 00392 d->rubberBand = 0; 00393 00394 event->accept(); 00395 } 00396 00397 KDAB_FOREACH( AbstractDiagram * a, d->diagrams ) 00398 { 00399 a->mouseReleaseEvent( event ); 00400 }
void KDChart::AbstractCoordinatePlane::needLayoutPlanes | ( | ) | [signal, inherited] |
Emitted when plane needs to trigger the Chart's layouting of the coord.
planes.
Referenced by KDChart::AbstractCoordinatePlane::layoutPlanes().
void KDChart::AbstractCoordinatePlane::needRelayout | ( | ) | [signal, inherited] |
Emitted when plane needs to trigger the Chart's layouting.
Referenced by KDChart::AbstractCoordinatePlane::relayout().
void KDChart::AbstractCoordinatePlane::needUpdate | ( | ) | [signal, inherited] |
Emitted when plane needs to update its drawings.
Referenced by KDChart::AbstractCoordinatePlane::update().
void PolarCoordinatePlane::paint | ( | QPainter * | painter | ) | [virtual] |
reimpl
Implements KDChart::AbstractLayoutItem.
Definition at line 145 of file KDChartPolarCoordinatePlane.cpp.
References adjustZoomAndRepaint(), d, KDChart::AbstractCoordinatePlane::diagrams(), KDChart::AbstractCoordinatePlane::geometry(), KDChart::PolarDiagram::paint(), KDChart::PaintContext::setCoordinatePlane(), KDChart::PaintContext::setPainter(), KDChart::PaintContext::setRectangle(), zoomFactorX(), and zoomFactorY().
00146 { 00147 AbstractDiagramList diags = diagrams(); 00148 if ( d->coordinateTransformations.size() == diags.size() ) 00149 { 00150 PaintContext ctx; 00151 ctx.setPainter ( painter ); 00152 ctx.setCoordinatePlane ( this ); 00153 ctx.setRectangle ( geometry() /*d->contentRect*/ ); 00154 00155 // 1. ask the diagrams if they need additional space for data labels / data comments 00156 const qreal oldZoomX = zoomFactorX(); 00157 const qreal oldZoomY = zoomFactorY(); 00158 d->newZoomX = oldZoomX; 00159 d->newZoomY = oldZoomY; 00160 for ( int i = 0; i < diags.size(); i++ ) 00161 { 00162 d->currentTransformation = & ( d->coordinateTransformations[i] ); 00163 qreal zoomX; 00164 qreal zoomY; 00165 PolarDiagram* polarDia = dynamic_cast<PolarDiagram*> ( diags[i] ); 00166 if( polarDia ){ 00167 polarDia->paint ( &ctx, true, zoomX, zoomY ); 00168 d->newZoomX = qMin(d->newZoomX, zoomX); 00169 d->newZoomY = qMin(d->newZoomY, zoomY); 00170 } 00171 } 00172 d->currentTransformation = 0; 00173 00174 // if re-scaling is needed start the timer and bail out 00175 if( d->newZoomX != oldZoomX || d->newZoomY != oldZoomY ){ 00176 //qDebug()<<"new zoom:"<<d->newZoomY<<" old zoom"<<oldZoomY; 00177 QTimer::singleShot(10, this, SLOT(adjustZoomAndRepaint())); 00178 return; 00179 } 00180 00181 // 2. there was room enough for the labels, so we start drawing 00182 00183 // paint the coordinate system rulers: 00184 d->currentTransformation = & ( d->coordinateTransformations.first() ); 00185 00186 d->grid->drawGrid( &ctx ); 00187 00188 // paint the diagrams which will re-use their DataValueTextInfoList(s) filled in step 1: 00189 for ( int i = 0; i < diags.size(); i++ ) 00190 { 00191 d->currentTransformation = & ( d->coordinateTransformations[i] ); 00192 PainterSaver painterSaver( painter ); 00193 PolarDiagram* polarDia = dynamic_cast<PolarDiagram*> ( diags[i] ); 00194 if( polarDia ){ 00195 qreal dummy1, dummy2; 00196 polarDia->paint ( &ctx, false, dummy1, dummy2 ); 00197 }else{ 00198 diags[i]->paint ( &ctx ); 00199 } 00200 } 00201 d->currentTransformation = 0; 00202 } // else: diagrams have not been set up yet 00203 }
void AbstractArea::paintAll | ( | QPainter & | painter | ) | [virtual, inherited] |
Call paintAll, if you want the background and the frame to be drawn before the normal paint() is invoked automatically.
Reimplemented from KDChart::AbstractLayoutItem.
Reimplemented in KDChart::TernaryAxis.
Definition at line 123 of file KDChartAbstractArea.cpp.
References KDChart::AbstractArea::areaGeometry(), d, KDChart::AbstractAreaBase::innerRect(), KDChart::AbstractLayoutItem::paint(), KDChart::AbstractAreaBase::paintBackground(), and KDChart::AbstractAreaBase::paintFrame().
Referenced by KDChart::AbstractArea::paintIntoRect().
00124 { 00125 // Paint the background and frame 00126 const QRect overlappingArea( geometry().adjusted( 00127 -d->amountOfLeftOverlap, 00128 -d->amountOfTopOverlap, 00129 d->amountOfRightOverlap, 00130 d->amountOfBottomOverlap ) ); 00131 paintBackground( painter, overlappingArea ); 00132 paintFrame( painter, overlappingArea ); 00133 00134 // temporarily adjust the widget size, to be sure all content gets calculated 00135 // to fit into the inner rectangle 00136 const QRect oldGeometry( areaGeometry() ); 00137 QRect inner( innerRect() ); 00138 inner.moveTo( 00139 oldGeometry.left() + inner.left(), 00140 oldGeometry.top() + inner.top() ); 00141 const bool needAdjustGeometry = oldGeometry != inner; 00142 if( needAdjustGeometry ) 00143 setGeometry( inner ); 00144 paint( &painter ); 00145 if( needAdjustGeometry ) 00146 setGeometry( oldGeometry ); 00147 //qDebug() << "AbstractAreaWidget::paintAll() done."; 00148 }
void AbstractAreaBase::paintBackground | ( | QPainter & | painter, | |
const QRect & | rectangle | |||
) | [virtual, inherited] |
Definition at line 197 of file KDChartAbstractAreaBase.cpp.
References d, and KDChart::AbstractAreaBase::paintBackgroundAttributes().
Referenced by KDChart::TextArea::paintAll(), KDChart::AbstractAreaWidget::paintAll(), and KDChart::AbstractArea::paintAll().
00198 { 00199 Q_ASSERT_X ( d != 0, "AbstractAreaBase::paintBackground()", 00200 "Private class was not initialized!" ); 00201 paintBackgroundAttributes( painter, rect, d->backgroundAttributes ); 00202 }
void AbstractAreaBase::paintBackgroundAttributes | ( | QPainter & | painter, | |
const QRect & | rectangle, | |||
const KDChart::BackgroundAttributes & | attributes | |||
) | [static, inherited] |
Definition at line 128 of file KDChartAbstractAreaBase.cpp.
References KDChart::BackgroundAttributes::BackgroundPixmapModeCentered, KDChart::BackgroundAttributes::BackgroundPixmapModeNone, KDChart::BackgroundAttributes::BackgroundPixmapModeScaled, KDChart::BackgroundAttributes::BackgroundPixmapModeStretched, KDChart::BackgroundAttributes::brush(), KDChart::BackgroundAttributes::isVisible(), m, KDChart::BackgroundAttributes::pixmap(), and KDChart::BackgroundAttributes::pixmapMode().
Referenced by KDChart::AbstractAreaBase::paintBackground().
00130 { 00131 if( !attributes.isVisible() ) return; 00132 00133 /* first draw the brush (may contain a pixmap)*/ 00134 if( Qt::NoBrush != attributes.brush().style() ) { 00135 KDChart::PainterSaver painterSaver( &painter ); 00136 painter.setPen( Qt::NoPen ); 00137 const QPointF newTopLeft( painter.deviceMatrix().map( rect.topLeft() ) ); 00138 painter.setBrushOrigin( newTopLeft ); 00139 painter.setBrush( attributes.brush() ); 00140 painter.drawRect( rect.adjusted( 0, 0, -1, -1 ) ); 00141 } 00142 /* next draw the backPixmap over the brush */ 00143 if( !attributes.pixmap().isNull() && 00144 attributes.pixmapMode() != BackgroundAttributes::BackgroundPixmapModeNone ) { 00145 QPointF ol = rect.topLeft(); 00146 if( BackgroundAttributes::BackgroundPixmapModeCentered == attributes.pixmapMode() ) 00147 { 00148 ol.setX( rect.center().x() - attributes.pixmap().width() / 2 ); 00149 ol.setY( rect.center().y() - attributes.pixmap().height()/ 2 ); 00150 painter.drawPixmap( ol, attributes.pixmap() ); 00151 } else { 00152 QMatrix m; 00153 double zW = (double)rect.width() / (double)attributes.pixmap().width(); 00154 double zH = (double)rect.height() / (double)attributes.pixmap().height(); 00155 switch( attributes.pixmapMode() ) { 00156 case BackgroundAttributes::BackgroundPixmapModeScaled: 00157 { 00158 double z; 00159 z = qMin( zW, zH ); 00160 m.scale( z, z ); 00161 } 00162 break; 00163 case BackgroundAttributes::BackgroundPixmapModeStretched: 00164 m.scale( zW, zH ); 00165 break; 00166 default: 00167 ; // Cannot happen, previously checked 00168 } 00169 QPixmap pm = attributes.pixmap().transformed( m ); 00170 ol.setX( rect.center().x() - pm.width() / 2 ); 00171 ol.setY( rect.center().y() - pm.height()/ 2 ); 00172 painter.drawPixmap( ol, pm ); 00173 } 00174 } 00175 }
void KDChart::AbstractLayoutItem::paintCtx | ( | PaintContext * | context | ) | [virtual, inherited] |
Default impl: Paint the complete item using its layouted position and size.
Reimplemented in KDChart::CartesianAxis, KDChart::LeveyJenningsAxis, and KDChart::TernaryAxis.
Definition at line 78 of file KDChartLayoutItems.cpp.
References KDChart::AbstractLayoutItem::paint(), and KDChart::PaintContext::painter().
00079 { 00080 if( context ) 00081 paint( context->painter() ); 00082 }
void KDChart::PolarCoordinatePlane::paintEvent | ( | QPaintEvent * | ) | [protected] |
void AbstractAreaBase::paintFrame | ( | QPainter & | painter, | |
const QRect & | rectangle | |||
) | [virtual, inherited] |
Definition at line 205 of file KDChartAbstractAreaBase.cpp.
References d, and KDChart::AbstractAreaBase::paintFrameAttributes().
Referenced by KDChart::TextArea::paintAll(), KDChart::AbstractAreaWidget::paintAll(), and KDChart::AbstractArea::paintAll().
00206 { 00207 Q_ASSERT_X ( d != 0, "AbstractAreaBase::paintFrame()", 00208 "Private class was not initialized!" ); 00209 paintFrameAttributes( painter, rect, d->frameAttributes ); 00210 }
void AbstractAreaBase::paintFrameAttributes | ( | QPainter & | painter, | |
const QRect & | rectangle, | |||
const KDChart::FrameAttributes & | attributes | |||
) | [static, inherited] |
Definition at line 178 of file KDChartAbstractAreaBase.cpp.
References KDChart::FrameAttributes::isVisible(), KDChart::FrameAttributes::pen(), and KDChart::PrintingParameters::scalePen().
Referenced by KDChart::AbstractAreaBase::paintFrame().
00180 { 00181 00182 if( !attributes.isVisible() ) return; 00183 00184 // Note: We set the brush to NoBrush explicitly here. 00185 // Otherwise we might get a filled rectangle, so any 00186 // previously drawn background would be overwritten by that area. 00187 00188 const QPen oldPen( painter.pen() ); 00189 const QBrush oldBrush( painter.brush() ); 00190 painter.setPen( PrintingParameters::scalePen( attributes.pen() ) ); 00191 painter.setBrush( Qt::NoBrush ); 00192 painter.drawRect( rect.adjusted( 0, 0, -1, -1 ) ); 00193 painter.setBrush( oldBrush ); 00194 painter.setPen( oldPen ); 00195 }
void AbstractArea::paintIntoRect | ( | QPainter & | painter, | |
const QRect & | rect | |||
) | [virtual, inherited] |
Draws the background and frame, then calls paint().
In most cases there is no need to overwrite this method in a derived class, but you would overwrite AbstractLayoutItem::paint() instead.
Definition at line 111 of file KDChartAbstractArea.cpp.
References KDChart::AbstractArea::paintAll().
00112 { 00113 const QRect oldGeometry( geometry() ); 00114 if( oldGeometry != rect ) 00115 setGeometry( rect ); 00116 painter.translate( rect.left(), rect.top() ); 00117 paintAll( painter ); 00118 painter.translate( -rect.left(), -rect.top() ); 00119 if( oldGeometry != rect ) 00120 setGeometry( oldGeometry ); 00121 }
const KDChart::Chart * KDChart::AbstractCoordinatePlane::parent | ( | ) | const [inherited] |
Definition at line 201 of file KDChartAbstractCoordinatePlane.cpp.
References d.
00203 { 00204 return d->parent;
KDChart::Chart * KDChart::AbstractCoordinatePlane::parent | ( | ) | [inherited] |
Definition at line 206 of file KDChartAbstractCoordinatePlane.cpp.
References d.
Referenced by KDChart::AbstractCoordinatePlane::mousePressEvent(), KDChart::LeveyJenningsAxis::paintAsAbscissa(), and KDChart::LeveyJenningsAxis::paintAsOrdinate().
00208 { 00209 return d->parent;
QLayout* KDChart::AbstractLayoutItem::parentLayout | ( | ) | [inherited] |
void KDChart::AbstractArea::positionChanged | ( | AbstractArea * | ) | [signal, inherited] |
Referenced by KDChart::AbstractArea::positionHasChanged().
void AbstractArea::positionHasChanged | ( | ) | [protected, virtual, inherited] |
Reimplemented from KDChart::AbstractAreaBase.
Definition at line 155 of file KDChartAbstractArea.cpp.
References KDChart::AbstractArea::positionChanged().
00156 { 00157 emit positionChanged( this ); 00158 }
void KDChart::AbstractCoordinatePlane::propertiesChanged | ( | ) | [signal, inherited] |
Emitted upon change of a property of the Coordinate Plane or any of its components.
Referenced by KDChart::CartesianCoordinatePlane::addDiagram(), KDChart::CartesianCoordinatePlane::adjustHorizontalRangeToData(), KDChart::CartesianCoordinatePlane::adjustRangesToData(), KDChart::CartesianCoordinatePlane::adjustVerticalRangeToData(), KDChart::CartesianCoordinatePlane::handleFixedDataCoordinateSpaceRelation(), KDChart::CartesianCoordinatePlane::setAutoAdjustGridToZoom(), KDChart::CartesianCoordinatePlane::setAutoAdjustHorizontalRangeToData(), KDChart::CartesianCoordinatePlane::setAutoAdjustVerticalRangeToData(), KDChart::CartesianCoordinatePlane::setAxesCalcModes(), KDChart::CartesianCoordinatePlane::setAxesCalcModeX(), KDChart::CartesianCoordinatePlane::setAxesCalcModeY(), setGridAttributes(), KDChart::CartesianCoordinatePlane::setGridAttributes(), KDChart::CartesianCoordinatePlane::setHorizontalRange(), KDChart::CartesianCoordinatePlane::setHorizontalRangeReversed(), KDChart::CartesianCoordinatePlane::setIsometricScaling(), KDChart::CartesianCoordinatePlane::setVerticalRange(), KDChart::CartesianCoordinatePlane::setVerticalRangeReversed(), KDChart::CartesianCoordinatePlane::setZoomCenter(), KDChart::CartesianCoordinatePlane::setZoomFactors(), KDChart::CartesianCoordinatePlane::setZoomFactorX(), and KDChart::CartesianCoordinatePlane::setZoomFactorY().
qreal PolarCoordinatePlane::radiusUnit | ( | ) | const |
Definition at line 286 of file KDChartPolarCoordinatePlane.cpp.
References d.
Referenced by layoutDiagrams().
00287 { 00288 Q_ASSERT_X ( d->currentTransformation != 0, "PolarCoordinatePlane::radiusUnit", 00289 "Only call radiusUnit() from within paint()." ); 00290 return d->currentTransformation->radiusUnit; 00291 }
AbstractCoordinatePlane * KDChart::AbstractCoordinatePlane::referenceCoordinatePlane | ( | ) | const [inherited] |
There are two ways, in which planes can be caused to interact, in where they are put layouting wise: The first is the reference plane.
If such a reference plane is set, on a plane, it will use the same cell in the layout as that one. In addition to this, planes can share an axis. In that case they will be laid out in relation to each other as suggested by the position of the axis. If, for example Plane1 and Plane2 share an axis at position Left, that will result in the layout: Axis Plane1 Plane 2, vertically. If Plane1 also happens to be Plane2's reference plane, both planes are drawn over each other. The reference plane concept allows two planes to share the same space even if neither has any axis, and in case there are shared axis, it is used to decided, whether the planes should be painted on top of each other or laid out vertically or horizontally next to each other.
Definition at line 191 of file KDChartAbstractCoordinatePlane.cpp.
References d.
00193 { 00194 return d->referenceCoordinatePlane;
void KDChart::AbstractCoordinatePlane::relayout | ( | ) | [slot, inherited] |
Calling relayout() on the plane triggers the global KDChart::Chart::slotRelayout().
Definition at line 270 of file KDChartAbstractCoordinatePlane.cpp.
References KDChart::AbstractCoordinatePlane::needRelayout().
00272 { 00273 //qDebug("KDChart::AbstractCoordinatePlane::relayout() called"); 00274 emit needRelayout();
void KDChart::AbstractLayoutItem::removeFromParentLayout | ( | ) | [inherited] |
Definition at line 83 of file KDChartLayoutItems.h.
Referenced by KDChart::Chart::takeCoordinatePlane().
00084 { 00085 if( mParentLayout ){ 00086 if( widget() ) 00087 mParentLayout->removeWidget( widget() ); 00088 else 00089 mParentLayout->removeItem( this ); 00090 } 00091 }
void AbstractCoordinatePlane::replaceDiagram | ( | AbstractDiagram * | diagram, | |
AbstractDiagram * | oldDiagram = 0 | |||
) | [virtual, inherited] |
Replaces the old diagram, or appends the diagram, it there is none yet.
diagram | The diagram to be used instead of the old diagram. This parameter must not be zero, or the method will do nothing. | |
oldDiagram | The diagram to be removed by the new diagram. This diagram will be deleted automatically. If the parameter is omitted, the very first diagram will be replaced. In case, there was no diagram yet, the new diagram will just be added. |
Definition at line 90 of file KDChartAbstractCoordinatePlane.cpp.
References KDChart::AbstractCoordinatePlane::addDiagram(), d, KDChart::AbstractCoordinatePlane::layoutDiagrams(), KDChart::AbstractCoordinatePlane::layoutPlanes(), KDChart::AbstractCoordinatePlane::takeDiagram(), and KDChart::AbstractCoordinatePlane::update().
Referenced by KDChart::Widget::setType().
00091 { 00092 if( diagram && oldDiagram_ != diagram ){ 00093 AbstractDiagram* oldDiagram = oldDiagram_; 00094 if( d->diagrams.count() ){ 00095 if( ! oldDiagram ){ 00096 oldDiagram = d->diagrams.first(); 00097 if( oldDiagram == diagram ) 00098 return; 00099 } 00100 takeDiagram( oldDiagram ); 00101 } 00102 delete oldDiagram; 00103 addDiagram( diagram ); 00104 layoutDiagrams(); 00105 layoutPlanes(); // there might be new axes, etc 00106 update(); 00107 } 00108 }
void KDChart::PolarCoordinatePlane::resetGridAttributes | ( | bool | circular | ) |
Reset the attributes to be used for grid lines drawn in circular direction (or in sagittal direction, resp.
). By calling this method you specify that the global attributes set by AbstractCoordinatePlane::setGlobalGridAttributes be used.
Definition at line 401 of file KDChartPolarCoordinatePlane.cpp.
References KDChart::AbstractCoordinatePlane::update().
00403 { 00404 setHasOwnGridAttributes( circular, false ); 00405 update(); 00406 }
void PolarCoordinatePlane::resizeEvent | ( | QResizeEvent * | ) | [protected] |
Definition at line 214 of file KDChartPolarCoordinatePlane.cpp.
References d, and layoutDiagrams().
00215 { 00216 d->initialResizeEventReceived = true; 00217 layoutDiagrams(); 00218 }
int AbstractArea::rightOverlap | ( | bool | doNotRecalculate = false |
) | const [virtual, inherited] |
This is called at layout time by KDChart::AutoSpacerLayoutItem::sizeHint().
The method triggers AbstractArea::sizeHint() to find out the amount of overlap at the right edge of the area.
Definition at line 85 of file KDChartAbstractArea.cpp.
References d.
Referenced by KDChart::AutoSpacerLayoutItem::sizeHint().
00086 { 00087 // Re-calculate the sizes, 00088 // so we also get the amountOf..Overlap members set newly: 00089 if( ! doNotRecalculate ) 00090 sizeHint(); 00091 return d->amountOfRightOverlap; 00092 }
void AbstractAreaBase::setBackgroundAttributes | ( | const BackgroundAttributes & | a | ) | [inherited] |
Definition at line 112 of file KDChartAbstractAreaBase.cpp.
References d, and KDChart::AbstractAreaBase::positionHasChanged().
00113 { 00114 if( d->backgroundAttributes == a ) 00115 return; 00116 00117 d->backgroundAttributes = a; 00118 positionHasChanged(); 00119 }
void AbstractAreaBase::setFrameAttributes | ( | const FrameAttributes & | a | ) | [inherited] |
Definition at line 98 of file KDChartAbstractAreaBase.cpp.
References d, and KDChart::AbstractAreaBase::positionHasChanged().
Referenced by KDChart::Legend::clone().
00099 { 00100 if( d->frameAttributes == a ) 00101 return; 00102 00103 d->frameAttributes = a; 00104 positionHasChanged(); 00105 }
void KDChart::AbstractCoordinatePlane::setGeometry | ( | const QRect & | r | ) | [virtual, inherited] |
pure virtual in QLayoutItem
Reimplemented in KDChart::CartesianCoordinatePlane.
Definition at line 243 of file KDChartAbstractCoordinatePlane.cpp.
References d, and KDChart::AbstractCoordinatePlane::internal_geometryChanged().
Referenced by KDChart::CartesianCoordinatePlane::setGeometry().
00245 { 00246 // qDebug() << "KDChart::AbstractCoordinatePlane::setGeometry(" << r << ") called"; 00247 if( d->geometry != r ){ 00248 //qDebug() << "entering KDChart::AbstractCoordinatePlane::setGeometry(" << r << ")"; 00249 // inform the outside word by Signal geometryChanged() 00250 // via a queued connection to internal_geometryChanged() 00251 emit internal_geometryChanged( d->geometry, r ); 00252 00253 d->geometry = r; 00254 // Note: We do *not* call update() here 00255 // because it would invoke KDChart::update() recursively. 00256 //qDebug() << "leaving KDChart::AbstractCoordinatePlane::setGeometry(" << r << ")"; 00257 }
void KDChart::AbstractCoordinatePlane::setGlobalGridAttributes | ( | const GridAttributes & | a | ) | [inherited] |
Set the grid attributes to be used by this coordinate plane.
To disable grid painting, for example, your code should like this:
GridAttributes ga = plane->globalGridAttributes();
ga.setGlobalGridVisible( false );
plane->setGlobalGridAttributes( ga );
Definition at line 162 of file KDChartAbstractCoordinatePlane.cpp.
References d, and KDChart::AbstractCoordinatePlane::update().
void KDChart::PolarCoordinatePlane::setGridAttributes | ( | bool | circular, | |
const GridAttributes & | a | |||
) |
Set the attributes to be used for grid lines drawn in circular direction (or in sagittal direction, resp.
).
To disable circular grid painting, for example, your code should like this:
GridAttributes ga = plane->gridAttributes( bool ); ga.setGridVisible( false ); plane-setGridAttributes( bool, ga );
Definition at line 388 of file KDChartPolarCoordinatePlane.cpp.
References d, KDChart::AbstractCoordinatePlane::propertiesChanged(), and KDChart::AbstractCoordinatePlane::update().
00391 { 00392 if( circular ) 00393 d->gridAttributesCircular = a; 00394 else 00395 d->gridAttributesSagittal = a; 00396 setHasOwnGridAttributes( circular, true ); 00397 update(); 00398 emit propertiesChanged(); 00399 }
void KDChart::AbstractCoordinatePlane::setGridNeedsRecalculate | ( | ) | [slot, inherited] |
Used by the chart to clear the cached grid data.
Definition at line 181 of file KDChartAbstractCoordinatePlane.cpp.
References d.
Referenced by KDChart::Chart::resizeEvent().
00183 { 00184 d->grid->setNeedRecalculate();
void KDChart::AbstractCoordinatePlane::setParent | ( | KDChart::Chart * | parent | ) | [inherited] |
Called internally by KDChart::Chart.
Definition at line 196 of file KDChartAbstractCoordinatePlane.cpp.
References d.
Referenced by KDChart::Chart::addCoordinatePlane(), and KDChart::Chart::takeCoordinatePlane().
00198 { 00199 d->parent = parent;
void KDChart::AbstractLayoutItem::setParentLayout | ( | QLayout * | lay | ) | [inherited] |
void KDChart::AbstractLayoutItem::setParentWidget | ( | QWidget * | widget | ) | [virtual, inherited] |
Inform the item about its widget: This enables the item, to trigger that widget's update, whenever the size of the item's contents has changed.
Thus, you need to call setParentWidget on every item, that has a non-fixed size.
Definition at line 65 of file KDChartLayoutItems.cpp.
References KDChart::AbstractLayoutItem::mParent.
Referenced by KDChart::HeaderFooter::setParent(), and KDChart::AbstractCartesianDiagram::takeAxis().
00066 { 00067 mParent = widget; 00068 }
void KDChart::AbstractCoordinatePlane::setReferenceCoordinatePlane | ( | AbstractCoordinatePlane * | plane | ) | [inherited] |
Set another coordinate plane to be used as the reference plane for this one.
plane | The coordinate plane to be used the reference plane for this one. |
Definition at line 186 of file KDChartAbstractCoordinatePlane.cpp.
References d.
00188 { 00189 d->referenceCoordinatePlane = plane;
void KDChart::AbstractCoordinatePlane::setRubberBandZoomingEnabled | ( | bool | enable | ) | [inherited] |
Enables or disables zooming with a rubber band using the mouse.
Definition at line 282 of file KDChartAbstractCoordinatePlane.cpp.
References d.
00284 { 00285 d->enableRubberBandZooming = enable; 00286 00287 if( !enable && d->rubberBand != 0 ) 00288 { 00289 delete d->rubberBand; 00290 d->rubberBand = 0; 00291 }
void PolarCoordinatePlane::setStartPosition | ( | qreal | degrees | ) |
Specify the rotation of the coordinate plane.
In a Pie diagram this indicates the position where the first pie starts, in a Polar diagram it specifies the Zero position of the circular axis.
Definition at line 298 of file KDChartPolarCoordinatePlane.cpp.
References d, and KDChart::AbstractCoordinatePlane::diagram().
00299 { 00300 Q_ASSERT_X ( diagram(), "PolarCoordinatePlane::setStartPosition", 00301 "setStartPosition() needs a diagram to be associated to the plane." ); 00302 for( CoordinateTransformationList::iterator it = d->coordinateTransformations.begin(); 00303 it != d->coordinateTransformations.end(); 00304 ++it ) 00305 { 00306 CoordinateTransformation& trans = *it; 00307 trans.startPosition = degrees; 00308 } 00309 }
void PolarCoordinatePlane::setZoomCenter | ( | const QPointF & | center | ) | [virtual] |
Set the point (in value coordinates) to be used as the center point in zoom operations.
center | The point to use. |
Reimplemented from KDChart::AbstractCoordinatePlane.
Definition at line 367 of file KDChartPolarCoordinatePlane.cpp.
References d.
00368 { 00369 for( CoordinateTransformationList::iterator it = d->coordinateTransformations.begin(); 00370 it != d->coordinateTransformations.end(); 00371 ++it ) 00372 { 00373 CoordinateTransformation& trans = *it; 00374 trans.zoom.xCenter = center.x(); 00375 trans.zoom.yCenter = center.y(); 00376 } 00377 }
void PolarCoordinatePlane::setZoomFactors | ( | double | factorX, | |
double | factorY | |||
) | [virtual] |
Sets both zoom factors in one go.
Reimplemented from KDChart::AbstractCoordinatePlane.
Definition at line 332 of file KDChartPolarCoordinatePlane.cpp.
References setZoomFactorX(), and setZoomFactorY().
Referenced by adjustZoomAndRepaint().
00333 { 00334 setZoomFactorX( factorX ); 00335 setZoomFactorY( factorY ); 00336 }
void PolarCoordinatePlane::setZoomFactorX | ( | double | factor | ) | [virtual] |
Sets the zoom factor in horizontal direction, that is applied to all coordinate transformations.
factor | The new zoom factor |
Reimplemented from KDChart::AbstractCoordinatePlane.
Definition at line 338 of file KDChartPolarCoordinatePlane.cpp.
References d.
Referenced by setZoomFactors().
00339 { 00340 for( CoordinateTransformationList::iterator it = d->coordinateTransformations.begin(); 00341 it != d->coordinateTransformations.end(); 00342 ++it ) 00343 { 00344 CoordinateTransformation& trans = *it; 00345 trans.zoom.xFactor = factor; 00346 } 00347 }
void PolarCoordinatePlane::setZoomFactorY | ( | double | factor | ) | [virtual] |
Sets the zoom factor in vertical direction, that is applied to all coordinate transformations.
factor | The new zoom factor |
Reimplemented from KDChart::AbstractCoordinatePlane.
Definition at line 349 of file KDChartPolarCoordinatePlane.cpp.
References d.
Referenced by setZoomFactors().
00350 { 00351 for( CoordinateTransformationList::iterator it = d->coordinateTransformations.begin(); 00352 it != d->coordinateTransformations.end(); 00353 ++it ) 00354 { 00355 CoordinateTransformation& trans = *it; 00356 trans.zoom.yFactor = factor; 00357 } 00358 }
AbstractCoordinatePlane * KDChart::AbstractCoordinatePlane::sharedAxisMasterPlane | ( | QPainter * | p = 0 |
) | [virtual, inherited] |
Reimplemented in KDChart::CartesianCoordinatePlane.
Definition at line 426 of file KDChartAbstractCoordinatePlane.cpp.
Referenced by KDChart::Plotter::paint(), KDChart::LineDiagram::paint(), KDChart::LeveyJenningsDiagram::paint(), and KDChart::BarDiagram::paint().
00428 { 00429 Q_UNUSED( p ); 00430 return this;
QSize KDChart::AbstractCoordinatePlane::sizeHint | ( | ) | const [virtual, inherited] |
pure virtual in QLayoutItem
Definition at line 236 of file KDChartAbstractCoordinatePlane.cpp.
References KDChart::AbstractCoordinatePlane::maximumSize().
00238 { 00239 // we return our maxiumu (which is the full size of the Chart) 00240 // even if we know the plane will be smaller 00241 return maximumSize();
void KDChart::AbstractLayoutItem::sizeHintChanged | ( | ) | const [virtual, inherited] |
Report changed size hint: ask the parent widget to recalculate the layout.
Definition at line 87 of file KDChartLayoutItems.cpp.
References KDChart::AbstractLayoutItem::mParent.
Referenced by KDChart::TextLayoutItem::sizeHintAndRotatedCorners().
00088 { 00089 // This is exactly like what QWidget::updateGeometry does. 00090 // qDebug("KDChart::AbstractLayoutItem::sizeHintChanged() called"); 00091 if( mParent ) { 00092 if ( mParent->layout() ) 00093 mParent->layout()->invalidate(); 00094 else 00095 QApplication::postEvent( mParent, new QEvent( QEvent::LayoutRequest ) ); 00096 } 00097 }
QSizePolicy KDChart::AbstractCoordinatePlane::sizePolicy | ( | ) | const [virtual, inherited] |
[reimplemented]
Reimplemented in KDChart::TernaryCoordinatePlane.
Definition at line 157 of file KDChartAbstractCoordinatePlane.cpp.
void PolarCoordinatePlane::slotLayoutChanged | ( | AbstractDiagram * | diagram | ) | [protected, slot] |
Definition at line 293 of file KDChartPolarCoordinatePlane.cpp.
References d, and layoutDiagrams().
Referenced by addDiagram().
00294 { 00295 if ( d->initialResizeEventReceived ) layoutDiagrams(); 00296 }
qreal PolarCoordinatePlane::startPosition | ( | ) | const |
Retrieve the rotation of the coordinate plane.
Definition at line 311 of file KDChartPolarCoordinatePlane.cpp.
References d.
Referenced by layoutDiagrams(), KDChart::RingDiagram::paint(), and KDChart::PieDiagram::paintInternal().
00312 { 00313 return d->coordinateTransformations.isEmpty() 00314 ? 0.0 00315 : d->coordinateTransformations.first().startPosition; 00316 }
void AbstractCoordinatePlane::takeDiagram | ( | AbstractDiagram * | diagram | ) | [virtual, inherited] |
Removes the diagram from the plane, without deleting it.
The plane no longer owns the diagram, so it is the caller's responsibility to delete the diagram.
Definition at line 111 of file KDChartAbstractCoordinatePlane.cpp.
References d, KDChart::AbstractCoordinatePlane::layoutDiagrams(), KDChart::AbstractCoordinatePlane::layoutPlanes(), KDChart::AbstractDiagram::setCoordinatePlane(), and KDChart::AbstractCoordinatePlane::update().
Referenced by KDChart::AbstractCoordinatePlane::replaceDiagram().
00112 { 00113 const int idx = d->diagrams.indexOf( diagram ); 00114 if( idx != -1 ){ 00115 d->diagrams.removeAt( idx ); 00116 diagram->setParent( 0 ); 00117 diagram->setCoordinatePlane( 0 ); 00118 disconnect( diagram, SIGNAL( modelsChanged() ), this, SLOT( layoutPlanes() ) ); 00119 layoutDiagrams(); 00120 update(); 00121 } 00122 }
int AbstractArea::topOverlap | ( | bool | doNotRecalculate = false |
) | const [virtual, inherited] |
This is called at layout time by KDChart::AutoSpacerLayoutItem::sizeHint().
The method triggers AbstractArea::sizeHint() to find out the amount of overlap at the top edge of the area.
Definition at line 93 of file KDChartAbstractArea.cpp.
References d.
Referenced by KDChart::AutoSpacerLayoutItem::sizeHint().
00094 { 00095 // Re-calculate the sizes, 00096 // so we also get the amountOf..Overlap members set newly: 00097 if( ! doNotRecalculate ) 00098 sizeHint(); 00099 return d->amountOfTopOverlap; 00100 }
const QPointF PolarCoordinatePlane::translate | ( | const QPointF & | diagramPoint | ) | const [virtual] |
Translate the given point in value space coordinates to a position in pixel space.
diagramPoint | The point in value coordinates. |
Implements KDChart::AbstractCoordinatePlane.
Definition at line 265 of file KDChartPolarCoordinatePlane.cpp.
References d.
Referenced by buildReferenceRect().
00266 { 00267 Q_ASSERT_X ( d->currentTransformation != 0, "PolarCoordinatePlane::translate", 00268 "Only call translate() from within paint()." ); 00269 return d->currentTransformation->translate ( diagramPoint ); 00270 }
const QPointF PolarCoordinatePlane::translatePolar | ( | const QPointF & | diagramPoint | ) | const |
Definition at line 272 of file KDChartPolarCoordinatePlane.cpp.
References d.
00273 { 00274 Q_ASSERT_X ( d->currentTransformation != 0, "PolarCoordinatePlane::translate", 00275 "Only call translate() from within paint()." ); 00276 return d->currentTransformation->translatePolar ( diagramPoint ); 00277 }
void KDChart::AbstractCoordinatePlane::update | ( | ) | [slot, inherited] |
Calling update() on the plane triggers the global KDChart::Chart::update().
Definition at line 264 of file KDChartAbstractCoordinatePlane.cpp.
References KDChart::AbstractCoordinatePlane::needUpdate().
Referenced by KDChart::AbstractCoordinatePlane::addDiagram(), adjustZoomAndRepaint(), KDChart::CartesianCoordinatePlane::layoutDiagrams(), KDChart::AbstractCoordinatePlane::replaceDiagram(), resetGridAttributes(), KDChart::CartesianCoordinatePlane::resetGridAttributes(), KDChart::AbstractCoordinatePlane::setGlobalGridAttributes(), setGridAttributes(), KDChart::CartesianCoordinatePlane::setGridAttributes(), and KDChart::AbstractCoordinatePlane::takeDiagram().
00266 { 00267 //qDebug("KDChart::AbstractCoordinatePlane::update() called"); 00268 emit needUpdate();
QPointF PolarCoordinatePlane::zoomCenter | ( | ) | const [virtual] |
Reimplemented from KDChart::AbstractCoordinatePlane.
Definition at line 360 of file KDChartPolarCoordinatePlane.cpp.
References d.
00361 { 00362 return d->coordinateTransformations.isEmpty() 00363 ? QPointF( 0.5, 0.5 ) 00364 : QPointF( d->coordinateTransformations.first().zoom.xCenter, d->coordinateTransformations.first().zoom.yCenter ); 00365 }
double PolarCoordinatePlane::zoomFactorX | ( | ) | const [virtual] |
Reimplemented from KDChart::AbstractCoordinatePlane.
Definition at line 318 of file KDChartPolarCoordinatePlane.cpp.
References d.
Referenced by paint().
00319 { 00320 return d->coordinateTransformations.isEmpty() 00321 ? 1.0 00322 : d->coordinateTransformations.first().zoom.xFactor; 00323 }
double PolarCoordinatePlane::zoomFactorY | ( | ) | const [virtual] |
Reimplemented from KDChart::AbstractCoordinatePlane.
Definition at line 325 of file KDChartPolarCoordinatePlane.cpp.
References d.
Referenced by paint().
00326 { 00327 return d->coordinateTransformations.isEmpty() 00328 ? 1.0 00329 : d->coordinateTransformations.first().zoom.yFactor; 00330 }
QWidget* KDChart::AbstractLayoutItem::mParent [protected, inherited] |
QLayout* KDChart::AbstractLayoutItem::mParentLayout [protected, inherited] |
Definition at line 94 of file KDChartLayoutItems.h.
Referenced by KDChart::AutoSpacerLayoutItem::paint().