History

combobox support in the Window.form javascript function

Thijs Wenker committed 12 years ago

Commit 753dedc1 parent cb907c11 file · +15 −1Browse files

Showing the changes to interface/src/scripting/WindowScriptingInterface.cpp (1 of 1 file). Show all

Unified · Split

interface/src/scripting/WindowScriptingInterface.cpp+15−1
@@ -165,6 +165,7 @@ QScriptValue WindowScriptingInterface::showForm(const QString& title, QScriptVal · 164 unmodified lines
165 area->setWidget(container);165 area->setWidget(container);
166 166
167 QVector<QLineEdit*> edits;167 QVector<QLineEdit*> edits;
168 QVector<QComboBox*> combos;
168 QVector<QPushButton*> directories;169 QVector<QPushButton*> directories;
169 for (int i = 0; i < form.property("length").toInt32(); ++i) {170 for (int i = 0; i < form.property("length").toInt32(); ++i) {
170 QScriptValue item = form.property(i);171 QScriptValue item = form.property(i);
@@ -201,7 +202,15 @@ QScriptValue WindowScriptingInterface::showForm(const QString& title, QScriptVal · 30 unmodified lines
201 202
202 formLayout->addRow(new QLabel(item.property("label").toString()), directory);203 formLayout->addRow(new QLabel(item.property("label").toString()), directory);
203 connect(directory, SIGNAL(clicked(bool)), SLOT(chooseDirectory()));204 connect(directory, SIGNAL(clicked(bool)), SLOT(chooseDirectory()));
204 205 } else if (item.property("options").isArray()) {
206 QComboBox* combo = new QComboBox();
207 combo->setMinimumWidth(200);
208 QStringList options = item.property("options").toVariant().toStringList();
209 for (QStringList::const_iterator it = options.begin(); it != options.end(); it += 1) {
210 combo->addItem(*it);
211 }
212 combos.push_back(combo);
213 formLayout->addRow(new QLabel(item.property("label").toString()), combo);
205 } else {214 } else {
206 QLineEdit* edit = new QLineEdit(item.property("value").toString());215 QLineEdit* edit = new QLineEdit(item.property("value").toString());
207 edit->setMinimumWidth(200);216 edit->setMinimumWidth(200);
@@ -222,6 +231,7 @@ QScriptValue WindowScriptingInterface::showForm(const QString& title, QScriptVal · 14 unmodified lines
222 if (result == QDialog::Accepted) {231 if (result == QDialog::Accepted) {
223 int e = -1;232 int e = -1;
224 int d = -1;233 int d = -1;
234 int c = -1;
225 for (int i = 0; i < form.property("length").toInt32(); ++i) {235 for (int i = 0; i < form.property("length").toInt32(); ++i) {
226 QScriptValue item = form.property(i);236 QScriptValue item = form.property(i);
227 QScriptValue value = item.property("value");237 QScriptValue value = item.property("value");
@@ -233,6 +243,10 @@ QScriptValue WindowScriptingInterface::showForm(const QString& title, QScriptVal · 5 unmodified lines
233 value = directories.at(d)->property("path").toString();243 value = directories.at(d)->property("path").toString();
234 item.setProperty("directory", value);244 item.setProperty("directory", value);
235 form.setProperty(i, item);245 form.setProperty(i, item);
246 } else if (item.property("options").isArray()) {
247 c += 1;
248 item.setProperty("value", combos.at(c)->currentText());
249 form.setProperty(i, item);
236 } else {250 } else {
237 e += 1;251 e += 1;
238 bool ok = true;252 bool ok = true;