##// END OF EJS Templates
Fix crash when adding/removing points during animation...
Fix crash when adding/removing points during animation Adding/removing points during the animation of the previous add/remove operation resulted in a mismatch between visible point count and the actual point count, leading to crashes in code that assumed both to be the same. Added necessary safeguards and improved autotests to detect these cases. Task-number: QTRD-1984 Change-Id: I544d10a69e760a40d4c90a4f02de61d4d1bb974f Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>

File last commit:

r2435:984cff4693b3
r2489:c4f9629c130d
Show More
legendlayout_p.h
76 lines | 2.0 KiB | text/x-c | CLexer
/****************************************************************************
**
** Copyright (C) 2013 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 LEGENDLAYOUT_H
#define LEGENDLAYOUT_H
#include <QGraphicsLayout>
#include "qchartglobal.h"
QTCOMMERCIALCHART_BEGIN_NAMESPACE
class QLegend;
class LegendLayout : public QGraphicsLayout
{
public:
LegendLayout(QLegend *legend);
virtual ~LegendLayout();
void setGeometry(const QRectF &rect);
void setOffset(qreal x, qreal y);
QPointF offset() const;
void invalidate();
protected:
QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const;
int count() const { return 0; }
QGraphicsLayoutItem *itemAt(int) const { return 0; };
void removeAt(int) {};
private:
void setAttachedGeometry(const QRectF &rect);
void setDettachedGeometry(const QRectF &rect);
private:
QLegend *m_legend;
qreal m_offsetX;
qreal m_offsetY;
qreal m_minOffsetX;
qreal m_minOffsetY;
qreal m_maxOffsetX;
qreal m_maxOffsetY;
qreal m_width;
qreal m_height;
};
QTCOMMERCIALCHART_END_NAMESPACE
#endif