MCPcopy Create free account
hub / github.com/NatronGitHub/Natron / createKnobFromSelection

Method createKnobFromSelection

Gui/AddKnobDialog.cpp:1378–1594  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1376}
1377
1378void
1379AddKnobDialogPrivate::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(), "", "") );

Callers 1

onOkClickedMethod · 0.80

Calls 15

ChoiceOptionFunction · 0.85
toStdStringMethod · 0.80
isCheckedMethod · 0.80
populateChoicesMethod · 0.80
setAsMultiLineMethod · 0.80
setUsesRichTextMethod · 0.80
setAsLabelMethod · 0.80
setAsOutputImageFileMethod · 0.80
setMultiPathMethod · 0.80
setAsUserKnobMethod · 0.80
setSecretByDefaultMethod · 0.80

Tested by

no test coverage detected