00001 #ifndef CALIBRATIONSMODEL_H 00002 #define CALIBRATIONSMODEL_H 00003 00004 #include <QVariant> 00005 #include <QDateTime> 00006 00007 #include "database.h" 00008 00009 Q_DECLARE_METATYPE(Qt::CheckState); //to use in QVariant 00010 00014 class CalibrationsModel : public SqlQueryModel 00015 { 00016 Q_OBJECT 00017 public: 00018 enum CalibrationDataTypes { 00019 CalibrationId = Qt::UserRole+1000, 00020 CalibrationFormula, 00021 CalibrationTimestamp 00022 }; 00023 00024 CalibrationsModel(QObject *parent); 00025 QVariant data(const QModelIndex &item, int role) const ; 00026 bool setData(const QModelIndex &index, const QVariant &value, int role); 00027 QStringList getSelectedCalibrationIds(); 00028 Qt::ItemFlags flags(const QModelIndex & index) const; 00029 bool isAnyItemChecked() const; 00030 00031 public slots: 00032 void slot_syncTreeId(const int &tree_id); 00033 void slot_allCalibrations_toggle(const Qt::CheckState state); 00034 void slot_allCalibrations_toggle(const int state); 00035 void reQuery(); 00036 00037 signals: 00038 void signal_calibrationSelections_changed(Qt::CheckState); 00039 00040 private: 00041 QString *templateQuery; 00042 QDateTime oldest; 00043 QDateTime newest; 00044 int db_tree_id; 00045 QMap<int, Qt::CheckState> checkedItems; //rows & checkstates; 00046 }; 00047 00048 #include <QTableView> 00049 00053 class CalibrationsView : public QTableView 00054 { 00055 Q_OBJECT 00056 public: 00057 CalibrationsView(int treeItemId, QWidget *parent); 00058 CalibrationsModel *model() const; 00059 virtual void setModel(QAbstractItemModel *model); 00060 00061 private slots: 00062 void onModelReset(); 00063 }; 00064 00065 #include <QCheckBox> 00066 00070 class CalibrationsCheckBox : public QCheckBox 00071 { 00072 Q_OBJECT 00073 public: 00074 CalibrationsCheckBox(const QString &text, QWidget *parent); 00075 00076 public slots: 00077 void slot_setCheckState(Qt::CheckState state); 00078 }; 00079 00080 #endif // CALIBRATIONSMODEL_H