QCAD Application Framework
CAD Application Development and Automation.
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
RListView.h
Go to the documentation of this file.
1 #ifndef RLISTVIEW_H_
2 #define RLISTVIEW_H_
3 
4 #include <QWidget>
5 #include <QListView>
6 #include <QEvent>
7 #include <QHelpEvent>
8 
13 class RListView: public QListView {
14 
15 Q_OBJECT
16 
17 public:
18  RListView(QWidget* parent = 0) :
19  QListView(parent) {
20  }
21  virtual ~RListView() {
22  }
23 
24 signals:
25  void signalContextMenuEvent(QContextMenuEvent* e);
26  void signalMouseMoveEvent(QMouseEvent* e);
27  void signalMousePressEvent(QMouseEvent* e);
28  void signalMouseReleaseEvent(QMouseEvent* e);
29  void signalDragEnterEvent(QDragEnterEvent* e);
30  void signalDragMoveEvent(QDragMoveEvent* e);
31  void signalDropEvent(QDropEvent* e);
32  void signalStartDrag(Qt::DropActions supportedActions);
33  void signalSelectionChanged(const QItemSelection& selected,
34  const QItemSelection& deselected);
35  void signalCurrentChanged(const QModelIndex& current,
36  const QModelIndex& previous);
37  void signalToolTipRequested(QHelpEvent* e);
38 
39 protected:
40  virtual void contextMenuEvent(QContextMenuEvent* e) {
42  emit signalContextMenuEvent(e);
43  }
44  virtual void mousePressEvent(QMouseEvent* e) {
46  emit signalMousePressEvent(e);
47  }
48  virtual void mouseReleaseEvent(QMouseEvent* e) {
51  }
52  virtual void mouseMoveEvent(QMouseEvent* e) {
54  emit signalMouseMoveEvent(e);
55  }
56  virtual void dragEnterEvent(QDragEnterEvent* e) {
58  emit signalDragEnterEvent(e);
59  }
60  virtual void dragMoveEvent(QDragMoveEvent* e) {
62  emit signalDragMoveEvent(e);
63  }
64  virtual void dropEvent(QDropEvent* e) {
66  emit signalDropEvent(e);
67  }
68  virtual void startDrag(Qt::DropActions supportedActions) {
69  QListView::startDrag(supportedActions);
70  emit signalStartDrag(supportedActions);
71  }
72  virtual void selectionChanged(const QItemSelection& selected, const QItemSelection& deselected) {
73  QListView::selectionChanged(selected, deselected);
74  emit signalSelectionChanged(selected, deselected);
75  }
76  virtual void currentChanged(const QModelIndex& current, const QModelIndex& previous) {
77  QListView::currentChanged(current, previous);
78  emit signalCurrentChanged(current, previous);
79  }
80 
84  virtual bool event(QEvent* event) {
85  QHelpEvent* helpEvent = dynamic_cast<QHelpEvent*>(event);
86  if (event->type()==QEvent::ToolTip && helpEvent!=NULL) {
87  emit signalToolTipRequested(helpEvent);
88  event->accept();
89  return true;
90  }
91  return QListView::event(event);
92  }
93 };
94 
96 
97 #endif