##// END OF EJS Templates
Fix crash when removing pie series from chart...
Fix crash when removing pie series from chart Connections cleanup in PieChartItem destructor didn't account for the possibility of series already having been destroyed. Changed m_series to QPointer so that it'll notice when series gets destroyed, and also added cleaning of slices to series destructor. Task-number: QTRD-1946 Change-Id: I651347bfcfbe7cd78dd26220a811fea5c8071fce Reviewed-by: Mika Salmela Reviewed-by: Mika Salmela <mika.salmela@digia.com>

File last commit:

r2432:53927f716a3d
r2475:9e35a3a169ed
Show More
qpiemodelmapper_p.h
99 lines | 2.8 KiB | text/x-c | CLexer
/ src / piechart / qpiemodelmapper_p.h
Marek Rosa
Added license text to piemodelmapper classes
r1309 /****************************************************************************
**
Miikka Heikkinen
Fixed the copyright year 2012 -> 2013
r2432 ** Copyright (C) 2013 Digia Plc
Marek Rosa
Added license text to piemodelmapper classes
r1309 ** 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.
Marek Rosa
ModelMapper proposal
r1229 #ifndef QPIEMODELMAPPER_P_H
#define QPIEMODELMAPPER_P_H
#include <QObject>
Marek Rosa
Removed some unnecessary includes
r1668 #include "qpiemodelmapper.h"
Marek Rosa
ModelMapper proposal
r1229
class QModelIndex;
QTCOMMERCIALCHART_BEGIN_NAMESPACE
Marek Rosa
All model related methods and members removed from the series. QML stuff commented out where complaining
r1230 class QPieSlice;
Marek Rosa
ModelMapper proposal
r1229
class QPieModelMapperPrivate : public QObject
{
Q_OBJECT
public:
Marek Rosa
Removed some unnecessary includes
r1668 explicit QPieModelMapperPrivate(QPieModelMapper *q);
Marek Rosa
ModelMapper proposal
r1229
public Q_SLOTS:
// for the model
void modelUpdated(QModelIndex topLeft, QModelIndex bottomRight);
Marek Rosa
All model related methods and members removed from the series. QML stuff commented out where complaining
r1230 void modelRowsAdded(QModelIndex parent, int start, int end);
void modelRowsRemoved(QModelIndex parent, int start, int end);
void modelColumnsAdded(QModelIndex parent, int start, int end);
void modelColumnsRemoved(QModelIndex parent, int start, int end);
Marek Rosa
Model mappers now connected to series and model destroy signals
r1656 void handleModelDestroyed();
Marek Rosa
ModelMapper proposal
r1229
// for the series
Jani Honkonen
more coding style fixes for src-folder...
r2104 void slicesAdded(QList<QPieSlice *> slices);
void slicesRemoved(QList<QPieSlice *> slices);
Marek Rosa
QPieModelMapper: added support for labelChanged and valueChanged signals from the slice
r1236 void sliceLabelChanged();
void sliceValueChanged();
Marek Rosa
Model mappers now connected to series and model destroy signals
r1656 void handleSeriesDestroyed();
Marek Rosa
ModelMapper proposal
r1229
Marek Rosa
All model related methods and members removed from the series. QML stuff commented out where complaining
r1230 void initializePieFromModel();
Marek Rosa
ModelMapper proposal
r1229
private:
Jani Honkonen
more coding style fixes for src-folder...
r2104 QPieSlice *pieSlice(QModelIndex index) const;
Marek Rosa
Small fixes to piemodelmapper and one more test
r1251 bool isLabelIndex(QModelIndex index) const;
bool isValueIndex(QModelIndex index) const;
Marek Rosa
All model related methods and members removed from the series. QML stuff commented out where complaining
r1230 QModelIndex valueModelIndex(int slicePos);
QModelIndex labelModelIndex(int slicePos);
void insertData(int start, int end);
void removeData(int start, int end);
Marek Rosa
ModelMapper proposal
r1229
Marek Rosa
Refactored PieSeriesModelMapper
r1231 void blockModelSignals(bool block = true);
void blockSeriesSignals(bool block = true);
Marek Rosa
ModelMapper proposal
r1229 private:
Marek Rosa
All model related methods and members removed from the series. QML stuff commented out where complaining
r1230 QPieSeries *m_series;
Jani Honkonen
more coding style fixes for src-folder...
r2104 QList<QPieSlice *> m_slices;
Marek Rosa
All model related methods and members removed from the series. QML stuff commented out where complaining
r1230 QAbstractItemModel *m_model;
Marek Rosa
ModelMapper proposal
r1229 int m_first;
int m_count;
Qt::Orientation m_orientation;
Marek Rosa
Fixed problem with PieModelMapper
r1320 int m_valuesSection;
int m_labelsSection;
Tero Ahola
Added new model mappers for pie to QML api
r1249 bool m_seriesSignalsBlock;
bool m_modelSignalsBlock;
Marek Rosa
ModelMapper proposal
r1229
private:
Marek Rosa
All model related methods and members removed from the series. QML stuff commented out where complaining
r1230
Marek Rosa
ModelMapper proposal
r1229 QPieModelMapper *q_ptr;
Q_DECLARE_PUBLIC(QPieModelMapper)
};
QTCOMMERCIALCHART_END_NAMESPACE
#endif // QPIEMODELMAPPER_P_H