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 =
"",
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);
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; };
178 inline double height()
const {
return m_height; };
182 inline bool logX()
const {
return m_logX; };
184 inline bool logY()
const {
return m_logY; };
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; };
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; };
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; };
382 virtual int type()
const {
return Type; };
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;
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;
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
void setLogX(bool logX)
Sets logarithmic mode of x axis.
Definition: frameitem.h:254
double yMax() const
Returns y value of upper data window margin in user units.
Definition: frameitem.h:434
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
void setXTop(bool xTop)
Sets top side label mode.
Definition: frameitem.h:339
Axes with tics and without labels.
Definition: frameitem.h:39
int expX() const
Returns logarithm of normalization factor for x axis.
Definition: frameitem.h:170
GridMode
Grid mode.
Definition: frameitem.h:37
unsigned colorFrame() const
Returns color for frame and labels.
Definition: frameitem.h:166
int numDigX() const
Returns number of digits for x axis.
Definition: frameitem.h:212
void setYLeft(bool yLeft)
Sets left side label mode.
Definition: frameitem.h:349
virtual int type() const
Returns specific QGraphicsItem type number.
Definition: frameitem.h:382
Alignment
Text alignment.
Definition: textitem.h:33
QString header() const
Returns heading text.
Definition: frameitem.h:176
double yOffset() const
Returns offset for first major y tick.
Definition: frameitem.h:438
void setXBottom(bool xBottom)
Sets bottom side label mode.
Definition: frameitem.h:314
void setY0(double y0)
Sets bottom page margin.
Definition: frameitem.h:344
double normY() const
Returns normalization factor for y values.
Definition: frameitem.h:210
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
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
double yTic() const
Returns distance between major tics of y axis.
Definition: frameitem.h:440
void update(const QRectF &rect)
bool logX() const
Returns true for logarithmic x axis.
Definition: frameitem.h:182
double x0() const
Returns left page margin in cm.
Definition: frameitem.h:415
void setYOffset(double yOffset)
Sets y offset.
Definition: frameitem.h:364
virtual QRectF boundingRect() const
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
double width() const
Returns width in cm.
Definition: frameitem.h:408
double xMax() const
Returns x value of right data window margin in user units.
Definition: frameitem.h:419
void setColorGrid(unsigned color)
Sets color for grids and tics.
Definition: frameitem.h:229
void setMinTicY(int minTicY)
Sets number of intervals between major tics of y axis.
Definition: frameitem.h:269
double yMin() const
Returns y value of lower data window margin in user units.
Definition: frameitem.h:436
double xMin() const
Returns x value of left data window margin in user units.
Definition: frameitem.h:421
void writePlo(KConfigGroup *plo, bool visible=true) const
Writes into plot file.
void toggleCollapsed()
Toggles collapse state.
Definition: frameitem.h:384
double height() const
Returns height in cm.
Definition: frameitem.h:178
void setTextY(const QString &text)
Sets y axis text.
Definition: frameitem.h:299
void setNumDigY(int numDigY)
Sets number of digits for y axis.
Definition: frameitem.h:279
double xTic() const
Returns distance between major tics of x axis.
Definition: frameitem.h:425
Only rectangular frame.
Definition: frameitem.h:38
void setHeight(double height)
Sets height.
Definition: frameitem.h:249
bool xBottom() const
Returns true for x axis labels on bottom side.
Definition: frameitem.h:417
QRectF clipRect() const
Returns clipping rectangle.
Definition: frameitem.h:164
void setLogY(bool logY)
Sets logarithmic mode of y axis.
Definition: frameitem.h:259
int minTicX() const
Returns number of intervals between major tics of x axis.
Definition: frameitem.h:204
void setExpX(int expX)
Sets exponent of x normalization factor.
Definition: frameitem.h:234
QString textX() const
Returns x axis text.
Definition: frameitem.h:378
bool collapsed() const
Returns collapse state for list view.
Definition: frameitem.h:180
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
bool logY() const
Returns true for logarithmic y axis.
Definition: frameitem.h:184
int minTicY() const
Returns number of intervals between major tics of y axis.
Definition: frameitem.h:206
void setXMax(double xMax)
Sets upper x data limit.
Definition: frameitem.h:319
unsigned colorGrid() const
Returns color for grids and tics.
Definition: frameitem.h:168
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
bool yRight() const
Returns true for y axis labels on right side.
Definition: frameitem.h:432
bool yLeft() const
Returns true for y axis labels on left side.
Definition: frameitem.h:430
double normX() const
Returns normalization factor for x values.
Definition: frameitem.h:208
void setYRight(bool yRight)
Sets right side label mode.
Definition: frameitem.h:369
int numDigY() const
Returns number of digits for y axis.
Definition: frameitem.h:214
double xOffset() const
Returns offset for first major x tick.
Definition: frameitem.h:423
static bool valid(double v, bool log=false)
Checks a double value for validity.
Definition: frameitem.h:398
int expY() const
Returns logarithm of normalization factor for y axis.
Definition: frameitem.h:172
void setYTic(double yTic)
Sets y tick distance.
Definition: frameitem.h:374
bool xTop() const
Returns true for x axis labels on top side.
Definition: frameitem.h:427
QString textY() const
Returns y axis text.
Definition: frameitem.h:380
void setXTic(double xTic)
Sets x tick distance.
Definition: frameitem.h:334
Frame item class.
Definition: frameitem.h:33
void setGridMode(GridMode gridMode)
Sets grid mode.
Definition: frameitem.h:244
GridMode gridMode() const
Returns grid mode.
Definition: frameitem.h:174