1 #ifndef BINDPARAMSDIALOG_H
2 #define BINDPARAMSDIALOG_H
3 
4 #include <QDialog>
5 
6 namespace Ui {
7     class BindParamsDialog;
8 }
9 
10 struct BindParam;
11 class MultiEditor;
12 
13 class BindParamsDialog : public QDialog
14 {
15         Q_OBJECT
16 
17     public:
18         explicit BindParamsDialog(QWidget *parent = nullptr);
19         ~BindParamsDialog();
20 
21         void setBindParams(const QVector<BindParam*>& params);
22 
23     private:
24         void init();
25         void initEditors();
26         MultiEditor* initEditor(BindParam* param, const QVariant& cachedValue);
27 
28         static const int margins = 2;
29         static const int spacing = 2;
30         static const int minimumFieldHeight = 80;
31 
32         Ui::BindParamsDialog *ui;
33         QVector<BindParam*> bindParams;
34         QHash<BindParam*, MultiEditor*> editors;
35         QWidget* contents = nullptr;
36 
37     public slots:
38         void accept();
39 };
40 
41 #endif // BINDPARAMSDIALOG_H
42