00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef __KDCHARTDIAGRAMOBSERVER_H_
00026 #define __KDCHARTDIAGRAMOBSERVER_H_
00027
00028 #include "KDChartGlobal.h"
00029
00030 #include <QObject>
00031 #include <QPointer>
00032 #include <QModelIndex>
00033
00034 class QAbstractItemModel;
00035
00036 namespace KDChart {
00037
00038 class AbstractDiagram;
00039
00044 class KDCHART_EXPORT DiagramObserver : public QObject
00045 {
00046 Q_OBJECT
00047 public:
00051 explicit DiagramObserver( AbstractDiagram * diagram, QObject* parent = 0 );
00052 ~DiagramObserver();
00053
00054 const AbstractDiagram* diagram() const;
00055 AbstractDiagram* diagram();
00056
00057 Q_SIGNALS:
00060 void diagramDestroyed( AbstractDiagram* diagram );
00062 void diagramDataChanged( AbstractDiagram* diagram );
00064 void diagramDataHidden( AbstractDiagram* diagram );
00066 void diagramAttributesChanged( AbstractDiagram* diagram );
00067
00068 private Q_SLOTS:
00069 void slotDestroyed(QObject*);
00070 void slotHeaderDataChanged(Qt::Orientation,int,int);
00071 void slotDataChanged(QModelIndex,QModelIndex);
00072 void slotDataChanged();
00073 void slotDataHidden();
00074 void slotAttributesChanged();
00075 void slotAttributesChanged(QModelIndex,QModelIndex);
00076 void slotModelsChanged();
00077
00078 private:
00079 void init();
00080
00081 AbstractDiagram* m_diagram;
00082 QPointer<QAbstractItemModel> m_model;
00083 QPointer<QAbstractItemModel> m_attributesmodel;
00084 };
00085 }
00086
00087 #endif // KDChartDiagramObserver_H