]> git.cworth.org Git - apitrace/blobdiff - gui/shaderssourcewidget.cpp
cmake: Fix D2D include path w/ Visual Studio 2012.
[apitrace] / gui / shaderssourcewidget.cpp
index 0bec7a7a83651804de58d9ed77e8fadfce476f48..88ed1b6c137207180dce0108ae9a362b63acfc78 100644 (file)
@@ -1,44 +1,47 @@
 #include "shaderssourcewidget.h"
 
+#include "glsledit.h"
+
 ShadersSourceWidget::ShadersSourceWidget(QWidget *parent)
     : QWidget(parent)
 {
     m_ui.setupUi(this);
+    m_edit = new GLSLEdit(this);
+    m_edit->setReadOnly(true);
+
+    m_ui.verticalLayout->addWidget(m_edit);
 
-    connect(m_ui.shadersCB, SIGNAL(currentIndexChanged(int)),
-            SLOT(changeShader(int)));
+    connect(m_ui.shadersCB, SIGNAL(currentIndexChanged(const QString &)),
+            SLOT(changeShader(const QString &)));
 }
 
-void ShadersSourceWidget::setShaders(const QStringList &sources)
+void ShadersSourceWidget::setShaders(const QMap<QString, QString> &sources)
 {
     m_sources = sources;
 
     m_ui.shadersCB->clear();
-    m_ui.shadersTextEdit->clear();
+    m_edit->clear();
 
     if (m_sources.isEmpty()) {
         m_ui.shadersCB->setDisabled(true);
-        m_ui.shadersTextEdit->setPlainText(
-            tr("No bound shaders."));
-        m_ui.shadersTextEdit->setDisabled(true);
+        m_edit->setPlainText(tr("No bound shaders."));
+        m_edit->setDisabled(true);
         return;
     }
 
     m_ui.shadersCB->setEnabled(true);
-    m_ui.shadersTextEdit->setEnabled(true);
+    m_edit->setEnabled(true);
 
-    for (int i = 0; i < m_sources.count(); ++i) {
-        QString source = m_sources[i];
-        m_ui.shadersCB->insertItem(
-            i,
-            tr("Shader %1").arg(i));
+    QMap<QString, QString>::const_iterator itr;
+    for (itr = m_sources.constBegin(); itr != m_sources.constEnd(); ++itr) {
+        m_ui.shadersCB->addItem(itr.key());
     }
     m_ui.shadersCB->setCurrentIndex(0);
 }
 
-void ShadersSourceWidget::changeShader(int idx)
+void ShadersSourceWidget::changeShader(const QString &key)
 {
-    m_ui.shadersTextEdit->setPlainText(m_sources.value(idx));
+    m_edit->setPlainText(m_sources.value(key));
 }
 
 #include "shaderssourcewidget.moc"