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

Method findOrCreatePreviewReader

Gui/SequenceFileDialog.cpp:2924–2970  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2922}
2923
2924NodePtr
2925SequenceFileDialog::findOrCreatePreviewReader(const std::string& filetype)
2926{
2927#ifndef NATRON_ENABLE_IO_META_NODES
2928 std::map<std::string, std::string> readersForFormat;
2929 appPTR->getCurrentSettings()->getFileFormatsForReadingAndReader(&readersForFormat);
2930 if ( !filetype.empty() ) {
2931 std::map<std::string, std::string>::iterator found = readersForFormat.find(filetype);
2932 if ( found == readersForFormat.end() ) {
2933 return NodePtr();
2934 }
2935 std::map<std::string, NodePtr>::iterator foundReader = _preview->readerNodes.find(found->second);
2936 if ( foundReader == _preview->readerNodes.end() ) {
2937 CreateNodeArgs args( QString::fromUtf8( found->second.c_str() ), eCreateNodeReasonInternal, NodeCollectionPtr() );
2938 args.fixedName = QString::fromUtf8(NATRON_FILE_DIALOG_PREVIEW_READER_NAME) + QString::fromUtf8( found->first.c_str() );
2939 args.createGui = false;
2940 args.addToProject = false;
2941 NodePtr reader = _gui->getApp()->createNode(args);
2942 if (reader) {
2943 _preview->readerNodes.insert( std::make_pair(found->second, reader) );
2944 }
2945
2946 return reader;
2947 } else {
2948 return foundReader->second;
2949 }
2950 }
2951
2952 return NodePtr();
2953#else
2954 if (_preview->readerNode) {
2955 return _preview->readerNode;
2956 }
2957 Q_UNUSED(filetype);
2958 CreateNodeArgs args( PLUGINID_NATRON_READ, NodeCollectionPtr() );
2959 args.setProperty<bool>(kCreateNodeArgsPropOutOfProject, true);
2960 args.setProperty<bool>(kCreateNodeArgsPropNoNodeGUI, true);
2961 args.setProperty<bool>(kCreateNodeArgsPropSilent, true);
2962 args.setProperty<std::string>(kCreateNodeArgsPropNodeInitialName, NATRON_FILE_DIALOG_PREVIEW_READER_NAME);
2963 NodePtr reader = _gui->getApp()->createNode(args);
2964 if (reader) {
2965 _preview->readerNode = reader;
2966 }
2967
2968 return _preview->readerNode;
2969#endif
2970}
2971
2972void
2973SequenceFileDialog::refreshPreviewAfterSelectionChange()

Callers

nothing calls this directly

Calls 7

getCurrentSettingsMethod · 0.80
emptyMethod · 0.80
findMethod · 0.45
endMethod · 0.45
createNodeMethod · 0.45
getAppMethod · 0.45
insertMethod · 0.45

Tested by

no test coverage detected