Add a very nice glsl editor code.

port of Ariya's bsd licensed javascript editor to glsl.
diff --git a/gui/shaderssourcewidget.cpp b/gui/shaderssourcewidget.cpp
index 0bec7a7..5003dda 100644
--- a/gui/shaderssourcewidget.cpp
+++ b/gui/shaderssourcewidget.cpp
@@ -1,9 +1,15 @@
 #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)));
@@ -14,18 +20,17 @@
     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];
@@ -38,7 +43,7 @@
 
 void ShadersSourceWidget::changeShader(int idx)
 {
-    m_ui.shadersTextEdit->setPlainText(m_sources.value(idx));
+    m_edit->setPlainText(m_sources.value(idx));
 }
 
 #include "shaderssourcewidget.moc"