12 #include "KDChartAbstractArea_p.h"
19 #include <KDABLibFakes>
25 AbstractArea::Private::Private()
31 AbstractArea::Private::~Private()
36 AbstractArea::AbstractArea()
49 void AbstractArea::init()
51 d->amountOfLeftOverlap = 0;
52 d->amountOfRightOverlap = 0;
53 d->amountOfTopOverlap = 0;
54 d->amountOfBottomOverlap = 0;
61 if (!doNotRecalculate)
63 return d->amountOfLeftOverlap;
69 if (!doNotRecalculate)
71 return d->amountOfRightOverlap;
77 if (!doNotRecalculate)
79 return d->amountOfTopOverlap;
85 if (!doNotRecalculate)
87 return d->amountOfBottomOverlap;
92 const QRect oldGeometry(geometry());
93 if (oldGeometry != rect)
95 painter.translate(rect.left(), rect.top());
97 painter.translate(-rect.left(), -rect.top());
98 if (oldGeometry != rect)
99 setGeometry(oldGeometry);
105 const QRect overlappingArea(geometry().adjusted(-
d->amountOfLeftOverlap, -
d->amountOfTopOverlap,
106 d->amountOfRightOverlap,
d->amountOfBottomOverlap));
114 inner.moveTo(oldGeometry.left() + inner.left(), oldGeometry.top() + inner.top());
115 const bool needAdjustGeometry = oldGeometry != inner;
116 if (needAdjustGeometry) {
118 bool prevSignalBlocked = signalsBlocked();
121 blockSignals(prevSignalBlocked);
124 if (needAdjustGeometry) {
125 bool prevSignalBlocked = signalsBlocked();
127 setGeometry(oldGeometry);
128 blockSignals(prevSignalBlocked);
Base class for AbstractArea and AbstractAreaWidget: An area in the chart with a background,...
virtual void paintFrame(QPainter &painter, const QRect &rectangle)
virtual void paintBackground(QPainter &painter, const QRect &rectangle)
virtual int bottomOverlap(bool doNotRecalculate=false) const
virtual int rightOverlap(bool doNotRecalculate=false) const
void paintAll(QPainter &painter) override
virtual int topOverlap(bool doNotRecalculate=false) const
virtual int leftOverlap(bool doNotRecalculate=false) const
void positionHasChanged() override
void positionChanged(AbstractArea *)
QRect areaGeometry() const override
virtual void paintIntoRect(QPainter &painter, const QRect &rect)
Draws the background and frame, then calls paint().
virtual void paint(QPainter *)=0