25 #include <QGraphicsRectItem>
45 Type = UserType + Frame
84 FrameItem(
double x0 = 4,
double y0 = 3,
double width = 15,
85 double height = 10,
unsigned colorFrame = 0,
86 unsigned colorGrid = 0,
bool logX =
false,
bool logY =
false,
87 GridMode gridMode = AxesWithLabels,
double xMax = 15,
88 double yMax = 10,
const QString& textX =
"",
90 double relSize = 1,
int numDigX = -1,
int numDigY = -1,
91 int minTicX = 5,
int minTicY = 2,
int expX = 0,
int expY = 0,
92 double xMin = 0,
double yMin = 0,
double xTic = 5,
double yTic = 2,
93 bool collapsed =
false,
bool visible =
true,
double xOffset = 0,
94 double yOffset = 0,
bool xBottom =
true,
bool xTop =
false,
95 bool yLeft =
true,
bool yRight =
false);
112 FrameItem(
const KConfigGroup* plo,
double x0 = 4,
double y0 = 3,
113 double width = 15,
double height = 10,
unsigned colorFrame = 0,
114 unsigned colorGrid = 0, GridMode gridMode = AxesWithLabels);
131 static void autoScale(
double& xMin,
double& xMax,
double& tick,
int& minTic,
132 int& numDig,
double xmi,
double xma,
double f,
143 void autoScale(
double xmi,
double xma,
double fx,
double ymi,
double yma,
149 void autoScale(
bool autoNorm =
true);
161 double& fx,
double& fy);
167 inline unsigned colorGrid()
const {
return m_colorGrid; };
169 inline int expX()
const {
return m_expX; };
171 inline int expY()
const {
return m_expY; };
177 inline double height()
const {
return m_height; };
181 inline bool logX()
const {
return m_logX; };
183 inline bool logY()
const {
return m_logY; };
203 inline int minTicX()
const {
return m_minTicX; };
205 inline int minTicY()
const {
return m_minTicY; };
207 inline double normX()
const {
return m_normX; };
209 inline double normY()
const {
return m_normY; };
211 inline int numDigX()
const {
return m_numDigX; };
213 inline int numDigY()
const {
return m_numDigY; };
233 inline void setExpX(
int expX) { m_expX = expX; m_normX = pow(10, expX); };
238 inline void setExpY(
int expY) { m_expY = expY; m_normY = pow(10, expY); };
248 inline void setHeight(
double height) { m_height = height; };
253 inline void setLogX(
bool logX) { m_logX = logX; };
258 inline void setLogY(
bool logY) { m_logY = logY; };
263 inline void setMinTicX(
int minTicX) { m_minTicX = minTicX; };
268 inline void setMinTicY(
int minTicY) { m_minTicY = minTicY; };
273 inline void setNumDigX(
int numDigX) { m_numDigX = numDigX; };
278 inline void setNumDigY(
int numDigY) { m_numDigY = numDigY; };
303 inline void setWidth(
double width) { m_width = width; };
308 inline void setX0(
double x0) { m_x0 = x0; };
313 inline void setXBottom(
bool xBottom) { m_xBottom = xBottom; };
318 inline void setXMax(
double xMax) { m_xMax = xMax; };
323 inline void setXMin(
double xMin) { m_xMin = xMin; };
328 inline void setXOffset(
double xOffset) { m_xOffset = xOffset; };
333 inline void setXTic(
double xTic) { m_xTic = xTic; };
338 inline void setXTop(
bool xTop) { m_xTop = xTop; };
343 inline void setY0(
double y0) { m_y0 = y0; };
348 inline void setYLeft(
bool yLeft) { m_yLeft = yLeft; };
353 inline void setYMax(
double yMax) { m_yMax = yMax; };
358 inline void setYMin(
double yMin) { m_yMin = yMin; };
363 inline void setYOffset(
double yOffset) { m_yOffset = yOffset; };
368 inline void setYRight(
bool yRight) { m_yRight = yRight; };
373 inline void setYTic(
double yTic) { m_yTic = yTic; };
381 virtual int type()
const {
return Type; };
397 static inline bool valid(
double v,
bool log =
false)
398 {
return (v == v) && (fabs(v) <= 1e300) && ((!log) || (v > 0)); };
405 bool valid(
double x,
double y)
const;
407 inline double width()
const {
return m_width; };
412 void writePlo(KConfigGroup* plo)
const;
414 inline double x0()
const {
return m_x0; };
416 inline bool xBottom()
const {
return m_xBottom; };
418 inline double xMax()
const {
return m_xMax; };
420 inline double xMin()
const {
return m_xMin; };
422 inline double xOffset()
const {
return m_xOffset; };
424 inline double xTic()
const {
return m_xTic; };
426 inline bool xTop()
const {
return m_xTop; };
427 inline double y0()
const {
return m_y0; };
429 inline bool yLeft()
const {
return m_yLeft; };
431 inline bool yRight()
const {
return m_yRight; };
433 inline double yMax()
const {
return m_yMax; };
435 inline double yMin()
const {
return m_yMin; };
437 inline double yOffset()
const {
return m_yOffset; };
439 inline double yTic()
const {
return m_yTic; };
451 void drawText(
QPainter* painter,
const QString& text,
double x,
double y,
459 double incLog(
double& x,
double f)
const;
470 int number(
double v,
int numDig,
QString& label)
const;
475 void paintCond(
QPainter* painter)
const;
477 void setProperties();
484 double tick(
double tic,
bool log)
const;
485 bool m_logX, m_logY, m_xBottom, m_xTop, m_yLeft, m_yRight, m_collapsed;
486 int m_numDigX, m_numDigY, m_minTicX, m_minTicY, m_expX, m_expY;
488 unsigned m_colorFrame, m_colorGrid;
489 double m_x0, m_y0, m_width, m_height, m_xMin, m_xMax, m_yMin, m_yMax, m_xTic,
490 m_yTic, m_xOffset, m_yOffset, m_normX, m_normY, xminl, xmaxl, yminl, ymaxl;
491 QString m_textX, m_textY, m_header;
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
void setLogX(bool logX)
Sets logarithmic mode of x axis.
Definition: frameitem.h:253
double yMax() const
Returns y value of upper data window margin in user units.
Definition: frameitem.h:433
void setYMin(double yMin)
Sets lower y data limit.
Definition: frameitem.h:358
Kpl item class.
Definition: kplitem.h:43
void setExpY(int expY)
Sets exponent of y normalization factor.
Definition: frameitem.h:238
void setXTop(bool xTop)
Sets top side label mode.
Definition: frameitem.h:338
Axes with tics and without labels.
Definition: frameitem.h:38
int expX() const
Returns logarithm of normalization factor for x axis.
Definition: frameitem.h:169
GridMode
Grid mode.
Definition: frameitem.h:36
unsigned colorFrame() const
Returns color for frame and labels.
Definition: frameitem.h:165
int numDigX() const
Returns number of digits for x axis.
Definition: frameitem.h:211
void setYLeft(bool yLeft)
Sets left side label mode.
Definition: frameitem.h:348
virtual int type() const
Returns specific QGraphicsItem type number.
Definition: frameitem.h:381
Alignment
Text alignment.
Definition: textitem.h:33
QString header() const
Returns heading text.
Definition: frameitem.h:175
double yOffset() const
Returns offset for first major y tick.
Definition: frameitem.h:437
void setXBottom(bool xBottom)
Sets bottom side label mode.
Definition: frameitem.h:313
void setY0(double y0)
Sets bottom page margin.
Definition: frameitem.h:343
double normY() const
Returns normalization factor for y values.
Definition: frameitem.h:209
void setColorFrame(unsigned color)
Sets color for frame and labels.
Definition: frameitem.h:223
void setYMax(double yMax)
Sets upper y data limit.
Definition: frameitem.h:353
void setXOffset(double xOffset)
Sets x offset.
Definition: frameitem.h:328
void setWidth(double width)
Sets width.
Definition: frameitem.h:303
Grid without labels.
Definition: frameitem.h:40
void setTextX(const QString &text)
Sets x axis text.
Definition: frameitem.h:293
void setHeader(const QString &text)
Sets heading text.
Definition: frameitem.h:288
double yTic() const
Returns distance between major tics of y axis.
Definition: frameitem.h:439
void update(const QRectF &rect)
bool logX() const
Returns true for logarithmic x axis.
Definition: frameitem.h:181
double x0() const
Returns left page margin in cm.
Definition: frameitem.h:414
void setYOffset(double yOffset)
Sets y offset.
Definition: frameitem.h:363
virtual QRectF boundingRect() const
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
double width() const
Returns width in cm.
Definition: frameitem.h:407
double xMax() const
Returns x value of right data window margin in user units.
Definition: frameitem.h:418
void setColorGrid(unsigned color)
Sets color for grids and tics.
Definition: frameitem.h:228
void setMinTicY(int minTicY)
Sets number of intervals between major tics of y axis.
Definition: frameitem.h:268
double yMin() const
Returns y value of lower data window margin in user units.
Definition: frameitem.h:435
double xMin() const
Returns x value of left data window margin in user units.
Definition: frameitem.h:420
void writePlo(KConfigGroup *plo, bool visible=true) const
Writes into plot file.
void toggleCollapsed()
Toggles collapse state.
Definition: frameitem.h:383
double height() const
Returns height in cm.
Definition: frameitem.h:177
void setTextY(const QString &text)
Sets y axis text.
Definition: frameitem.h:298
void setNumDigY(int numDigY)
Sets number of digits for y axis.
Definition: frameitem.h:278
double xTic() const
Returns distance between major tics of x axis.
Definition: frameitem.h:424
Only rectangular frame.
Definition: frameitem.h:37
void setHeight(double height)
Sets height.
Definition: frameitem.h:248
bool xBottom() const
Returns true for x axis labels on bottom side.
Definition: frameitem.h:416
QRectF clipRect() const
Returns clipping rectangle.
Definition: frameitem.h:163
void setLogY(bool logY)
Sets logarithmic mode of y axis.
Definition: frameitem.h:258
int minTicX() const
Returns number of intervals between major tics of x axis.
Definition: frameitem.h:203
void setExpX(int expX)
Sets exponent of x normalization factor.
Definition: frameitem.h:233
QString textX() const
Returns x axis text.
Definition: frameitem.h:377
bool collapsed() const
Returns collapse state for list view.
Definition: frameitem.h:179
Axes with tics and labels.
Definition: frameitem.h:39
void setMinTicX(int minTicX)
Sets number of intervals between major tics of x axis.
Definition: frameitem.h:263
bool logY() const
Returns true for logarithmic y axis.
Definition: frameitem.h:183
int minTicY() const
Returns number of intervals between major tics of y axis.
Definition: frameitem.h:205
void setXMax(double xMax)
Sets upper x data limit.
Definition: frameitem.h:318
unsigned colorGrid() const
Returns color for grids and tics.
Definition: frameitem.h:167
void setXMin(double xMin)
Sets lower x data limit.
Definition: frameitem.h:323
void setX0(double x0)
Sets left page margin.
Definition: frameitem.h:308
void setNumDigX(int numDigX)
Sets number of digits for x axis.
Definition: frameitem.h:273
bool yRight() const
Returns true for y axis labels on right side.
Definition: frameitem.h:431
bool yLeft() const
Returns true for y axis labels on left side.
Definition: frameitem.h:429
double normX() const
Returns normalization factor for x values.
Definition: frameitem.h:207
void setYRight(bool yRight)
Sets right side label mode.
Definition: frameitem.h:368
int numDigY() const
Returns number of digits for y axis.
Definition: frameitem.h:213
double xOffset() const
Returns offset for first major x tick.
Definition: frameitem.h:422
static bool valid(double v, bool log=false)
Checks a double value for validity.
Definition: frameitem.h:397
int expY() const
Returns logarithm of normalization factor for y axis.
Definition: frameitem.h:171
void setYTic(double yTic)
Sets y tick distance.
Definition: frameitem.h:373
bool xTop() const
Returns true for x axis labels on top side.
Definition: frameitem.h:426
QString textY() const
Returns y axis text.
Definition: frameitem.h:379
void setXTic(double xTic)
Sets x tick distance.
Definition: frameitem.h:333
Frame item class.
Definition: frameitem.h:32
void setGridMode(GridMode gridMode)
Sets grid mode.
Definition: frameitem.h:243
GridMode gridMode() const
Returns grid mode.
Definition: frameitem.h:173