From 496027721d42ed62ef275a8cfc70efd43061aa21 2012-11-27 16:27:37 From: Michal Klocek Date: 2012-11-27 16:27:37 Subject: [PATCH] Fixes layout rounding issue --- diff --git a/src/axis/barcategoryaxis/chartbarcategoryaxisx.cpp b/src/axis/barcategoryaxis/chartbarcategoryaxisx.cpp index b45de8a..80604d9 100644 --- a/src/axis/barcategoryaxis/chartbarcategoryaxisx.cpp +++ b/src/axis/barcategoryaxis/chartbarcategoryaxisx.cpp @@ -21,6 +21,7 @@ #include "chartbarcategoryaxisx_p.h" #include "chartpresenter_p.h" #include "qbarcategoryaxis_p.h" +#include "chartlayout_p.h" #include #include #include @@ -31,7 +32,8 @@ ChartBarCategoryAxisX::ChartBarCategoryAxisX(QBarCategoryAxis *axis, QGraphicsIt : HorizontalAxis(axis, item, true), m_categoriesAxis(axis) { - + QObject::connect(m_categoriesAxis,SIGNAL(categoriesChanged()),this, SLOT(handleCategoriesChanged())); + handleCategoriesChanged(); } ChartBarCategoryAxisX::~ChartBarCategoryAxisX() @@ -91,17 +93,9 @@ void ChartBarCategoryAxisX::updateGeometry() HorizontalAxis::updateGeometry(); } -void ChartBarCategoryAxisX::handleAxisUpdated() +void ChartBarCategoryAxisX::handleCategoriesChanged() { - //TODO: - /* - if (m_categoriesAxis->categories() != m_categories) { - m_categories = m_categoriesAxis->categories(); - if (ChartAxis::layout().count() == m_categoriesAxis->d_ptr->count() + 2) - updateGeometry(); - } - */ - //TODO: ChartAxis::handleAxisUpdated(); + if(presenter()) presenter()->layout()->invalidate(); } QSizeF ChartBarCategoryAxisX::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const @@ -111,7 +105,7 @@ QSizeF ChartBarCategoryAxisX::sizeHint(Qt::SizeHint which, const QSizeF &constra QFontMetrics fn(font()); QSizeF sh; QSizeF base = HorizontalAxis::sizeHint(which, constraint); - QStringList ticksList = createCategoryLabels(ChartAxis::layout()); + QStringList ticksList = m_categoriesAxis->categories(); qreal width=0; qreal height=0; @@ -143,4 +137,6 @@ QSizeF ChartBarCategoryAxisX::sizeHint(Qt::SizeHint which, const QSizeF &constra return sh; } +#include "moc_chartbarcategoryaxisx_p.cpp" + QTCOMMERCIALCHART_END_NAMESPACE diff --git a/src/axis/barcategoryaxis/chartbarcategoryaxisx_p.h b/src/axis/barcategoryaxis/chartbarcategoryaxisx_p.h index ff6e53c..6b5c92a 100644 --- a/src/axis/barcategoryaxis/chartbarcategoryaxisx_p.h +++ b/src/axis/barcategoryaxis/chartbarcategoryaxisx_p.h @@ -39,6 +39,7 @@ class QBarCategoryAxis; class ChartBarCategoryAxisX : public HorizontalAxis { + Q_OBJECT public: ChartBarCategoryAxisX(QBarCategoryAxis *axis, QGraphicsItem* item = 0); ~ChartBarCategoryAxisX(); @@ -50,10 +51,9 @@ protected: private: QStringList createCategoryLabels(const QVector& layout) const; public Q_SLOTS: - void handleAxisUpdated(); + void handleCategoriesChanged(); private: - QStringList m_categories; QBarCategoryAxis *m_categoriesAxis; }; diff --git a/src/axis/barcategoryaxis/chartbarcategoryaxisy.cpp b/src/axis/barcategoryaxis/chartbarcategoryaxisy.cpp index c0e6b8d..6465b1f 100644 --- a/src/axis/barcategoryaxis/chartbarcategoryaxisy.cpp +++ b/src/axis/barcategoryaxis/chartbarcategoryaxisy.cpp @@ -21,6 +21,7 @@ #include "chartbarcategoryaxisy_p.h" #include "chartpresenter_p.h" #include "qbarcategoryaxis_p.h" +#include "chartlayout_p.h" #include #include #include @@ -31,6 +32,8 @@ ChartBarCategoryAxisY::ChartBarCategoryAxisY(QBarCategoryAxis *axis, QGraphicsIt : VerticalAxis(axis, item, true), m_categoriesAxis(axis) { + QObject::connect( m_categoriesAxis,SIGNAL(categoriesChanged()),this, SLOT(handleCategoriesChanged())); + handleCategoriesChanged(); } ChartBarCategoryAxisY::~ChartBarCategoryAxisY() @@ -89,16 +92,10 @@ void ChartBarCategoryAxisY::updateGeometry() VerticalAxis::updateGeometry(); } -void ChartBarCategoryAxisY::handleAxisUpdated() +void ChartBarCategoryAxisY::handleCategoriesChanged() { - //TODO: - /* - if (m_categoriesAxis->categories() != m_categories) { - m_categories = m_categoriesAxis->categories(); - if (ChartAxis::layout().count() == m_categoriesAxis->d_ptr->count() + 2) - updateGeometry(); - }*/ - //TODO :: ChartAxis::handleAxisUpdated(); + QGraphicsLayoutItem::updateGeometry(); + if(presenter()) presenter()->layout()->invalidate(); } QSizeF ChartBarCategoryAxisY::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const @@ -108,8 +105,7 @@ QSizeF ChartBarCategoryAxisY::sizeHint(Qt::SizeHint which, const QSizeF &constra QFontMetrics fn(font()); QSizeF sh; QSizeF base = VerticalAxis::sizeHint(which, constraint); - QStringList ticksList = createCategoryLabels(ChartAxis::layout()); - + QStringList ticksList = m_categoriesAxis->categories(); qreal width=0; qreal height=0; @@ -142,4 +138,6 @@ QSizeF ChartBarCategoryAxisY::sizeHint(Qt::SizeHint which, const QSizeF &constra return sh; } +#include "moc_chartbarcategoryaxisy_p.cpp" + QTCOMMERCIALCHART_END_NAMESPACE diff --git a/src/axis/barcategoryaxis/chartbarcategoryaxisy_p.h b/src/axis/barcategoryaxis/chartbarcategoryaxisy_p.h index d06956b..6ed3344 100644 --- a/src/axis/barcategoryaxis/chartbarcategoryaxisy_p.h +++ b/src/axis/barcategoryaxis/chartbarcategoryaxisy_p.h @@ -39,6 +39,7 @@ class ChartPresenter; class ChartBarCategoryAxisY : public VerticalAxis { + Q_OBJECT public: ChartBarCategoryAxisY(QBarCategoryAxis *axis, QGraphicsItem* item = 0); ~ChartBarCategoryAxisY(); @@ -50,9 +51,8 @@ protected: private: QStringList createCategoryLabels(const QVector& layout) const; public Q_SLOTS: - void handleAxisUpdated(); + void handleCategoriesChanged(); private: - QStringList m_categories; QBarCategoryAxis *m_categoriesAxis; }; diff --git a/src/axis/horizontalaxis.cpp b/src/axis/horizontalaxis.cpp index dc4c36c..6026d4d 100644 --- a/src/axis/horizontalaxis.cpp +++ b/src/axis/horizontalaxis.cpp @@ -187,7 +187,7 @@ QSizeF HorizontalAxis::sizeHint(Qt::SizeHint which, const QSizeF &constraint) co { Q_UNUSED(constraint); QFontMetrics fn(titleFont()); - QSizeF sh; + QSizeF sh(0,0); if (titleText().isNull() || !titleItem()->isVisible()) return sh; diff --git a/src/axis/valueaxis/chartvalueaxisx.cpp b/src/axis/valueaxis/chartvalueaxisx.cpp index ce9113b..51c176d 100644 --- a/src/axis/valueaxis/chartvalueaxisx.cpp +++ b/src/axis/valueaxis/chartvalueaxisx.cpp @@ -72,8 +72,6 @@ void ChartValueAxisX::handleTickCountChanged(int tick) { Q_UNUSED(tick); if(presenter()) presenter()->layout()->invalidate(); - //QVector layout = calculateLayout(); - //updateLayout(layout); } QSizeF ChartValueAxisX::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const diff --git a/src/axis/valueaxis/chartvalueaxisy.cpp b/src/axis/valueaxis/chartvalueaxisy.cpp index 2e2758d..2cb4ba2 100644 --- a/src/axis/valueaxis/chartvalueaxisy.cpp +++ b/src/axis/valueaxis/chartvalueaxisy.cpp @@ -73,8 +73,6 @@ void ChartValueAxisY::handleTickCountChanged(int tick) { Q_UNUSED(tick); if(presenter()) presenter()->layout()->invalidate(); - //QVector layout = calculateLayout(); - //updateLayout(layout); } QSizeF ChartValueAxisY::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const diff --git a/src/axis/verticalaxis.cpp b/src/axis/verticalaxis.cpp index 826e257..19b6768 100644 --- a/src/axis/verticalaxis.cpp +++ b/src/axis/verticalaxis.cpp @@ -189,7 +189,7 @@ QSizeF VerticalAxis::sizeHint(Qt::SizeHint which, const QSizeF &constraint) cons Q_UNUSED(constraint); QFontMetrics fn(titleFont()); - QSizeF sh; + QSizeF sh(0,0); if (titleText().isNull() || !titleItem()->isVisible()) return sh;