##// END OF EJS Templates
Fix axis geometry when there is no axis title...
Fix axis geometry when there is no axis title SizeHint won't include title padding when there is no title, yet updateGeometry() always assumed it was there when determining space for labels, causing truncated labels when title was missing. Also made missing/empty/hidden axis title work consistently. Now axis geometries should be updated correctly always when title text or visibility status changes. Task-number: QTRD-1903 Reviewed-by: Mika Salmela

File last commit:

r2275:95c64613f4b2
r2415:65ea14fdb747
Show More
qabstractaxis_p.h
129 lines | 3.3 KiB | text/x-c | CLexer
/ src / axis / qabstractaxis_p.h
Michal Klocek
Adds new API classes...
r1540 /****************************************************************************
**
** Copyright (C) 2012 Digia Plc
** 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$
**
****************************************************************************/
// W A R N I N G
// -------------
//
// This file is not part of the QtCommercial Chart API. It exists purely as an
// implementation detail. This header file may change from version to
// version without notice, or even be removed.
//
// We mean it.
#ifndef QABSTRACTAXIS_P_H
#define QABSTRACTAXIS_P_H
#include "qabstractaxis.h"
Michal Klocek
Refactors internals...
r2273 #include "chartaxis_p.h"
#include "qchart.h"
#include <QDebug>
class QGraphicsItem;
Michal Klocek
Adds new API classes...
r1540
QTCOMMERCIALCHART_BEGIN_NAMESPACE
Michal Klocek
Refactors core to support mulitpile axis and domains...
r1556 class ChartPresenter;
Marek Rosa
Domains added
r2275 class AbstractDomain;
Michal Klocek
Refactors internals...
r2273 class QChart;
class QAbstractSeries;
class ChartTheme;
class ChartElement;
Michal Klocek
Refactors core to support mulitpile axis and domains...
r1556
Michal Klocek
Refactors Domain and Axis...
r1698 class QTCOMMERCIALCHART_AUTOTEST_EXPORT QAbstractAxisPrivate : public QObject
Michal Klocek
Adds new API classes...
r1540 {
Q_OBJECT
public:
QAbstractAxisPrivate(QAbstractAxis *q);
~QAbstractAxisPrivate();
Michal Klocek
Refactors core to support mulitpile axis and domains...
r1556 public:
Michal Klocek
Refactors internals...
r2273 Qt::Alignment alignment() const { return m_alignment; }
Michal Klocek
Refactors Domain and Axis...
r1698 Qt::Orientation orientation() const { return m_orientation; }
Michal Klocek
Refactors internals...
r2273 void setAlignment( Qt::Alignment alignment);
Michal Klocek
Refactors Domain and Axis...
r1698
Marek Rosa
Domains added
r2275 virtual void initializeDomain(AbstractDomain *domain) = 0;
Michal Klocek
Refactors internals...
r2273 virtual void initializeGraphics(QGraphicsItem* parent) = 0;
virtual void initializeTheme(ChartTheme* theme, bool forced = false);
virtual void initializeAnimations(QChart::AnimationOptions options);
Michal Klocek
Refactors Domain and Axis...
r1698
Michal Klocek
Refactors internals...
r2273 //interface for manipulating range form base class
virtual void setMin(const QVariant &min) = 0;
sauimone
QAbstractAxis: variants strike back.
r1578 virtual void setMax(const QVariant &max) = 0;
Michal Klocek
Refactors internals...
r2273 virtual void setRange(const QVariant &min, const QVariant &max) = 0;
Michal Klocek
Refactors Domain and Axis...
r1698
Michal Klocek
Refactors internals...
r2273 //interface manipulating range form domain
virtual void setRange(qreal min, qreal max) = 0;
virtual qreal min() = 0;
virtual qreal max() = 0;
Michal Klocek
Implements qbarcategoriesaxis logic...
r1725
Michal Klocek
Refactors internals...
r2273 ChartAxis* axisItem() { return m_item.data(); }
Michal Klocek
Refactors setMin setMax setRange to be pure viritual on private implementation
r1544
Michal Klocek
Refactors Domain and Axis...
r1698 public Q_SLOTS:
Michal Klocek
Refactors internals...
r2273 void handleRangeChanged(qreal min, qreal max);
Michal Klocek
Refactors Domain and Axis...
r1698
Q_SIGNALS:
Michal Klocek
Refactors internals...
r2273 void rangeChanged(qreal min, qreal max);
Michal Klocek
Refactors Domain and Axis...
r1698
protected:
Michal Klocek
Adds new API classes...
r1540 QAbstractAxis *q_ptr;
Michal Klocek
Refactors internals...
r2273 QChart *m_chart;
QScopedPointer<ChartAxis> m_item;
private:
QList<QAbstractSeries*> m_series;
Michal Klocek
Refactors layout:...
r2105 Qt::Alignment m_alignment;
Michal Klocek
Refactors internals...
r2273 Qt::Orientation m_orientation;
Michal Klocek
Refactors Domain and Axis...
r1698
Michal Klocek
Adds visibity paramter to axis
r1617 bool m_visible;
Michal Klocek
Adds new API classes...
r1540
sauimone
abstract axis qml documentation. bug fix to setArrowVisible
r1654 bool m_arrowVisible;
Michal Klocek
Adds new API classes...
r1540 QPen m_axisPen;
QBrush m_axisBrush;
bool m_gridLineVisible;
QPen m_gridLinePen;
bool m_labelsVisible;
QPen m_labelsPen;
QBrush m_labelsBrush;
QFont m_labelsFont;
int m_labelsAngle;
Michal Klocek
Refactors layout...
r1965 bool m_titleVisible;
QPen m_titlePen;
QBrush m_titleBrush;
QFont m_titleFont;
QString m_title;
Michal Klocek
Adds new API classes...
r1540 bool m_shadesVisible;
QPen m_shadesPen;
QBrush m_shadesBrush;
qreal m_shadesOpacity;
Michal Klocek
Refactors Domain and Axis...
r1698 bool m_dirty;
sauimone
refactoring axises
r1566
Michal Klocek
Adds new API classes...
r1540 friend class QAbstractAxis;
Michal Klocek
Implements qbarcategoriesaxis logic...
r1725 friend class ChartDataSet;
Michal Klocek
Refactors internals...
r2273 friend class ChartPresenter;
Michal Klocek
Adds new API classes...
r1540 };
QTCOMMERCIALCHART_END_NAMESPACE
#endif