Vuo  2.0.2
VuoPublishedPortList.hh
Go to the documentation of this file.
1 
10 #pragma once
11 
13 class VuoPublishedPort;
14 class VuoRendererPort;
16 
20 class VuoPublishedPortList : public QListWidget
21 {
22  Q_OBJECT
23 public:
24  explicit VuoPublishedPortList(QWidget *parent = 0);
25  bool getInput();
26  void setInput(bool isInput);
27  void setComposition(VuoEditorComposition *composition);
28  QSize sizeHint() const;
29  VuoRendererPublishedPort * getPublishedPortAtGlobalPos(QPoint globalPos, qreal xTolerance=0, bool limitPortCollisionRange=false);
31  void clearSelection();
32  void setFillVerticalSpace(bool fill);
33  void adoptDropEvent(QDropEvent *event);
35 
36  static const int publishedPortPointerIndex;
37  static const qreal componentCollisionRange;
38 
39 signals:
40  void publishedPortModified();
41  void publishedPortNameEditorRequested(VuoRendererPublishedPort *port, bool useUndoStack);
46  void mouseMoveEventReceived(QMouseEvent *event, qreal hoverTolerance);
47  void publishedPortsReordered(vector<VuoPublishedPort *> publishedPorts, bool isInput);
48 
49 public slots:
51 
52 protected:
53  void contextMenuEvent(QContextMenuEvent *event);
54  void mouseDoubleClickEvent(QMouseEvent *event);
55  void mousePressEvent(QMouseEvent *event);
56  void mouseMoveEvent(QMouseEvent *event);
57  void mouseReleaseEvent(QMouseEvent *event);
58  void dragMoveEvent(QDragMoveEvent *event);
59  void dropEvent(QDropEvent *event);
60  void keyPressEvent(QKeyEvent *event);
61  void keyReleaseEvent(QKeyEvent *event);
62 
63 private slots:
64  void editPublishedPortValue();
65  void editPublishedPortDetails();
66  void renamePublishedPort();
67  void renamePublishedPort(QListWidgetItem *portListItem);
68  void unpublishExternalPort();
69  void updatePortOrder();
70 
71 private:
72  bool valueEditableForPublishedPort(VuoPublishedPort *port);
73  bool detailsEditableForPublishedPort(VuoPublishedPort *port);
74  void editPublishedPortValue(VuoRendererPublishedPort *port);
75  bool isInput;
76  VuoEditorComposition *composition;
77  QAction *contextMenuSetPortConstant;
78  QAction *contextMenuSetPortDetails;
79  QAction *contextMenuRenamePublishedPort;
80  QAction *contextMenuUnpublishPort;
81  bool fillVerticalSpace;
82  bool forwardingEventsToCanvas;
83  bool menuSelectionInProgress;
84 };