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

Private GIT Repository
1st commit of all files
[blast.git] / Dispatcher.h
1 #ifndef __DISPATCHER_H__
2 #define __DISPATCHER_H__
3
4 #include <iostream>
5
6 #include <QtCore>
7 #include <QtGui>
8 #include <QtWidgets>
9
10 class Graph;
11 class Parameters;
12 class MainWindow;
13 class GroupWidget;
14 class GroupScene;
15 class AbstractBoxItem;
16 class GroupItem;
17 class BoxItem;
18 class ConnectionItem;
19 class InterfaceItem;
20
21
22
23 using namespace std;
24 using namespace Qt;
25
26 class Dispatcher {
27
28 public:
29   Dispatcher(Parameters* _params,             
30              MainWindow* _window);
31
32   GroupWidget* loadProject(const QString& filename);
33
34   inline int getNumberOfScenes() { return groupList.length(); }
35   bool connect(InterfaceItem *iface1, InterfaceItem *iface2);
36   void checkSelection();
37   void unselectAllItems(int direction=0);
38   void setCurrentGroupWidget(GroupWidget *win);
39   void changeConnectionMode(int mode = -1);
40   void rename(AbstractBoxItem* item);
41   void rename(InterfaceItem* item);
42   GroupWidget* createTopScene();
43   GroupWidget* createChildScene(GroupWidget* parentWidget, BoxItem* upperItemOfGroupItem = NULL);
44   void showRaiseWindow(AbstractBoxItem *item);
45   void showRstClkInter(AbstractBoxItem *item);
46   void addNewFullGroup();  
47
48   inline GroupWidget* getCurrentGroup() { return currentGroup; }
49
50   bool isCurrentProject;
51
52 public slots:
53
54   GroupScene* searchSceneById(int id);
55   BoxItem* searchBlockItemById(int id);
56   GroupItem* searchGroupItemById(int id);
57   InterfaceItem* searchInterfaceItemById(int id);
58
59   void removeBlock(AbstractBoxItem* item);
60   void duplicateBlock(BoxItem* item);
61   void duplicateInterface(InterfaceItem* item);
62   void addBlock(int idCategory, int idBlock);
63   ConnectionItem *addConnection(InterfaceItem *input, InterfaceItem *output);
64   void removeAllBlockConnections(AbstractBoxItem *block);
65   void removeConnection(ConnectionItem *conn);
66   void removeUselessGroupInterfaces();
67   void showBlocksLibrary();
68   void showProperties(InterfaceItem *inter);
69   void connectInterToGroup(InterfaceItem* item);
70   void disconnectInterFromGroup(InterfaceItem* item);
71   void removeGroupInterface(InterfaceItem* item);
72
73   void addConnection();
74
75   void closeCurrentProject();
76
77 private:  
78
79   // the model
80   Parameters* params;
81
82   // attributes that corresponds to the views
83   MainWindow* mainWindow;
84   QList<GroupWidget*> groupList;
85   GroupWidget* currentGroup;
86   GroupWidget *topGroup;
87 };
88
89 #endif // __DISPATCHER_H__