summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2009-02-27 15:01:05 -0500
committerBen Boeckel <MathStuf@gmail.com>2009-02-27 15:01:05 -0500
commitff37dc2d5b18a90b70e720c67e0c662b9885ef2d (patch)
tree02ed1e8e6f599bb22ddf01556c4fc77ccb9bc9a1
parent1ae7e241f0640d5a12275ea77742932da3cf669a (diff)
downloadsigen-ff37dc2d5b18a90b70e720c67e0c662b9885ef2d.tar.gz
sigen-ff37dc2d5b18a90b70e720c67e0c662b9885ef2d.tar.xz
sigen-ff37dc2d5b18a90b70e720c67e0c662b9885ef2d.zip
Fixed up behavior of the script widget
-rw-r--r--sigmodr/corewidgets/ScriptWidget.cpp32
-rw-r--r--sigmodr/corewidgets/ScriptWidget_p.h4
2 files changed, 21 insertions, 15 deletions
diff --git a/sigmodr/corewidgets/ScriptWidget.cpp b/sigmodr/corewidgets/ScriptWidget.cpp
index dbfdcd07..66744b02 100644
--- a/sigmodr/corewidgets/ScriptWidget.cpp
+++ b/sigmodr/corewidgets/ScriptWidget.cpp
@@ -66,7 +66,8 @@ void ScriptWidget::setValue(const Script& value)
}
}
-QMap<QString, QString> ScriptWidget::Private::m_languages;
+QMap<QString, ScriptWidget::Private::LanguagePair> ScriptWidget::Private::m_languages;
+QList<QString> ScriptWidget::Private::m_interpreters;
ScriptWidget::Private::Private(QObject* parent, const Script& value) :
QObject(parent),
@@ -77,15 +78,18 @@ ScriptWidget::Private::Private(QObject* parent, const Script& value) :
{
if (!m_languages.size())
{
- m_languages["C#"] = "mono";
- m_languages["Falcon"] = "falcon";
- m_languages["Java"] = "java";
- m_languages["JavaScript"] = "javascript";
- m_languages["QtScript"] = "qtscript";
- m_languages["Lua"] = "lua";
- m_languages["PHP"] = "php";
- m_languages["Python"] = "python";
- m_languages["Ruby"] = "ruby";
+ m_languages["C#"] = LanguagePair("mono", "C#");
+ m_languages["Falcon"] = LanguagePair("falcon", "Falcon");
+ m_languages["Java"] = LanguagePair("java", "Java");
+ m_languages["JavaScript"] = LanguagePair("javascript", "JavaScript");
+ m_languages["QtScript"] = LanguagePair("qtscript", "JavaScript");
+ m_languages["Lua"] = LanguagePair("lua", "Lua");
+ m_languages["PHP"] = LanguagePair("php", "PHP");
+ m_languages["Python"] = LanguagePair("python", "Python");
+ m_languages["Ruby"] = LanguagePair("ruby", "Ruby");
+ QList<LanguagePair> langs = m_languages.values();
+ foreach (const LanguagePair& lang, langs)
+ m_interpreters.append(lang.first);
}
}
@@ -148,17 +152,17 @@ QWidget* ScriptWidget::Private::makeWidgets(ScriptWidget* widget)
labelScript->setBuddy(editor);
setTabOrder(ui_interpreter, editor);
gridLayout->addWidget(editor, 1, 1);
- connect(this, SIGNAL(valueChanged(Sigcore::Script)), SLOT(setGui()));
connect(this, SIGNAL(valueChanged(Sigcore::Script)), widget, SIGNAL(valueChanged(Sigcore::Script)));
+ connect(this, SIGNAL(valueChanged(Sigcore::Script)), SLOT(setGui()));
setGui();
return formWidget;
}
void ScriptWidget::Private::interpreterChanged(const QString& interpreter)
{
- m_value.setInterpreter(m_languages[interpreter]);
+ m_value.setInterpreter(m_languages[interpreter].first);
if (m_document)
- m_document->setHighlightingMode(interpreter);
+ m_document->setHighlightingMode(m_languages[interpreter].second);
emit(valueChanged(m_value));
}
@@ -200,7 +204,7 @@ void ScriptWidget::Private::unfocused(KTextEditor::View* view)
void ScriptWidget::Private::setGui()
{
- ui_interpreter->setCurrentIndex(m_languages.values().indexOf(m_value.interpreter()));
+ ui_interpreter->setCurrentIndex(m_interpreters.indexOf(m_value.interpreter()));
if (m_document)
{
m_document->setHighlightingMode(ui_interpreter->currentText());
diff --git a/sigmodr/corewidgets/ScriptWidget_p.h b/sigmodr/corewidgets/ScriptWidget_p.h
index e0d24869..ad8c52df 100644
--- a/sigmodr/corewidgets/ScriptWidget_p.h
+++ b/sigmodr/corewidgets/ScriptWidget_p.h
@@ -63,7 +63,9 @@ class ScriptWidget::Private : public QObject
void unfocused(KTextEditor::View* view);
void setGui();
private:
- static QMap<QString, QString> m_languages;
+ typedef QPair<QString, QString> LanguagePair;
+ static QMap<QString, LanguagePair> m_languages;
+ static QList<QString> m_interpreters;
KComboBox* ui_interpreter;
KTextEdit* ui_simpleEdit;