Quark  0.1
BasicTableView.h++
Go to the documentation of this file.
1 #ifndef __libquark_gui_BasicTableView_hxx
2 #define __libquark_gui_BasicTableView_hxx
3 
4 #include <QKeyEvent>
5 #include <QList>
6 #include <QResizeEvent>
7 #include <QTableView>
8 #include <QTimer>
9 
10 #include <quark/Quark.h++>
13 
14 namespace quark {
15 namespace gui {
16 
17 class ActivityIndicator;
18 
19 class LIBQUARK_API BasicTableView : public QTableView
20 {
21  Q_OBJECT;
22 
23  public:
24 
25  explicit BasicTableView(QWidget* parent = NULL);
26  virtual ~BasicTableView();
27 
28  template<class T, class IS, class OS>
30  {
31  _modelBase = model->sourceModel();
32  QTableView::setModel(model);
33  applyFieldWidths();
34  }
35 
36  template<class T, class IS, class OS>
38  {
39  _modelBase = model->sourceModel();
40  QTableView::setModel(model);
41  applyFieldWidths();
42  }
43 
44  void setPreference(const QString &preference);
45 
46  public slots:
47 
52  void copy();
53 
58  void setLoading(bool loading);
59 
60  void saveState() const;
61  void restoreState();
62 
63  void resizeColumnsToContents();
64 
65  protected:
66 
67  virtual bool event(QEvent *event);
68  virtual void keyPressEvent(QKeyEvent* event);
69  virtual void resizeEvent(QResizeEvent* event);
70 
71  private slots:
72  void handleStateChange();
73 
74  private:
75  void applyFieldWidths();
76 
77  AbstractTableModelBase *_modelBase;
78  ActivityIndicator * _activityIndicator;
79  QList<int> _fieldPreferredWidths;
80  QString _preference;
81  mutable QTimer _saveTimer;
82  mutable qint64 _lastStateChange;
83 };
84 
85 } // namespace gui
86 } // namespace quark
87 
88 #endif // __libquark_gui_BasicTableView_hxx
An animated component (a "throbber") that indicates ongoing activity in an application.
Definition: ActivityIndicator.h++:22
void setModel(BasicTableModel< T, IS, OS > *model)
Definition: BasicTableView.h++:29
Definition: BasicTableView.h++:19
A non-parameterized abstract base class for Quark table models.
Definition: AbstractTableModelBase.h++:20
Definition: BarChartView.h++:6
A partial implementation of AbstractTableModel that stores its elements in a QVector.
Definition: BasicTableModel.h++:17
AbstractTableModel< T, IS, OS > * sourceModel() const
Returns this filter model&#39;s source model.
Definition: BasicFilterTableModel.h++:52
#define LIBQUARK_API
Definition: Quark.h++:18
void setModel(BasicFilterTableModel< T, IS, OS > *model)
Definition: BasicTableView.h++:37
An abstract subclass of QSortFilterProxyModel for sorting and filtering of AbstractTableModels.
Definition: BasicFilterTableModel.h++:26