Quark  0.1
FlagsModel.h++
Go to the documentation of this file.
1 #ifndef __libquark_gui_FlagsModel_hxx
2 #define __libquark_gui_FlagsModel_hxx
3 
4 #include <QAbstractListModel>
5 #include <QBitArray>
6 #include <QStringList>
7 
8 namespace quark {
9 namespace gui {
10 
18 class FlagsModel : public QAbstractListModel
19 {
20  public:
21 
23  FlagsModel(QObject *parent = NULL);
24 
26  virtual ~FlagsModel();
27 
29  virtual inline int rowCount(const QModelIndex &parent = QModelIndex()) const
30  { return(sizeof(_flags) * 8); }
31 
33  virtual inline int columnCount(const QModelIndex &parent = QModelIndex())
34  const
35  { return(1); }
36 
38  virtual QVariant data(const QModelIndex &index,
39  int role = Qt::DisplayRole) const;
40 
42  virtual bool setData(const QModelIndex &index, const QVariant &value,
43  int role = Qt::EditRole);
44 
46  virtual Qt::ItemFlags flags(const QModelIndex &index) const;
47 
52  inline QBitArray getFlags() const
53  { return(_flags); }
54 
59  inline QBitArray getPartialFlags() const
60  { return(_partialFlags); }
61 
69  void setFlags(const QBitArray &flags,
70  const QBitArray &partialFlags = QBitArray());
71 
77  void setFlagNames(const QStringList &names);
78 
80  void setEditable(bool editable);
81 
86  void setTriState(bool triState);
87 
88  private:
89 
90  QStringList _names;
91  QBitArray _flags;
92  QBitArray _partialFlags;
93  bool _editable;
94  bool _triState;
95 };
96 
97 } // namespace gui
98 } // namespace quark
99 
100 #endif // __libquark_gui_FlagsModel_hxx
void setFlags(const QBitArray &flags, const QBitArray &partialFlags=QBitArray())
Sets the states of the flags in the model.
QBitArray getPartialFlags() const
Returns a bitmask of the flags which are partially set (partially checked) in the model...
Definition: FlagsModel.h++:59
virtual bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole)
Specified by QAbstractListModel.
virtual int rowCount(const QModelIndex &parent=QModelIndex()) const
Specified by QAbstractListModel.
Definition: FlagsModel.h++:29
virtual QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const
Specified by QAbstractListModel.
void setEditable(bool editable)
Specifies whether the model is editable.
Definition: BarChartView.h++:6
void setTriState(bool triState)
Specifies whether the model support tri-state (partially checked) flags.
QBitArray getFlags() const
Returns a bitmask of of flags which are set (checked) in the model, as a QBitArray.
Definition: FlagsModel.h++:52
virtual int columnCount(const QModelIndex &parent=QModelIndex()) const
Specified by QAbstractListModel.
Definition: FlagsModel.h++:33
FlagsModel(QObject *parent=NULL)
Constructor.
virtual Qt::ItemFlags flags(const QModelIndex &index) const
Specified by QAbstractListModel.
virtual ~FlagsModel()
Destructor.
void setFlagNames(const QStringList &names)
Sets the names of the flags.
A data model for storing a list of named flags.
Definition: FlagsModel.h++:18