History

combo boxes ported to new form code

Thijs Wenker committed 12 years ago

Commit 63e68391 parent dd47b7a2 files · +20 −0Browse files

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

Unified · Split

interface/src/scripting/WindowScriptingInterface.cpp+19−0
@@ -220,6 +220,7 @@ QScriptValue WindowScriptingInterface::doGetNonBlockingFormResult(QScriptValue a · 219 unmodified lines
220220 if (_formResult == QDialog::Accepted) {
221221 int e = -1;
222222 int d = -1;
223+ int c = -1;
223224 for (int i = 0; i < _form.property("length").toInt32(); ++i) {
224225 QScriptValue item = _form.property(i);
225226 QScriptValue value = item.property("value");
@@ -235,6 +236,10 @@ QScriptValue WindowScriptingInterface::doGetNonBlockingFormResult(QScriptValue a · 9 unmodified lines
235236 value = _directories.at(d)->property("path").toString();
236237 item.setProperty("directory", value);
237238 _form.setProperty(i, item);
239+ } else if (item.property("options").isArray()) {
240+ c += 1;
241+ item.setProperty("value", _combos.at(c)->currentText());
242+ _form.setProperty(i, item);
238243 } else {
239244 e += 1;
240245 bool ok = true;
@@ -288,6 +293,7 @@ QScriptValue WindowScriptingInterface::showForm(const QString& title, QScriptVal · 47 unmodified lines
288293 if (result == QDialog::Accepted) {
289294 int e = -1;
290295 int d = -1;
296+ int c = -1;
291297 for (int i = 0; i < form.property("length").toInt32(); ++i) {
292298 QScriptValue item = form.property(i);
293299 QScriptValue value = item.property("value");
@@ -303,6 +309,10 @@ QScriptValue WindowScriptingInterface::showForm(const QString& title, QScriptVal · 9 unmodified lines
303309 value = _directories.at(d)->property("path").toString();
304310 item.setProperty("directory", value);
305311 form.setProperty(i, item);
312+ } else if (item.property("options").isArray()) {
313+ c += 1;
314+ item.setProperty("value", _combos.at(c)->currentText());
315+ _form.setProperty(i, item);
306316 } else {
307317 e += 1;
308318 bool ok = true;
@@ -405,6 +415,15 @@ QDialog* WindowScriptingInterface::createForm(const QString& title, QScriptValue · 96 unmodified lines
405415
406416 } else if (item.property("type").toString() == "header") {
407417 formLayout->addRow(new QLabel(item.property("label").toString()));
418+ } else if (item.property("options").isArray()) {
419+ QComboBox* combo = new QComboBox();
420+ combo->setMinimumWidth(200);
421+ QStringList options = item.property("options").toVariant().toStringList();
422+ for (QStringList::const_iterator it = options.begin(); it != options.end(); it += 1) {
423+ combo->addItem(*it);
424+ }
425+ _combos.push_back(combo);
426+ formLayout->addRow(new QLabel(item.property("label").toString()), combo);
408427 } else {
409428 QLineEdit* edit = new QLineEdit(item.property("value").toString());
410429 edit->setMinimumWidth(200);