##// END OF EJS Templates
Optimize polar chart radius calculation a bit....
Optimize polar chart radius calculation a bit. Current algorithm still results in an occasional extra unneeded iteration, as it uses only crude approximation for radius reduction. However, any speedup gained by accurately calculating needed reduction would be very minor compared to approximations used, so it doesn't seem worth the effort to figure out the complex math. Change-Id: If670a1b058a85cd0305b93f62e6388b463bafd0d Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>

File last commit:

r2483:f494279b6366
r2542:189023d9a551
Show More
qabstractaxis.h
193 lines | 7.1 KiB | text/x-c | CLexer
/ src / axis / qabstractaxis.h
Michal Klocek
Adds new API classes...
r1540 /****************************************************************************
**
Miikka Heikkinen
Fixed the copyright year 2012 -> 2013
r2432 ** Copyright (C) 2013 Digia Plc
Michal Klocek
Adds new API classes...
r1540 ** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
** This file is part of the Qt Commercial Charts Add-on.
**
** $QT_BEGIN_LICENSE$
** Licensees holding valid Qt Commercial licenses may use this file in
** accordance with the Qt Commercial License Agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Digia.
**
** If you have questions regarding the use of this file, please use
** contact form at http://qt.digia.com
** $QT_END_LICENSE$
**
****************************************************************************/
#ifndef QABSTRACTAXIS_H
#define QABSTRACTAXIS_H
#include <qchartglobal.h>
#include <QPen>
#include <QFont>
Michal Klocek
Refactors QAxis to QAbstractAxis...
r1541 #include <QVariant>
Michal Klocek
Adds new API classes...
r1540
QTCOMMERCIALCHART_BEGIN_NAMESPACE
class QAbstractAxisPrivate;
class QTCOMMERCIALCHART_EXPORT QAbstractAxis : public QObject
{
Marek Rosa
Multiaxis support...
r2093 Q_OBJECT
Michal Klocek
Refactors internals...
r2273 //visibility
Marek Rosa
Multiaxis support...
r2093 Q_PROPERTY(bool visible READ isVisible WRITE setVisible NOTIFY visibleChanged)
Michal Klocek
Refactors internals...
r2273 //arrow
Marek Rosa
QAbstractAxis: fixed tests after renaming
r1845 Q_PROPERTY(bool lineVisible READ isLineVisible WRITE setLineVisible NOTIFY lineVisibleChanged)
Michal Klocek
Refactors internals...
r2273 Q_PROPERTY(QPen linePen READ linePen WRITE setLinePen NOTIFY linePenChanged)
Marek Rosa
QAbstractAxis: renamed Arrow and Axis to line in methods names
r1844 Q_PROPERTY(QColor color READ linePenColor WRITE setLinePenColor NOTIFY colorChanged)
Michal Klocek
Refactors internals...
r2273 //labels
Michal Klocek
Adds new API classes...
r1540 Q_PROPERTY(bool labelsVisible READ labelsVisible WRITE setLabelsVisible NOTIFY labelsVisibleChanged)
Tero Ahola
Added documentation for new properties of QAbstractAxis
r2361 Q_PROPERTY(QPen labelsPen READ labelsPen WRITE setLabelsPen NOTIFY labelsPenChanged)
Q_PROPERTY(QBrush labelsBrush READ labelsBrush WRITE setLabelsBrush NOTIFY labelsBrushChanged)
Michal Klocek
Refactors internals...
r2273 Q_PROPERTY(int labelsAngle READ labelsAngle WRITE setLabelsAngle NOTIFY labelsAngleChanged)
Q_PROPERTY(QFont labelsFont READ labelsFont WRITE setLabelsFont NOTIFY labelsFontChanged)
Michal Klocek
Adds new API classes...
r1540 Q_PROPERTY(QColor labelsColor READ labelsColor WRITE setLabelsColor NOTIFY labelsColorChanged)
Michal Klocek
Refactors internals...
r2273 //grid
Jani Honkonen
BC fix: change gridLineVisibleChanged() back to gridVisibleChanged()
r2282 Q_PROPERTY(bool gridVisible READ isGridLineVisible WRITE setGridLineVisible NOTIFY gridVisibleChanged)
Tero Ahola
Added documentation for new properties of QAbstractAxis
r2361 Q_PROPERTY(QPen gridLinePen READ gridLinePen WRITE setGridLinePen NOTIFY gridLinePenChanged)
Michal Klocek
Refactors internals...
r2273 //shades
Michal Klocek
Adds new API classes...
r1540 Q_PROPERTY(bool shadesVisible READ shadesVisible WRITE setShadesVisible NOTIFY shadesVisibleChanged)
Q_PROPERTY(QColor shadesColor READ shadesColor WRITE setShadesColor NOTIFY shadesColorChanged)
Q_PROPERTY(QColor shadesBorderColor READ shadesBorderColor WRITE setShadesBorderColor NOTIFY shadesBorderColorChanged)
Michal Klocek
Refactors internals...
r2273 Q_PROPERTY(QPen shadesPen READ shadesPen WRITE setShadesPen NOTIFY shadesPenChanged)
Q_PROPERTY(QBrush shadesBrush READ shadesBrush WRITE setShadesBrush NOTIFY shadesBrushChanged)
//title
Q_PROPERTY(QString titleText READ titleText WRITE setTitleText NOTIFY titleTextChanged)
Q_PROPERTY(QPen titlePen READ titlePen WRITE setTitlePen NOTIFY titlePenChanged)
Q_PROPERTY(QBrush titleBrush READ titleBrush WRITE setTitleBrush NOTIFY titleBrushChanged)
Michal Klocek
Bugfix: axis visibily issues...
r2297 Q_PROPERTY(bool titleVisible READ isTitleVisible WRITE setTitleVisible NOTIFY titleVisibleChanged)
Q_PROPERTY(QFont titleFont READ titleFont WRITE setTitleFont NOTIFY titleFontChanged)
Michal Klocek
Aligment and oreintatio is read only
r2276 //orientation
Jani Honkonen
Spelling fix
r2348 Q_PROPERTY(Qt::Orientation orientation READ orientation)
Michal Klocek
Aligment and oreintatio is read only
r2276 //aligment
Q_PROPERTY(Qt::Alignment alignment READ alignment)
Michal Klocek
Adds new API classes...
r1540
public:
enum AxisType {
Michal Klocek
Adds createDefaultAxes logic
r1588 AxisTypeNoAxis = 0x0,
Marek Rosa
updated AxisType names
r1818 AxisTypeValue = 0x1,
AxisTypeBarCategory = 0x2,
AxisTypeCategory = 0x3,
Marek Rosa
QLogValueAxis added. Log domain missing
r2274 AxisTypeDateTime = 0x4,
AxisTypeLogValue = 0x5
Michal Klocek
Adds new API classes...
r1540 };
Michal Klocek
Adds createDefaultAxes logic
r1588 Q_DECLARE_FLAGS(AxisTypes, AxisType)
Michal Klocek
Adds new API classes...
r1540 protected:
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 explicit QAbstractAxis(QAbstractAxisPrivate &d, QObject *parent = 0);
Michal Klocek
Adds new API classes...
r1540
public:
~QAbstractAxis();
virtual AxisType type() const = 0;
Michal Klocek
Refactors internals...
r2273 //visibility handling
Michal Klocek
Adds visibity paramter to axis
r1617 bool isVisible() const;
void setVisible(bool visible = true);
Michal Klocek
Refactors internals...
r2273 void show();
void hide();
Michal Klocek
Adds visibity paramter to axis
r1617
Michal Klocek
Refactors internals...
r2273 //arrow handling
Marek Rosa
QAbstractAxis: renamed Arrow and Axis to line in methods names
r1844 bool isLineVisible() const;
void setLineVisible(bool visible = true);
void setLinePen(const QPen &pen);
QPen linePen() const;
void setLinePenColor(QColor color);
QColor linePenColor() const;
Michal Klocek
Adds new API classes...
r1540
//grid handling
bool isGridLineVisible() const;
void setGridLineVisible(bool visible = true);
void setGridLinePen(const QPen &pen);
QPen gridLinePen() const;
//labels handling
bool labelsVisible() const;
void setLabelsVisible(bool visible = true);
void setLabelsPen(const QPen &pen);
QPen labelsPen() const;
void setLabelsBrush(const QBrush &brush);
QBrush labelsBrush() const;
void setLabelsFont(const QFont &font);
QFont labelsFont() const;
void setLabelsAngle(int angle);
int labelsAngle() const;
void setLabelsColor(QColor color);
QColor labelsColor() const;
Michal Klocek
Refactors layout...
r1965 //title handling
Michal Klocek
Bugfix: axis visibily issues...
r2297 bool isTitleVisible() const;
Michal Klocek
Refactors layout...
r1965 void setTitleVisible(bool visible = true);
void setTitlePen(const QPen &pen);
QPen titlePen() const;
void setTitleBrush(const QBrush &brush);
QBrush titleBrush() const;
void setTitleFont(const QFont &font);
QFont titleFont() const;
Michal Klocek
Refactors internals...
r2273 void setTitleText(const QString &title);
QString titleText() const;
Michal Klocek
Refactors layout...
r1965
Michal Klocek
Adds new API classes...
r1540 //shades handling
bool shadesVisible() const;
void setShadesVisible(bool visible = true);
void setShadesPen(const QPen &pen);
QPen shadesPen() const;
void setShadesBrush(const QBrush &brush);
QBrush shadesBrush() const;
void setShadesColor(QColor color);
QColor shadesColor() const;
void setShadesBorderColor(QColor color);
QColor shadesBorderColor() const;
Miikka Heikkinen
Revert "Remove TODOs for 1.2.1 release, revert this after release"...
r2477 Qt::Orientation orientation(); //TODO: missing const <- BC (2.0)
Michal Klocek
Refactors layout:...
r2105 Qt::Alignment alignment() const;
Michal Klocek
Adds axis domain intialization
r1695
Michal Klocek
Refactors QAxis to QAbstractAxis...
r1541 //range handling
sauimone
QAbstractAxis: variants strike back.
r1578 void setMin(const QVariant &min);
void setMax(const QVariant &max);
void setRange(const QVariant &min, const QVariant &max);
Michal Klocek
Adds new API classes...
r1540
Q_SIGNALS:
void visibleChanged(bool visible);
Miikka Heikkinen
Add Polar chart support...
r2483 void linePenChanged(const QPen &pen);
Marek Rosa
QAbstractAxis: renamed Arrow and Axis to line in methods names
r1844 void lineVisibleChanged(bool visible);
Michal Klocek
Adds new API classes...
r1540 void labelsVisibleChanged(bool visible);
Miikka Heikkinen
Add Polar chart support...
r2483 void labelsPenChanged(const QPen &pen);
void labelsBrushChanged(const QBrush &brush);
void labelsFontChanged(const QFont &pen);
Michal Klocek
Refactors internals...
r2273 void labelsAngleChanged(int angle);
Miikka Heikkinen
Add Polar chart support...
r2483 void gridLinePenChanged(const QPen &pen);
Jani Honkonen
BC fix: change gridLineVisibleChanged() back to gridVisibleChanged()
r2282 void gridVisibleChanged(bool visible);
Michal Klocek
Adds new API classes...
r1540 void colorChanged(QColor color);
void labelsColorChanged(QColor color);
Miikka Heikkinen
Add Polar chart support...
r2483 void titleTextChanged(const QString &title);
void titlePenChanged(const QPen &pen);
void titleBrushChanged(const QBrush &brush);
Michal Klocek
Refactors internals...
r2273 void titleVisibleChanged(bool visible);
Miikka Heikkinen
Add Polar chart support...
r2483 void titleFontChanged(const QFont &font);
Michal Klocek
Adds new API classes...
r1540 void shadesVisibleChanged(bool visible);
void shadesColorChanged(QColor color);
void shadesBorderColorChanged(QColor color);
Miikka Heikkinen
Add Polar chart support...
r2483 void shadesPenChanged(const QPen &pen);
void shadesBrushChanged(const QBrush &brush);
Michal Klocek
Adds new API classes...
r1540
protected:
Marek Rosa
Multiaxis support...
r2093 QScopedPointer<QAbstractAxisPrivate> d_ptr;
Tero Ahola
Switched the z-order of axis to be below series...
r1790 Q_DISABLE_COPY(QAbstractAxis)
Michal Klocek
Refactors QAxis to QAbstractAxis...
r1541 friend class ChartDataSet;
Michal Klocek
Refactors core to support mulitpile axis and domains...
r1556 friend class ChartPresenter;
Michal Klocek
Refactors internals...
r2273 friend class ChartThemeManager;
Michal Klocek
Adds domains swap logic
r2284 friend class AbstractDomain;
Miikka Heikkinen
Add Polar chart support...
r2483 friend class ChartAxisElement;
friend class XYChart;
Michal Klocek
Adds new API classes...
r1540 };
QTCOMMERCIALCHART_END_NAMESPACE
Jani Honkonen
Spit&polish public headers
r2046
#endif // QABSTRACTAXIS_H