]> AND Private Git Repository - blast.git/blob - GroupWidget.h
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
nearly finished GroupBlock VHDL gen
[blast.git] / GroupWidget.h
1 #ifndef __GROUPWIDGET_H__
2 #define __GROUPWIDGET_H__
3
4 #include <QtWidgets>
5
6 class Dispatcher;
7 class Parameters;
8 class GroupScene;
9
10
11
12 class GroupWidget : public QWidget {
13   Q_OBJECT
14 public:
15
16   explicit GroupWidget(GroupWidget* _upperGroup, Dispatcher* _dispatcher, Parameters* _params, QWidget *parent = 0);
17
18   // getters
19   inline GroupScene *getScene() {return scene;}
20   inline QToolButton* getButtonNewConnection(){return butAddConnection;}
21
22   // testers
23   inline bool isTopGroup() { return topGroup;}
24
25   // others
26   void changeConnectionMode(int mode = -1);
27
28
29   ~GroupWidget();
30
31   void enableGroupButton(bool b);
32
33 protected:
34   void mousePressEvent(QMouseEvent *e);
35   void focusInEvent(QFocusEvent *e);
36   void closeEvent(QCloseEvent *e);
37
38 private:
39   GroupWidget* upperGroup; // NB:for convenience. NULL if it contains the top scene
40   bool topGroup;
41
42   GroupScene *scene;
43   Dispatcher *dispatcher;
44   Parameters *params;
45
46   void createActions();
47   void createToolbar();
48
49   QToolButton* butAddConnection;
50   QToolButton* butEdit;
51   void updateBlockButton();
52   QColor butBaseColor;
53
54   QAction *copyBlockAct;    
55
56   QAction *newEmptyGroupAct;
57   QAction *newGroupAct;
58
59   QAction *deleteAct;
60   QAction *selectAllAct;
61   QAction *unselectAllAct;
62
63   QToolBar *toolbarEditMode;
64   QToolBar *toolbarAdd;
65   QToolBar *toolbarTools;
66
67
68   QGridLayout *layout;
69
70 signals:
71
72 private slots:  
73   void slotCopyBlock();
74   void slotAddConnection();
75   void slotEdit();
76
77   void slotNewEmptyGroup();
78   void slotNewGroup();
79
80   void slotDeleteItems();
81   void slotSelectAll();
82   void slotUnselectAll();
83 };
84
85 #endif // __GROUPWIDGET_H__