| 2922 | } |
| 2923 | |
| 2924 | NodePtr |
| 2925 | SequenceFileDialog::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 | |
| 2972 | void |
| 2973 | SequenceFileDialog::refreshPreviewAfterSelectionChange() |
nothing calls this directly
no test coverage detected