| 2985 | } |
| 2986 | |
| 2987 | void |
| 2988 | SequenceFileDialog::refreshPreviewAfterSelectionChange() |
| 2989 | { |
| 2990 | if ( !_preview->viewerUI->isVisible() ) { |
| 2991 | return; |
| 2992 | } |
| 2993 | |
| 2994 | std::string pattern = selectedFiles(); |
| 2995 | QString qpattern = QString::fromUtf8( pattern.c_str() ); |
| 2996 | std::string ext = QtCompat::removeFileExtension(qpattern).toLower().toStdString(); |
| 2997 | assert(_preview->viewerNode); |
| 2998 | |
| 2999 | NodePtr currentInput = _preview->viewerNode->getNode()->getInput(0); |
| 3000 | if (currentInput) { |
| 3001 | _preview->viewerNode->getNode()->disconnectInput(0); |
| 3002 | } |
| 3003 | |
| 3004 | _gui->getApp()->getProject()->setAutoSetProjectFormatEnabled(false); |
| 3005 | |
| 3006 | NodePtr reader = findOrCreatePreviewReader(ext); |
| 3007 | if (reader) { |
| 3008 | KnobPtr foundFileKnob = reader->getKnobByName(kOfxImageEffectFileParamName); |
| 3009 | KnobFile* fileKnob = dynamic_cast<KnobFile*>( foundFileKnob.get() ); |
| 3010 | if (fileKnob) { |
| 3011 | fileKnob->setValue(pattern); |
| 3012 | } |
| 3013 | _preview->viewerNode->getNode()->connectInput(reader, 0); |
| 3014 | |
| 3015 | double firstFrame, lastFrame; |
| 3016 | reader->getEffectInstance()->getFrameRange_public(reader->getHashValue(), &firstFrame, &lastFrame); |
| 3017 | _preview->viewerUI->setTimelineBounds(firstFrame, lastFrame); |
| 3018 | _preview->viewerUI->centerOn(firstFrame, lastFrame); |
| 3019 | } |
| 3020 | _preview->viewerUI->getInternalNode()->renderCurrentFrame(true); |
| 3021 | } |
| 3022 | |
| 3023 | ///Reset everything as it was prior to the dialog being opened, also avoid the nodes being deleted |
| 3024 | void |
nothing calls this directly
no test coverage detected