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

Method createReadNode

Engine/PrecompNode.cpp:524–599  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

522}
523
524void
525PrecompNodePrivate::createReadNode()
526{
527 NodePtr oldReadNode;
528 {
529 QMutexLocker k(&dataMutex);
530 oldReadNode = readNode;
531 }
532
533 if (oldReadNode) {
534 //Ensure it is no longer part of the tree
535 oldReadNode->destroyNode(false, false);
536
537
538 //Reset the pointer
539 QMutexLocker k(&dataMutex);
540 readNode.reset();
541 }
542
543 NodePtr writeNode = getWriteNodeFromPreComp();
544 if (!writeNode) {
545 return;
546 }
547
548 KnobIPtr fileNameKnob = writeNode->getKnobByName(kOfxImageEffectFileParamName);
549 if (!fileNameKnob) {
550 return;
551 }
552
553 KnobOutputFile* fileKnob = dynamic_cast<KnobOutputFile*>( fileNameKnob.get() );
554 if (!fileKnob) {
555 return;
556 }
557
558 std::string pattern = fileKnob->getValue();
559 QString qpattern = QString::fromUtf8( pattern.c_str() );
560 std::string ext = QtCompat::removeFileExtension(qpattern).toLower().toStdString();
561 std::string found = appPTR->getReaderPluginIDForFileType(ext);
562 if ( found.empty() ) {
563 std::stringstream ss;
564 ss << tr("No plugin capable of decoding %1 was found")
565 .arg( QString::fromUtf8( ext.c_str() ) ).toStdString();
566 Dialogs::errorDialog( tr("Pre-Comp").toStdString(), ss.str() );
567
568 return;
569 }
570
571 QString readPluginID = QString::fromUtf8( found.c_str() );
572 QString fixedNamePrefix = QString::fromUtf8( _publicInterface->getScriptName_mt_safe().c_str() );
573 fixedNamePrefix.append( QLatin1Char('_') );
574 fixedNamePrefix.append( QString::fromUtf8("readNode") );
575 fixedNamePrefix.append( QLatin1Char('_') );
576
577 CreateNodeArgs args( readPluginID.toStdString(), app.lock()->getProject() );
578 args.setProperty<bool>(kCreateNodeArgsPropOutOfProject, true);
579 args.setProperty<bool>(kCreateNodeArgsPropNoNodeGUI, true);
580 args.setProperty<std::string>(kCreateNodeArgsPropNodeInitialName, fixedNamePrefix.toStdString());
581 args.addParamDefaultValue<std::string>(kOfxImageEffectFileParamName, pattern);

Callers 1

knobChangedMethod · 0.45

Calls 15

removeFileExtensionFunction · 0.85
destroyNodeMethod · 0.80
toStdStringMethod · 0.80
emptyMethod · 0.80
appendMethod · 0.80
getProjectMethod · 0.80
setPrecompNodeMethod · 0.80
resetMethod · 0.45
getKnobByNameMethod · 0.45
getMethod · 0.45
getValueMethod · 0.45

Tested by

no test coverage detected