KDChart::PolarCoordinatePlane Class Reference

#include <KDChartPolarCoordinatePlane.h>

Inheritance diagram for KDChart::PolarCoordinatePlane:

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

Collaboration graph
[legend]

List of all members.


Detailed Description

Polar coordinate plane.

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.
AbstractDiagramdiagram ()
 
Returns:
The first diagram associated with this coordinate plane.

ConstAbstractDiagramList diagrams () const
 
Returns:
The list of diagrams associated with this coordinate plane.

AbstractDiagramList diagrams ()
 
Returns:
The list of diagrams associated with this coordinate plane.

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
 
Returns:
The grid attributes used by this coordinate plane.

const GridAttributes gridAttributes (bool circular) const
 
Returns:
The attributes used for grid lines drawn in circular direction (or in sagittal direction, resp.

DataDimensionsList gridDimensionsList ()
 Returns the dimensions used for drawing the grid lines.
bool hasOwnGridAttributes (bool circular) const
 
Returns:
Returns whether the grid attributes have been set for the respective direction via setGridAttributes( bool circular ).

virtual bool isEmpty () const
 pure virtual in QLayoutItem
bool isRubberBandZoomingEnabled () const
 
Returns:
Whether zooming with a rubber band using the mouse is enabled.

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 Chartparent () const
Chartparent ()
QLayout * parentLayout ()
 PolarCoordinatePlane (Chart *parent=0)
qreal radiusUnit () const
AbstractCoordinatePlanereferenceCoordinatePlane () 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 &center)
 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 AbstractCoordinatePlanesharedAxisMasterPlane (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
 
Returns:
The center point (in value coordinates) of the coordinate plane, that is used for zoom operations.

virtual double zoomFactorX () const
 
Returns:
The zoom factor in horizontal direction, that is applied to all coordinate transformations.

virtual double zoomFactorY () const
 
Returns:
The zoom factor in vertical direction, that is applied to all coordinate transformations.

 ~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

QWidgetmParent
QLayout * mParentLayout

Member Typedef Documentation

typedef QList<CoordinateTransformation> KDChart::PolarCoordinatePlane::CoordinateTransformationList

Definition at line 47 of file KDChartPolarCoordinatePlane.h.


Member Enumeration Documentation

enum KDChart::AbstractCoordinatePlane::AxesCalcMode [inherited]

Enumerator:
Linear 
Logarithmic 

Definition at line 57 of file KDChartAbstractCoordinatePlane.h.

00057 { Linear, Logarithmic };


Constructor & Destructor Documentation

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 (  ) 

Definition at line 124 of file KDChartPolarCoordinatePlane.cpp.

00125 {
00126     // this bloc left empty intentionally
00127 }


Member Function Documentation

void PolarCoordinatePlane::addDiagram ( AbstractDiagram diagram  )  [virtual]

Adds a diagram to this coordinate plane.

Parameters:
diagram The diagram to add.
See also:
replaceDiagram, takeDiagram

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().

00151 {
00152     return geometry();
00153 }

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.

Note:
The default implementation is not using any caching, it might make sense to implement a more sophisticated solution for derived classes that have complex work to do in sizeHint(). All we have here is a primitive flag to be set by the caller if it is sure that no sizeHint() needs to be called.

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]

Returns:
The first diagram associated with this coordinate plane.

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]

Returns:
The list of diagrams associated with this coordinate plane.

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]

Returns:
The list of diagrams associated with this coordinate plane.

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]

pure virtual in QLayoutItem

Definition at line 219 of file KDChartAbstractCoordinatePlane.cpp.

00221 {
00222     return Qt::Vertical | Qt::Horizontal;

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]

Returns:
The grid attributes used by this coordinate plane.

See also:
setGlobalGridAttributes

CartesianCoordinatePlane::gridAttributes

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

Returns:
The attributes used for grid lines drawn in circular direction (or in sagittal direction, resp.

).

Note:
This function always returns a valid set of grid attributes: If no special grid attributes were set for this direction the global attributes are returned, as returned by AbstractCoordinatePlane::globalGridAttributes.
See also:
setGridAttributes

resetGridAttributes

AbstractCoordinatePlane::globalGridAttributes

hasOwnGridAttributes

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.

Note:
Returned list will contain different numbers of DataDimension, depending on the kind of coordinate plane used. For CartesianCoordinatePlane two DataDimension are returned: the first representing grid lines in X direction (matching the Abscissa axes) and the second indicating vertical grid lines (or Ordinate axes, resp.).
Returns:
The dimensions used for drawing the grid lines.
See also:
DataDimension

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

Returns:
Returns whether the grid attributes have been set for the respective direction via setGridAttributes( bool circular ).

If false, the grid will use the global attributes set by AbstractCoordinatePlane::globalGridAttributes (or the default attributes, resp.)

See also:
setGridAttributes

resetGridAttributes

AbstractCoordinatePlane::globalGridAttributes

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]

Returns:
Whether zooming with a rubber band using the mouse is enabled.

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.

Note:
Before calling this function the point must have been translated into coordinate plane space.

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.

Note:
The default implementation is not using any caching, it might make sense to implement a more sophisticated solution for derived classes that have complex work to do in sizeHint(). All we have here is a primitive flag to be set by the caller if it is sure that no sizeHint() needs to be called.

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]

pure virtual in QLayoutItem

Definition at line 231 of file KDChartAbstractCoordinatePlane.cpp.

00233 {
00234     return QSize(60, 60); // this default can be overwritten by derived classes

QSize KDChart::AbstractCoordinatePlane::minimumSizeHint (  )  const [virtual, inherited]

[reimplemented]

Reimplemented in KDChart::TernaryCoordinatePlane.

Definition at line 151 of file KDChartAbstractCoordinatePlane.cpp.

00153 {
00154     return QSize( 200, 200 );

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]

Definition at line 79 of file KDChartLayoutItems.h.

00080         {
00081             return mParentLayout;
00082         }

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.

Returns:
The reference coordinate plane associated with this one.

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.

Parameters:
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.
Note:
If you want to re-use the old diagram, call takeDiagram and addDiagram, instead of using replaceDiagram.
See also:
addDiagram, takeDiagram

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.

See also:
setGridAttributes, gridAttributes

AbstractCoordinatePlane::globalGridAttributes

hasOwnGridAttributes

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.

Note:
The default implementation is not using any caching, it might make sense to implement a more sophisticated solution for derived classes that have complex work to do in sizeHint(). All we have here is a primitive flag to be set by the caller if it is sure that no sizeHint() needs to be called.

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

Note:
Do not call this function directly, unless you know exactly what you are doing. Geometry management is done by KD Chart's internal layouting measures.

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 );
See also:
globalGridAttributes

CartesianCoordinatePlane::setGridAttributes

Definition at line 162 of file KDChartAbstractCoordinatePlane.cpp.

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

00164 {
00165     d->gridAttributes = a;
00166     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 );

Note:
setGridAttributes overwrites the global attributes that were set by AbstractCoordinatePlane::setGlobalGridAttributes. To re-activate these global attributes you can call resetGridAttributes.
See also:
resetGridAttributes, gridAttributes

AbstractCoordinatePlane::setGlobalGridAttributes

hasOwnGridAttributes

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]

Definition at line 75 of file KDChartLayoutItems.h.

00076         {
00077             mParentLayout = lay;
00078         }

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.

Parameters:
plane The coordinate plane to be used the reference plane for this one.
See also:
referenceCoordinatePlane

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.

See also:
startPosition

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.

Parameters:
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.

See also:
setZoomFactorX,setZoomFactorY

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.

Parameters:
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.

Parameters:
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.

00159 {
00160     return QSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding );

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.

See also:
setStartPosition

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.

See also:
addDiagram, replaceDiagram

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.

Note:
The default implementation is not using any caching, it might make sense to implement a more sophisticated solution for derived classes that have complex work to do in sizeHint(). All we have here is a primitive flag to be set by the caller if it is sure that no sizeHint() needs to be called.

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.

Parameters:
diagramPoint The point in value coordinates.
Returns:
The translated point.

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]

Returns:
The center point (in value coordinates) of the coordinate plane, that is used for zoom operations.

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]

Returns:
The zoom factor in horizontal direction, that is applied to all coordinate transformations.

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]

Returns:
The zoom factor in vertical direction, that is applied to all coordinate transformations.

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 }


Member Data Documentation

QWidget* KDChart::AbstractLayoutItem::mParent [protected, inherited]

Definition at line 93 of file KDChartLayoutItems.h.

Referenced by KDChart::AbstractLayoutItem::setParentWidget(), KDChart::TextLayoutItem::setText(), KDChart::TextLayoutItem::setTextAlignment(), KDChart::TextLayoutItem::setTextAttributes(), and KDChart::AbstractLayoutItem::sizeHintChanged().

QLayout* KDChart::AbstractLayoutItem::mParentLayout [protected, inherited]

Definition at line 94 of file KDChartLayoutItems.h.

Referenced by KDChart::AutoSpacerLayoutItem::paint().


The documentation for this class was generated from the following files:
Generated on Thu Mar 4 23:26:23 2010 for KD Chart 2 by  doxygen 1.5.4