00001 #ifndef SUMMARYTABLECONTROLLER_H
00002 #define SUMMARYTABLECONTROLLER_H
00003
00004 #include <QPoint>
00005 #include <QObject>
00006 #include <QTimer>
00007 #include <QList>
00008 #include <QTableWidget>
00009
00010 class QseAveragerRole;
00011 class QseDataSet;
00012 class QTableWidget;
00013
00014 class SummaryTableController : public QObject
00015 {
00016 Q_OBJECT;
00017
00018 public:
00019 SummaryTableController
00020 (QseDataSet *ds,
00021 QseAveragerRole *r,
00022 QTableWidget *tw,
00023 QObject *parent=0);
00024 ~SummaryTableController();
00025
00026 public:
00027 void updateSummaryTable(void);
00028 void updateSummaryTableScanInfo(int scan0, int scan1);
00029 void updateSummaryTableColumnInfo(int scan0, int scan1, int col0, int col1);
00030 void updateSummaryTableScans(int scan0, int scan1);
00031 void exportSelectedData(QList<QTableWidgetSelectionRange> selections);
00032
00033 public slots:
00034 void summaryTableContextMenu(const QPoint & pos);
00035
00036 signals:
00037 void scanRangeRoleChanged(int scan0, int scan1);
00038 void columnRangeRolesChanged(int scan0, int scan1, int col0, int col1);
00039
00040 private:
00041 void updateSummaryTableHeaders(void);
00042 void updateSummaryTableColumnInfo(int scan0, int scan1);
00043
00044 public slots:
00045 void updateSummaryTableSizes(void);
00046
00047 private:
00048 QseDataSet *m_DataSet;
00049 QseAveragerRole *m_Role;
00050 QTableWidget *m_Table;
00051 QTimer m_updateTimer;
00052
00053 static const int EXTRACOLUMNCOUNT = 4;
00054 };
00055
00056 #endif