26 #include <QGraphicsRectItem> 46 Type = UserType + Frame
85 FrameItem(
double x0 = 4,
double y0 = 3,
double width = 15,
86 double height = 10,
unsigned colorFrame = 0,
87 unsigned colorGrid = 0,
bool logX =
false,
bool logY =
false,
88 GridMode gridMode = AxesWithLabels,
double xMax = 15,
89 double yMax = 10,
const QString& textX =
"",
90 const QString& textY =
"",
const QString& header =
"",
91 double relSize = 1,
int numDigX = -1,
int numDigY = -1,
92 int minTicX = 5,
int minTicY = 2,
int expX = 0,
int expY = 0,
93 double xMin = 0,
double yMin = 0,
double xTic = 5,
double yTic = 2,
94 bool collapsed =
false,
bool visible =
true,
double xOffset = 0,
95 double yOffset = 0,
bool xBottom =
true,
bool xTop =
false,
96 bool yLeft =
true,
bool yRight =
false);
113 FrameItem(
const KConfigGroup* plo,
double x0 = 4,
double y0 = 3,
114 double width = 15,
double height = 10,
unsigned colorFrame = 0,
115 unsigned colorGrid = 0,
GridMode gridMode = AxesWithLabels);
132 static void autoScale(
double& xMin,
double& xMax,
double& tick,
int& minTic,
133 int& numDig,
double xmi,
double xma,
double f,
144 void autoScale(
double xmi,
double xma,
double fx,
double ymi,
double yma,
150 void autoScale(
bool autoNorm =
true);
152 virtual QRectF boundingRect()
const;
161 bool calcAutoScale(
bool autoNorm,
const QList<QGraphicsItem*>& items,
162 double& fx,
double& fy);
168 inline unsigned colorGrid()
const {
return m_colorGrid; };
170 inline int expX()
const {
return m_expX; };
172 inline int expY()
const {
return m_expY; };
176 inline QString
header()
const {
return m_header; };
178 inline double height()
const {
return m_height; };
182 inline bool logX()
const {
return m_logX; };
184 inline bool logY()
const {
return m_logY; };
190 QPointF mapFromUser(
const QPointF& p)
const;
196 QPointF mapToUser(
const QPointF& p)
const;
202 QRectF mapToUser(
const QRectF& rect)
const;
204 inline int minTicX()
const {
return m_minTicX; };
206 inline int minTicY()
const {
return m_minTicY; };
208 inline double normX()
const {
return m_normX; };
210 inline double normY()
const {
return m_normY; };
212 inline int numDigX()
const {
return m_numDigX; };
214 inline int numDigY()
const {
return m_numDigY; };
216 virtual void paint(QPainter* painter,
const QStyleOptionGraphicsItem* option,
217 QWidget* widget = 0);
219 QPointF rectPos()
const;
234 inline void setExpX(
int expX) { m_expX = expX; m_normX = pow(10, expX); };
239 inline void setExpY(
int expY) { m_expY = expY; m_normY = pow(10, expY); };
249 inline void setHeight(
double height) { m_height = height; };
254 inline void setLogX(
bool logX) { m_logX = logX; };
259 inline void setLogY(
bool logY) { m_logY = logY; };
264 inline void setMinTicX(
int minTicX) { m_minTicX = minTicX; };
269 inline void setMinTicY(
int minTicY) { m_minTicY = minTicY; };
274 inline void setNumDigX(
int numDigX) { m_numDigX = numDigX; };
279 inline void setNumDigY(
int numDigY) { m_numDigY = numDigY; };
284 void setProperties(
const QTransform& m);
289 inline void setHeader(
const QString& text) { m_header = text; };
294 inline void setTextX(
const QString& text) { m_textX = text; };
299 inline void setTextY(
const QString& text) { m_textY = text; };
304 inline void setWidth(
double width) { m_width = width; };
309 inline void setX0(
double x0) { m_x0 = x0; };
314 inline void setXBottom(
bool xBottom) { m_xBottom = xBottom; };
319 inline void setXMax(
double xMax) { m_xMax = xMax; };
324 inline void setXMin(
double xMin) { m_xMin = xMin; };
329 inline void setXOffset(
double xOffset) { m_xOffset = xOffset; };
334 inline void setXTic(
double xTic) { m_xTic = xTic; };
339 inline void setXTop(
bool xTop) { m_xTop = xTop; };
344 inline void setY0(
double y0) { m_y0 = y0; };
349 inline void setYLeft(
bool yLeft) { m_yLeft = yLeft; };
354 inline void setYMax(
double yMax) { m_yMax = yMax; };
359 inline void setYMin(
double yMin) { m_yMin = yMin; };
364 inline void setYOffset(
double yOffset) { m_yOffset = yOffset; };
369 inline void setYRight(
bool yRight) { m_yRight = yRight; };
374 inline void setYTic(
double yTic) { m_yTic = yTic; };
376 QPointF steps()
const;
378 inline QString
textX()
const {
return m_textX; };
380 inline QString
textY()
const {
return m_textY; };
382 virtual int type()
const {
return Type; };
391 void updatePos(QPointF p);
398 static inline bool valid(
double v,
bool log =
false)
399 {
return (v == v) && (fabs(v) <= 1e300) && ((!log) || (v > 0)); };
406 bool valid(
double x,
double y)
const;
408 inline double width()
const {
return m_width; };
413 void writePlo(KConfigGroup* plo)
const;
415 inline double x0()
const {
return m_x0; };
417 inline bool xBottom()
const {
return m_xBottom; };
419 inline double xMax()
const {
return m_xMax; };
421 inline double xMin()
const {
return m_xMin; };
423 inline double xOffset()
const {
return m_xOffset; };
425 inline double xTic()
const {
return m_xTic; };
427 inline bool xTop()
const {
return m_xTop; };
428 inline double y0()
const {
return m_y0; };
430 inline bool yLeft()
const {
return m_yLeft; };
432 inline bool yRight()
const {
return m_yRight; };
434 inline double yMax()
const {
return m_yMax; };
436 inline double yMin()
const {
return m_yMin; };
438 inline double yOffset()
const {
return m_yOffset; };
440 inline double yTic()
const {
return m_yTic; };
452 void drawText(QPainter* painter,
const QString& text,
double x,
double y,
460 double incLog(
double& x,
double f)
const;
462 virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent* event);
471 int number(
double v,
int numDig, QString& label)
const;
476 void paintCond(QPainter* painter)
const;
478 void setProperties();
485 double tick(
double tic,
bool log)
const;
486 bool m_logX, m_logY, m_xBottom, m_xTop, m_yLeft, m_yRight, m_collapsed;
487 int m_numDigX, m_numDigY, m_minTicX, m_minTicY, m_expX, m_expY;
489 unsigned m_colorFrame, m_colorGrid;
490 double m_x0, m_y0, m_width, m_height, m_xMin, m_xMax, m_yMin, m_yMax, m_xTic,
491 m_yTic, m_xOffset, m_yOffset, m_normX, m_normY, xminl, xmaxl, yminl, ymaxl;
492 QString m_textX, m_textY, m_header;
493 mutable QRectF bRect;
495 QTransform md, m_inv, m_matrix;
void setLogX(bool logX)
Sets logarithmic mode of x axis.
Definition: frameitem.h:254
unsigned colorFrame() const
Returns color for frame and labels.
Definition: frameitem.h:166
void setYMin(double yMin)
Sets lower y data limit.
Definition: frameitem.h:359
Kpl item class.
Definition: kplitem.h:41
void setExpY(int expY)
Sets exponent of y normalization factor.
Definition: frameitem.h:239
double yOffset() const
Returns offset for first major y tick.
Definition: frameitem.h:438
void setXTop(bool xTop)
Sets top side label mode.
Definition: frameitem.h:339
Axes with tics and without labels.
Definition: frameitem.h:39
int minTicX() const
Returns number of intervals between major tics of x axis.
Definition: frameitem.h:204
int numDigX() const
Returns number of digits for x axis.
Definition: frameitem.h:212
GridMode
Grid mode.
Definition: frameitem.h:37
bool logY() const
Returns true for logarithmic y axis.
Definition: frameitem.h:184
int numDigY() const
Returns number of digits for y axis.
Definition: frameitem.h:214
void setYLeft(bool yLeft)
Sets left side label mode.
Definition: frameitem.h:349
Alignment
Text alignment.
Definition: textitem.h:33
double yTic() const
Returns distance between major tics of y axis.
Definition: frameitem.h:440
void setXBottom(bool xBottom)
Sets bottom side label mode.
Definition: frameitem.h:314
virtual int type() const
Returns specific QGraphicsItem type number.
Definition: frameitem.h:382
double width() const
Returns width in cm.
Definition: frameitem.h:408
QString textX() const
Returns x axis text.
Definition: frameitem.h:378
void setY0(double y0)
Sets bottom page margin.
Definition: frameitem.h:344
void setColorFrame(unsigned color)
Sets color for frame and labels.
Definition: frameitem.h:224
void setYMax(double yMax)
Sets upper y data limit.
Definition: frameitem.h:354
void setXOffset(double xOffset)
Sets x offset.
Definition: frameitem.h:329
void setWidth(double width)
Sets width.
Definition: frameitem.h:304
Grid without labels.
Definition: frameitem.h:41
double yMin() const
Returns y value of lower data window margin in user units.
Definition: frameitem.h:436
void setTextX(const QString &text)
Sets x axis text.
Definition: frameitem.h:294
void setHeader(const QString &text)
Sets heading text.
Definition: frameitem.h:289
QString textY() const
Returns y axis text.
Definition: frameitem.h:380
QRectF clipRect() const
Returns clipping rectangle.
Definition: frameitem.h:164
QString header() const
Returns heading text.
Definition: frameitem.h:176
void setYOffset(double yOffset)
Sets y offset.
Definition: frameitem.h:364
void writePlo(KConfigGroup *plo, bool visible=true) const
Writes into plot file.
void setColorGrid(unsigned color)
Sets color for grids and tics.
Definition: frameitem.h:229
double xOffset() const
Returns offset for first major x tick.
Definition: frameitem.h:423
void setMinTicY(int minTicY)
Sets number of intervals between major tics of y axis.
Definition: frameitem.h:269
double xMin() const
Returns x value of left data window margin in user units.
Definition: frameitem.h:421
int expX() const
Returns logarithm of normalization factor for x axis.
Definition: frameitem.h:170
void toggleCollapsed()
Toggles collapse state.
Definition: frameitem.h:384
void setTextY(const QString &text)
Sets y axis text.
Definition: frameitem.h:299
bool yLeft() const
Returns true for y axis labels on left side.
Definition: frameitem.h:430
void setNumDigY(int numDigY)
Sets number of digits for y axis.
Definition: frameitem.h:279
int minTicY() const
Returns number of intervals between major tics of y axis.
Definition: frameitem.h:206
Only rectangular frame.
Definition: frameitem.h:38
void setHeight(double height)
Sets height.
Definition: frameitem.h:249
double x0() const
Returns left page margin in cm.
Definition: frameitem.h:415
void setLogY(bool logY)
Sets logarithmic mode of y axis.
Definition: frameitem.h:259
bool yRight() const
Returns true for y axis labels on right side.
Definition: frameitem.h:432
void setExpX(int expX)
Sets exponent of x normalization factor.
Definition: frameitem.h:234
Axes with tics and labels.
Definition: frameitem.h:40
void setMinTicX(int minTicX)
Sets number of intervals between major tics of x axis.
Definition: frameitem.h:264
double normX() const
Returns normalization factor for x values.
Definition: frameitem.h:208
void setXMax(double xMax)
Sets upper x data limit.
Definition: frameitem.h:319
int expY() const
Returns logarithm of normalization factor for y axis.
Definition: frameitem.h:172
double yMax() const
Returns y value of upper data window margin in user units.
Definition: frameitem.h:434
void setXMin(double xMin)
Sets lower x data limit.
Definition: frameitem.h:324
void setX0(double x0)
Sets left page margin.
Definition: frameitem.h:309
void setNumDigX(int numDigX)
Sets number of digits for x axis.
Definition: frameitem.h:274
double xMax() const
Returns x value of right data window margin in user units.
Definition: frameitem.h:419
bool xBottom() const
Returns true for x axis labels on bottom side.
Definition: frameitem.h:417
GridMode gridMode() const
Returns grid mode.
Definition: frameitem.h:174
void setYRight(bool yRight)
Sets right side label mode.
Definition: frameitem.h:369
static bool valid(double v, bool log=false)
Checks a double value for validity.
Definition: frameitem.h:398
double height() const
Returns height in cm.
Definition: frameitem.h:178
unsigned colorGrid() const
Returns color for grids and tics.
Definition: frameitem.h:168
void setYTic(double yTic)
Sets y tick distance.
Definition: frameitem.h:374
bool logX() const
Returns true for logarithmic x axis.
Definition: frameitem.h:182
double normY() const
Returns normalization factor for y values.
Definition: frameitem.h:210
double xTic() const
Returns distance between major tics of x axis.
Definition: frameitem.h:425
bool xTop() const
Returns true for x axis labels on top side.
Definition: frameitem.h:427
void setXTic(double xTic)
Sets x tick distance.
Definition: frameitem.h:334
bool collapsed() const
Returns collapse state for list view.
Definition: frameitem.h:180
Frame item class.
Definition: frameitem.h:33
void setGridMode(GridMode gridMode)
Sets grid mode.
Definition: frameitem.h:244