00001 #ifndef FACTORY_H 00002 #define FACTORY_H 00003 00004 #include <QSharedPointer> 00005 00006 class PlotCurve; 00007 class QAbstractItemModel; 00008 00012 class CurveContainer 00013 { 00014 public: 00015 CurveContainer(); 00016 CurveContainer(QString name, QAbstractItemModel *base, int logicalIndex); 00017 PlotCurve *plot() const; 00018 00019 private: 00020 QSharedPointer<PlotCurve> m_curve; 00021 }; 00022 00023 #include <QTabWidget> 00024 #include <QHash> 00025 00026 class DataHeaderSection; 00027 class BaseQueryModel; 00028 class Builder; 00029 class Grapher; 00030 class Exporter; 00031 00041 class Factory : public QTabWidget 00042 { 00043 Q_OBJECT 00044 public: 00045 Factory(QWidget *parent = 0); 00046 ~Factory(); 00047 00048 private slots: 00049 void slot_curve_requested(DataHeaderSection *section, bool enabled); 00050 void onBusySignal(const bool &flag); 00051 00052 signals: 00053 void signal_plotCurve_addRequest(PlotCurve*); 00054 void signal_plotCurve_removeRequest(PlotCurve*); 00055 00056 private: 00057 BaseQueryModel *base; 00058 Builder *queryView; 00059 Grapher *grapher; 00060 Exporter *exporter; 00061 QHash<DataHeaderSection*, CurveContainer> plots; 00062 }; 00063 00064 #endif // FACTORY_H