| 2970 | } |
| 2971 | |
| 2972 | void |
| 2973 | SequenceFileDialog::refreshPreviewAfterSelectionChange() |
| 2974 | { |
| 2975 | if ( !_preview->viewerUI->isVisible() ) { |
| 2976 | return; |
| 2977 | } |
| 2978 | |
| 2979 | std::string pattern = selectedFiles(); |
| 2980 | QString qpattern = QString::fromUtf8( pattern.c_str() ); |
| 2981 | std::string ext = QtCompat::removeFileExtension(qpattern).toLower().toStdString(); |
| 2982 | assert(_preview->viewerNode); |
| 2983 | |
| 2984 | NodePtr currentInput = _preview->viewerNode->getNode()->getInput(0); |
| 2985 | if (currentInput) { |
| 2986 | _preview->viewerNode->getNode()->disconnectInput(0); |
| 2987 | } |
| 2988 | |
| 2989 | _gui->getApp()->getProject()->setAutoSetProjectFormatEnabled(false); |
| 2990 | |
| 2991 | NodePtr reader = findOrCreatePreviewReader(ext); |
| 2992 | if (reader) { |
| 2993 | KnobIPtr foundFileKnob = reader->getKnobByName(kOfxImageEffectFileParamName); |
| 2994 | KnobFile* fileKnob = dynamic_cast<KnobFile*>( foundFileKnob.get() ); |
| 2995 | if (fileKnob) { |
| 2996 | fileKnob->setValue(pattern); |
| 2997 | } |
| 2998 | _preview->viewerNode->getNode()->connectInput(reader, 0); |
| 2999 | |
| 3000 | double firstFrame, lastFrame; |
| 3001 | reader->getEffectInstance()->getFrameRange_public(reader->getHashValue(), &firstFrame, &lastFrame); |
| 3002 | _preview->viewerUI->setTimelineBounds(firstFrame, lastFrame); |
| 3003 | _preview->viewerUI->centerOn(firstFrame, lastFrame); |
| 3004 | } |
| 3005 | _preview->viewerUI->getInternalNode()->renderCurrentFrame(true); |
| 3006 | } |
| 3007 | |
| 3008 | ///Reset everything as it was prior to the dialog being opened, also avoid the nodes being deleted |
| 3009 | void |
nothing calls this directly
no test coverage detected