]> git.cworth.org Git - apitrace/blob - gui/shaderssourcewidget.cpp
Use skiplist-based FastCallSet within trace::CallSet
[apitrace] / gui / shaderssourcewidget.cpp
1 #include "shaderssourcewidget.h"
2
3 #include "glsledit.h"
4
5 ShadersSourceWidget::ShadersSourceWidget(QWidget *parent)
6     : QWidget(parent)
7 {
8     m_ui.setupUi(this);
9     m_edit = new GLSLEdit(this);
10     m_edit->setReadOnly(true);
11
12     m_ui.verticalLayout->addWidget(m_edit);
13
14     connect(m_ui.shadersCB, SIGNAL(currentIndexChanged(const QString &)),
15             SLOT(changeShader(const QString &)));
16 }
17
18 void ShadersSourceWidget::setShaders(const QMap<QString, QString> &sources)
19 {
20     m_sources = sources;
21
22     m_ui.shadersCB->clear();
23     m_edit->clear();
24
25     if (m_sources.isEmpty()) {
26         m_ui.shadersCB->setDisabled(true);
27         m_edit->setPlainText(tr("No bound shaders."));
28         m_edit->setDisabled(true);
29         return;
30     }
31
32     m_ui.shadersCB->setEnabled(true);
33     m_edit->setEnabled(true);
34
35     QMap<QString, QString>::const_iterator itr;
36     for (itr = m_sources.constBegin(); itr != m_sources.constEnd(); ++itr) {
37         m_ui.shadersCB->addItem(itr.key());
38     }
39     m_ui.shadersCB->setCurrentIndex(0);
40 }
41
42 void ShadersSourceWidget::changeShader(const QString &key)
43 {
44     m_edit->setPlainText(m_sources.value(key));
45 }
46
47 #include "shaderssourcewidget.moc"