blob: 88ed1b6c137207180dce0108ae9a362b63acfc78 [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
José Fonsecaf7a6b622011-04-13 10:37:13 +010014 connect(m_ui.shadersCB, SIGNAL(currentIndexChanged(const QString &)),
15 SLOT(changeShader(const QString &)));
Zack Rusin7c814f12011-04-09 19:20:58 -040016}
17
José Fonsecaf7a6b622011-04-13 10:37:13 +010018void ShadersSourceWidget::setShaders(const QMap<QString, QString> &sources)
Zack Rusin7c814f12011-04-09 19:20:58 -040019{
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
José Fonsecaf7a6b622011-04-13 10:37:13 +010035 QMap<QString, QString>::const_iterator itr;
36 for (itr = m_sources.constBegin(); itr != m_sources.constEnd(); ++itr) {
37 m_ui.shadersCB->addItem(itr.key());
Zack Rusin7c814f12011-04-09 19:20:58 -040038 }
39 m_ui.shadersCB->setCurrentIndex(0);
40}
41
José Fonsecaf7a6b622011-04-13 10:37:13 +010042void ShadersSourceWidget::changeShader(const QString &key)
Zack Rusin7c814f12011-04-09 19:20:58 -040043{
José Fonsecaf7a6b622011-04-13 10:37:13 +010044 m_edit->setPlainText(m_sources.value(key));
Zack Rusin7c814f12011-04-09 19:20:58 -040045}
46
47#include "shaderssourcewidget.moc"