]> git.cworth.org Git - apitrace/blob - gui/argumentseditor.h
Start collecting the edited values.
[apitrace] / gui / argumentseditor.h
1 #ifndef ARGUMENTSEDITOR_H
2 #define ARGUMENTSEDITOR_H
3
4 #include "apitracecall.h"
5 #include "ui_argumentseditor.h"
6
7 #include <QComboBox>
8 #include <QDialog>
9 #include <QItemEditorFactory>
10 #include <QStandardItemModel>
11
12 class ApiTraceCall;
13
14 class BooleanComboBox : public QComboBox
15 {
16     Q_OBJECT
17     Q_PROPERTY(bool value READ value WRITE setValue USER true)
18 public:
19     BooleanComboBox(QWidget *parent);
20     void setValue(bool);
21     bool value() const;
22 };
23
24 class ArgumentsItemEditorFactory : public QItemEditorFactory
25 {
26 public:
27     ArgumentsItemEditorFactory();
28     QWidget *createEditor(QVariant::Type type, QWidget *parent) const;
29     QByteArray valuePropertyName(QVariant::Type) const;
30 };
31
32 class ArgumentsEditor : public QDialog
33 {
34     Q_OBJECT
35 public:
36     ArgumentsEditor(QWidget *parent=0);
37     ~ArgumentsEditor();
38
39
40     virtual void accept();
41
42     void setCall(ApiTraceCall *call);
43     ApiTraceCall *call() const;
44
45 private slots:
46     void currentSourceChanged(int idx);
47     void sourceChanged();
48 private:
49     void init();
50     void setupCall();
51     void setupShaderEditor(const QList<QVariant> &sources);
52     QVariant valueForName(const QString &name,
53                           const QVariant &orignalValue) const;
54     QVariant arrayFromIndex(const QModelIndex &index,
55                             const ApiArray &array) const;
56 private:
57     Ui_ArgumentsEditor m_ui;
58     QStandardItemModel *m_model;
59
60     ApiTraceCall *m_call;
61 };
62
63 #endif