##// END OF EJS Templates
Added possibility to set labels position for QCategoryAxis...
Added possibility to set labels position for QCategoryAxis The position of the labels in QCategyAxis can now be set to center of the category or to the high end of the category. The first and the last labels may overlap with other axes labels when positioned on value. Change-Id: Ide0f12b723ffabf6682001e03ea5080f9642da22 Task-number: QTRD-1715 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@theqtcompany.com>

File last commit:

r2776:bc1f6aa59d42
r2780:740f4f94adf8
Show More
chartaxiselement_p.h
151 lines | 5.5 KiB | text/x-c | CLexer
/ src / charts / axis / chartaxiselement_p.h
Miikka Heikkinen
Add Polar chart support...
r2483 /****************************************************************************
**
Titta Heikkala
Copyright header changes...
r2776 ** Copyright (C) 2015 The Qt Company Ltd
Miikka Heikkinen
Add Polar chart support...
r2483 ** All rights reserved.
Titta Heikkala
Copyright header changes...
r2776 ** For any questions to The Qt Company, please use contact form at http://qt.io
Miikka Heikkinen
Add Polar chart support...
r2483 **
Titta Heikkala
Updated license headers...
r2740 ** This file is part of the Qt Charts module.
Miikka Heikkinen
Add Polar chart support...
r2483 **
Titta Heikkala
Updated license headers...
r2740 ** Licensees holding valid commercial license for Qt may use this file in
** accordance with the Qt License Agreement provided with the Software
** or, alternatively, in accordance with the terms contained in a written
Titta Heikkala
Copyright header changes...
r2776 ** agreement between you and The Qt Company.
Miikka Heikkinen
Add Polar chart support...
r2483 **
** If you have questions regarding the use of this file, please use
Titta Heikkala
Updated license headers...
r2740 ** contact form at http://qt.io
Miikka Heikkinen
Add Polar chart support...
r2483 **
****************************************************************************/
// W A R N I N G
// -------------
//
Miikka Heikkinen
Qt Commercial -> Qt Enterprise...
r2574 // This file is not part of the Qt Enterprise Chart API. It exists purely as an
Miikka Heikkinen
Add Polar chart support...
r2483 // implementation detail. This header file may change from version to
// version without notice, or even be removed.
//
// We mean it.
#ifndef CHARTAXISELEMENT_H
#define CHARTAXISELEMENT_H
Titta Heikkala
Fix include syntax...
r2714 #include <QtCharts/QChartGlobal>
#include <private/chartelement_p.h>
#include <private/axisanimation_p.h>
#include <QtWidgets/QGraphicsItem>
#include <QtWidgets/QGraphicsLayoutItem>
#include <QtGui/QFont>
Miikka Heikkinen
Add Polar chart support...
r2483
Titta Heikkala
Qt Charts project file structure change...
r2712 QT_CHARTS_BEGIN_NAMESPACE
Miikka Heikkinen
Add Polar chart support...
r2483
class ChartPresenter;
class QAbstractAxis;
class ChartAxisElement : public ChartElement, public QGraphicsLayoutItem
{
Q_OBJECT
Mika Salmela
Fix for hiding overloaded virtual functions...
r2572
using QGraphicsLayoutItem::setGeometry;
Miikka Heikkinen
Add Polar chart support...
r2483 public:
ChartAxisElement(QAbstractAxis *axis, QGraphicsItem *item, bool intervalAxis = false);
~ChartAxisElement();
virtual QRectF gridGeometry() const = 0;
virtual void setGeometry(const QRectF &axis, const QRectF &grid) = 0;
virtual bool isEmpty() = 0;
void setAnimation(AxisAnimation *animation) { m_animation = animation; }
AxisAnimation *animation() const { return m_animation; }
QAbstractAxis *axis() const { return m_axis; }
void setLayout(QVector<qreal> &layout) { m_layout = layout; }
QVector<qreal> &layout() { return m_layout; } // Modifiable reference
Miikka Heikkinen
Fix text item margins...
r2592 inline qreal labelPadding() const { return qreal(4.0); }
inline qreal titlePadding() const { return qreal(2.0); }
Miikka Heikkinen
Add Polar chart support...
r2483 void setLabels(const QStringList &labels) { m_labelsList = labels; }
QStringList labels() const { return m_labelsList; }
qreal min() const;
qreal max() const;
QRectF axisGeometry() const { return m_axisRect; }
void setAxisGeometry(const QRectF &axisGeometry) { m_axisRect = axisGeometry; }
void axisSelected();
//this flag indicates that axis is used to show intervals it means labels are in between ticks
bool intervalAxis() const { return m_intervalAxis; }
Miikka Heikkinen
Added QChart::localizeNumbers...
r2707 QStringList createValueLabels(qreal max, qreal min, int ticks, const QString &format) const;
QStringList createLogValueLabels(qreal min, qreal max, qreal base, int ticks,
const QString &format) const;
QStringList createDateTimeLabels(qreal max, qreal min, int ticks, const QString &format) const;
Miikka Heikkinen
Add Polar chart support...
r2483
// from QGraphicsLayoutItem
QRectF boundingRect() const
{
return QRectF();
}
// from QGraphicsLayoutItem
void paint(QPainter*, const QStyleOptionGraphicsItem*, QWidget*)
{
}
protected:
virtual QVector<qreal> calculateLayout() const = 0;
virtual void updateLayout(QVector<qreal> &layout) = 0;
QList<QGraphicsItem *> gridItems() { return m_grid->childItems(); }
QList<QGraphicsItem *> labelItems() { return m_labels->childItems(); }
QList<QGraphicsItem *> shadeItems() { return m_shades->childItems(); }
QList<QGraphicsItem *> arrowItems() { return m_arrow->childItems(); }
Miikka Heikkinen
Added HTML support for various text items...
r2539 QGraphicsTextItem *titleItem() const { return m_title.data(); }
Miikka Heikkinen
Add Polar chart support...
r2483 QGraphicsItemGroup *gridGroup() { return m_grid.data(); }
QGraphicsItemGroup *labelGroup() { return m_labels.data(); }
QGraphicsItemGroup *shadeGroup() { return m_shades.data(); }
QGraphicsItemGroup *arrowGroup() { return m_arrow.data(); }
public Q_SLOTS:
void handleVisibleChanged(bool visible);
void handleArrowVisibleChanged(bool visible);
void handleGridVisibleChanged(bool visible);
void handleLabelsVisibleChanged(bool visible);
void handleShadesVisibleChanged(bool visible);
void handleLabelsAngleChanged(int angle);
virtual void handleShadesBrushChanged(const QBrush &brush) = 0;
virtual void handleShadesPenChanged(const QPen &pen) = 0;
virtual void handleArrowPenChanged(const QPen &pen) = 0;
virtual void handleGridPenChanged(const QPen &pen) = 0;
void handleLabelsBrushChanged(const QBrush &brush);
void handleLabelsFontChanged(const QFont &font);
void handleTitleBrushChanged(const QBrush &brush);
void handleTitleFontChanged(const QFont &font);
void handleTitleTextChanged(const QString &title);
void handleTitleVisibleChanged(bool visible);
void handleRangeChanged(qreal min, qreal max);
Q_SIGNALS:
void clicked();
private:
void connectSlots();
Miikka Heikkinen
Added QChart::localizeNumbers...
r2707 QString formatLabel(const QString &formatSpec, const QByteArray &array,
qreal value, int precision, const QString &preStr,
const QString &postStr) const;
Miikka Heikkinen
Add Polar chart support...
r2483
QAbstractAxis *m_axis;
AxisAnimation *m_animation;
QVector<qreal> m_layout;
QStringList m_labelsList;
QRectF m_axisRect;
QScopedPointer<QGraphicsItemGroup> m_grid;
QScopedPointer<QGraphicsItemGroup> m_arrow;
QScopedPointer<QGraphicsItemGroup> m_shades;
QScopedPointer<QGraphicsItemGroup> m_labels;
Miikka Heikkinen
Added HTML support for various text items...
r2539 QScopedPointer<QGraphicsTextItem> m_title;
Miikka Heikkinen
Add Polar chart support...
r2483 bool m_intervalAxis;
};
Titta Heikkala
Qt Charts project file structure change...
r2712 QT_CHARTS_END_NAMESPACE
Miikka Heikkinen
Add Polar chart support...
r2483
#endif /* CHARTAXISELEMENT_H */