ImGraph
 All Classes Functions Variables Enumerations Pages
ParameterDock.h
1 #ifndef _PARAMETERS_DOCK_HEADER_
2 #define _PARAMETERS_DOCK_HEADER_
3 
4 #ifdef _WIN32
5 #pragma warning(disable:4503)
6 #pragma warning(push)
7 #pragma warning(disable:4996 4251 4275 4244 4800 4503)
8 #endif
9 #include <QGraphicsView>
10 #include <QResizeEvent>
11 #include <QDialog >
12 #include <QPainter>
13 #include <QRect>
14 #include <QString>
15 #include <QDialog>
16 #include <QLabel>
17 #include <QWidget>
18 #include <QLayout>
19 #include <QMainWindow>
20 #include <QComboBox>
21 #include <QDial>
22 #include <QCheckBox>
23 #include <QPainterPath>
24 #include <QGroupBox>
25 #include <QBasicTimer>
26 
27 #include <boost/bimap.hpp>
28 
29 #ifdef _WIN32
30 #pragma warning(pop)
31 #endif
32 
33 #include "Block.h"
34 
35 #include <map>
36 #include "Window.h"
37 #include "Configuration.h"
38 #include "Connectors.h"
39 
40 namespace charliesoft
41 {
42 
43  class ConditionConfigurator :public QDialog
44  {
45  Q_OBJECT;
46  VertexRepresentation* _vertex;
47 
48  QPushButton* _OKbutton;
49  QPushButton* _Cancelbutton;
50  QPushButton* _Deletebutton;
51  QComboBox* _condition_left;
52  QComboBox* _condition_type;
53  QComboBox* _condition_right;
54 
55  QLineEdit* __valueleft;
56  QLineEdit* __valueright;
57 
58  QGridLayout* _comboBoxLayout;
59  public:
61  public slots:
62  void accept_button();
63  void reject_button();
64  void delete_button();
65  void updateLeft(int);
66  void updateRight(int);
67 
68  signals:
69  void askSynchro();
70  };
71 
72  class ParamsConfigurator :public QDialog
73  {
74  Q_OBJECT;
75 
76  QLabel* _statLabel;
77  QBasicTimer _timer;
78 
79  std::map<QObject*, QLineEdit*> openFiles_;
80  std::map<ParamRepresentation*, cv::Mat> _paramMatrix;
81  std::map<ParamRepresentation*, cv::Scalar> _paramColor;
82 
83  std::map<QGroupBox*, ParamRepresentation*> _inputGroup;
84  std::map<QWidget*, std::vector<ParamRepresentation*>> _subparamGroup;
85  std::map<ParamRepresentation*, std::vector<QWidget*>> _anyTypeValues;
86  std::map<QGroupBox*, ParamRepresentation*> _outputGroup;
87 
88  std::map<QCheckBox*, ParamRepresentation* > _inputModificator12;
89  std::map<ParamRepresentation*, QCheckBox*> _inputModificator21;
90  std::map<ParamRepresentation*, QObject* > _inputValue12;
91  std::map<QObject*, ParamRepresentation*> _inputValue21;
92 
93  std::vector< LinkConnexionRepresentation*>& _in_param;
94  std::map<std::string, LinkConnexionRepresentation*>& _sub_param;
95  std::vector< LinkConnexionRepresentation*>& _out_param;
96 
97  std::map<ParamRepresentation*, QWidget*> subWidget_;
98 
99  VertexRepresentation* _vertex;
100 
101  QTabWidget* tabWidget_;
102  std::vector<QVBoxLayout *> tabs_content_;
103 
104  QPushButton* _switchSynchro;
105 
106  void addParamOut(ParamRepresentation *p);
107  void addParamIn(ParamRepresentation *p, ParamRepresentation* parent = NULL);
108  bool updateParamModel(ParamRepresentation* param, bool withAlert = true);
109 
110  void addParam(ParamDefinition* param, bool input);
111 
112  void updateInfoTab();
113  void changeSubParam(int newIndex, QComboBox* src, bool updateBlock = true);
114  public:
116 
117  void timerEvent(QTimerEvent * ev);
118  cv::Scalar getColor(ParamRepresentation* rep) const{
119  auto iter = _paramColor.find(rep);
120  return iter != _paramColor.end() ? iter->second : cv::Scalar();
121  };
122  void setColor(ParamRepresentation* rep, cv::Scalar val){
123  _paramColor[rep] = val;
124  };
125  cv::Mat getMatrix(ParamRepresentation* rep) const{
126  auto iter = _paramMatrix.find(rep);
127  return iter != _paramMatrix.end() ? iter->second : cv::Mat();
128  };
129  void setMatrix(ParamRepresentation* rep, cv::Mat val){
130  _paramMatrix[rep] = val;
131  };
132  signals:
133  void changeVisibility(bool isVisible);
134  void askSynchro();
135 
136  public slots:
137  void changeTab(int);
138  void changeSynchro();
139  void textChanged();
140  void switchEnable(int);
141  void switchParamUse(bool);
142  void openFile();
143  void configCondition();
144  void matrixEditor();
145  void colorEditor();
146  void subParamChange(int);
147 
148  void addNewParamIn();
149  void addNewParamOut();
150  };
151 
152 
153  class AnyTypeWidget : public QWidget
154  {
155  Q_OBJECT;
156 
157  std::vector<QWidget*> _widgets;
158  ParamsConfigurator* _configurator;
159  ParamRepresentation* _paramRep;
160  QComboBox* _combo;
161  QVBoxLayout* _vbox;
162  int _oldIndex;
163 
164  public:
166 
167  ParamValue getValue();
168  public slots:
169  void anyTypeChange(int);
170  };
171 }
172 
173 
174 #endif
Definition: Block.h:163
void colorEditor()
Definition: ParameterDock.cpp:1084
Definition: ParameterDock.h:72
Definition: ParameterDock.h:43
Definition: ParameterDock.h:153
Definition: VertexRepresentation.h:167
AnyTypeWidget(ParamsConfigurator *configurator, ParamRepresentation *param)
Definition: ParameterDock.cpp:511
Definition: Connectors.h:107
void matrixEditor()
Definition: ParameterDock.cpp:1122
Definition: ParamValue.h:52