blob: 5003dda11752d8bf435982cc854df39c7552007b [file] [log] [blame]
Zack Rusin7c814f12011-04-09 19:20:58 -04001#include "shaderssourcewidget.h"
2
Zack Rusinfbd67a02011-04-11 23:35:02 -04003#include "glsledit.h"
4
Zack Rusin7c814f12011-04-09 19:20:58 -04005ShadersSourceWidget::ShadersSourceWidget(QWidget *parent)
6 : QWidget(parent)
7{
8 m_ui.setupUi(this);
Zack Rusinfbd67a02011-04-11 23:35:02 -04009 m_edit = new GLSLEdit(this);
10 m_edit->setReadOnly(true);
11
12 m_ui.verticalLayout->addWidget(m_edit);
Zack Rusin7c814f12011-04-09 19:20:58 -040013
14 connect(m_ui.shadersCB, SIGNAL(currentIndexChanged(int)),
15 SLOT(changeShader(int)));
16}
17
18void ShadersSourceWidget::setShaders(const QStringList &sources)
19{
20 m_sources = sources;
21
22 m_ui.shadersCB->clear();
Zack Rusinfbd67a02011-04-11 23:35:02 -040023 m_edit->clear();
Zack Rusin7c814f12011-04-09 19:20:58 -040024
25 if (m_sources.isEmpty()) {
26 m_ui.shadersCB->setDisabled(true);
Zack Rusinfbd67a02011-04-11 23:35:02 -040027 m_edit->setPlainText(tr("No bound shaders."));
28 m_edit->setDisabled(true);
Zack Rusin7c814f12011-04-09 19:20:58 -040029 return;
30 }
31
32 m_ui.shadersCB->setEnabled(true);
Zack Rusinfbd67a02011-04-11 23:35:02 -040033 m_edit->setEnabled(true);
Zack Rusin7c814f12011-04-09 19:20:58 -040034
35 for (int i = 0; i < m_sources.count(); ++i) {
36 QString source = m_sources[i];
37 m_ui.shadersCB->insertItem(
38 i,
39 tr("Shader %1").arg(i));
40 }
41 m_ui.shadersCB->setCurrentIndex(0);
42}
43
44void ShadersSourceWidget::changeShader(int idx)
45{
Zack Rusinfbd67a02011-04-11 23:35:02 -040046 m_edit->setPlainText(m_sources.value(idx));
Zack Rusin7c814f12011-04-09 19:20:58 -040047}
48
49#include "shaderssourcewidget.moc"