| 1376 | } |
| 1377 | |
| 1378 | void |
| 1379 | AddKnobDialogPrivate::createKnobFromSelection(int index, |
| 1380 | int optionalGroupIndex) |
| 1381 | { |
| 1382 | AddKnobDialog::ParamDataTypeEnum t = (AddKnobDialog::ParamDataTypeEnum)index; |
| 1383 | |
| 1384 | assert(!knob); |
| 1385 | std::string label = labelLineEdit->text().toStdString(); |
| 1386 | int dim = AddKnobDialog::dataTypeDim(t); |
| 1387 | switch (t) { |
| 1388 | case AddKnobDialog::eParamDataTypeInteger: |
| 1389 | case AddKnobDialog::eParamDataTypeInteger2D: |
| 1390 | case AddKnobDialog::eParamDataTypeInteger3D: { |
| 1391 | //int |
| 1392 | KnobIntPtr k = AppManager::createKnob<KnobInt>(panel->getHolder(), label, dim, false); |
| 1393 | setKnobMinMax<int>( k.get() ); |
| 1394 | knob = k; |
| 1395 | break; |
| 1396 | } |
| 1397 | case AddKnobDialog::eParamDataTypeFloatingPoint: |
| 1398 | case AddKnobDialog::eParamDataTypeFloatingPoint2D: |
| 1399 | case AddKnobDialog::eParamDataTypeFloatingPoint3D: { |
| 1400 | //double |
| 1401 | int dim = index - 2; |
| 1402 | KnobDoublePtr k = AppManager::createKnob<KnobDouble>(panel->getHolder(), label, dim, false); |
| 1403 | if ( k->getDimension() == 2 && usePointInteract->isChecked() ) { |
| 1404 | k->setHasHostOverlayHandle(true); |
| 1405 | } |
| 1406 | setKnobMinMax<double>( k.get() ); |
| 1407 | knob = k; |
| 1408 | break; |
| 1409 | } |
| 1410 | case AddKnobDialog::eParamDataTypeColorRGB: |
| 1411 | case AddKnobDialog::eParamDataTypeColorRGBA: { |
| 1412 | // color |
| 1413 | int dim = index - 3; |
| 1414 | KnobColorPtr k = AppManager::createKnob<KnobColor>(panel->getHolder(), label, dim, false); |
| 1415 | setKnobMinMax<double>( k.get() ); |
| 1416 | knob = k; |
| 1417 | break; |
| 1418 | } |
| 1419 | case AddKnobDialog::eParamDataTypeChoice: { |
| 1420 | KnobChoicePtr k = AppManager::createKnob<KnobChoice>(panel->getHolder(), label, 1, false); |
| 1421 | QString entriesRaw = menuItemsEdit->toPlainText(); |
| 1422 | QTextStream stream(&entriesRaw); |
| 1423 | std::vector<ChoiceOption> entries; |
| 1424 | |
| 1425 | while ( !stream.atEnd() ) { |
| 1426 | QString line = stream.readLine(); |
| 1427 | |
| 1428 | int foundHelp = line.indexOf( QString::fromUtf8("<?>") ); |
| 1429 | if (foundHelp != -1) { |
| 1430 | QString entry = line.mid(0, foundHelp); |
| 1431 | QString help = line.mid(foundHelp + 3, -1); |
| 1432 | |
| 1433 | entries.push_back(ChoiceOption( entry.toStdString(), "", help.toStdString()) ); |
| 1434 | } else { |
| 1435 | entries.push_back( ChoiceOption(line.toStdString(), "", "") ); |
no test coverage detected