]> git.cworth.org Git - apitrace/blob - gui/shaderssourcewidget.cpp
Show currently bound shaders.
[apitrace] / gui / shaderssourcewidget.cpp
1 #include "shaderssourcewidget.h"
2
3 ShadersSourceWidget::ShadersSourceWidget(QWidget *parent)
4     : QWidget(parent)
5 {
6     m_ui.setupUi(this);
7
8     connect(m_ui.shadersCB, SIGNAL(currentIndexChanged(int)),
9             SLOT(changeShader(int)));
10 }
11
12 void ShadersSourceWidget::setShaders(const QStringList &sources)
13 {
14     m_sources = sources;
15
16     m_ui.shadersCB->clear();
17     m_ui.shadersTextEdit->clear();
18
19     if (m_sources.isEmpty()) {
20         m_ui.shadersCB->setDisabled(true);
21         m_ui.shadersTextEdit->setPlainText(
22             tr("No bound shaders."));
23         m_ui.shadersTextEdit->setDisabled(true);
24         return;
25     }
26
27     m_ui.shadersCB->setEnabled(true);
28     m_ui.shadersTextEdit->setEnabled(true);
29
30     for (int i = 0; i < m_sources.count(); ++i) {
31         QString source = m_sources[i];
32         m_ui.shadersCB->insertItem(
33             i,
34             tr("Shader %1").arg(i));
35     }
36     m_ui.shadersCB->setCurrentIndex(0);
37 }
38
39 void ShadersSourceWidget::changeShader(int idx)
40 {
41     m_ui.shadersTextEdit->setPlainText(m_sources.value(idx));
42 }
43
44 #include "shaderssourcewidget.moc"