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

Method createReadNode

Engine/PrecompNode.cpp:523–598  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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