void RenderingDialog::slotSectionModeChanged() { ui->timeStart->setVisible(ui->radioSection->isChecked()); ui->timeEnd->setVisible(ui->radioSection->isChecked()); ui->sectionMessage->setVisible(ui->radioSection->isChecked()); ui->cbStartTag->setVisible(ui->radioTagSection->isChecked()); ui->cbEndTag->setVisible(ui->radioTagSection->isChecked()); ui->lblcTo->setVisible(ui->radioSection->isChecked() || ui->radioTagSection->isChecked()); slotValidate(); }
//--------------------------------- PluginKateXMLCheckView::PluginKateXMLCheckView( KTextEditor::Plugin *plugin, KTextEditor::MainWindow *mainwin) : QObject(mainwin) , KXMLGUIClient() , m_mainWindow(mainwin) { KXMLGUIClient::setComponentName(QLatin1String("katexmlcheck"), i18n ("Kate XML check")); // where i18n resources? setXMLFile(QLatin1String("ui.rc")); dock = m_mainWindow->createToolView(plugin, "kate_plugin_xmlcheck_ouputview", KTextEditor::MainWindow::Bottom, QIcon::fromTheme("misc"), i18n("XML Checker Output")); listview = new QTreeWidget( dock ); m_tmp_file=0; QAction *a = actionCollection()->addAction("xml_check"); a->setText(i18n("Validate XML")); connect(a, SIGNAL(triggered()), this, SLOT(slotValidate())); // TODO?: //(void) new KAction ( i18n("Indent XML"), KShortcut(), this, // SLOT(slotIndent()), actionCollection(), "xml_indent" ); listview->setFocusPolicy(Qt::NoFocus); QStringList headers; headers << i18n("#"); headers << i18n("Line"); headers << i18n("Column"); headers << i18n("Message"); listview->setHeaderLabels(headers); listview->setRootIsDecorated(false); connect(listview, SIGNAL(itemClicked(QTreeWidgetItem*,int)), SLOT(slotClicked(QTreeWidgetItem*,int))); QHeaderView *header = listview->header(); header->setSectionResizeMode(0, QHeaderView::ResizeToContents); header->setSectionResizeMode(1, QHeaderView::ResizeToContents); header->setSectionResizeMode(2, QHeaderView::ResizeToContents); /* TODO?: invalidate the listview when document has changed Kate::View *kv = application()->activeMainWindow()->activeView(); if( ! kv ) { qDebug() << "Warning: no Kate::View"; return; } connect(kv, SIGNAL(modifiedChanged()), this, SLOT(slotUpdate())); */ connect(&m_proc, SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(slotProcExited(int,QProcess::ExitStatus))); // we currently only want errors: m_proc.setProcessChannelMode(QProcess::SeparateChannels); // m_proc.setProcessChannelMode(QProcess::ForwardedChannels); // For Debugging. Do not use this. mainwin->guiFactory()->addClient(this); }
void RenderingDialog::slotUpdateRenderTarget() { ui->groupImages->setVisible(ui->radioImages->isChecked()); ui->groupVideo->setVisible(ui->radioVideo->isChecked()); slotValidate(); }
RenderingDialog::RenderingDialog(Project_sV *project, QWidget *parent) : QDialog(parent), ui(new Ui::RenderingDialog), m_project(project) { ui->setupUi(this); // Render section m_sectionGroup = new QButtonGroup(this); m_sectionGroup->addButton(ui->radioFullProject); m_sectionGroup->addButton(ui->radioSection); m_sectionGroup->addButton(ui->radioTagSection); QString mode(m_project->preferences()->renderSectionMode()); if (mode == "full") { ui->radioFullProject->setChecked(true); } else if (mode == "expr") { ui->radioSection->setChecked(true); } else if (mode == "tags") { ui->radioTagSection->setChecked(true); } else { qDebug() << "Unknown render section mode: " << mode; Q_ASSERT(false); } // Optical flow ui->lambda->setValue(m_project->preferences()->flowV3DLambda()); // Motion blur ui->maxSamples->setValue(m_project->motionBlur()->maxSamples()); ui->slowmoSamples->setValue(m_project->motionBlur()->slowmoSamples()); m_blurGroup = new QButtonGroup(this); m_blurGroup->addButton(ui->radioBlurConvolution); m_blurGroup->addButton(ui->radioBlurStacking); m_blurGroup->addButton(ui->radioBlurNearest); if (m_project->preferences()->renderMotionblurType() == MotionblurType_Convolving) { ui->radioBlurConvolution->setChecked(true); } else if (m_project->preferences()->renderMotionblurType() == MotionblurType_Stacking) { ui->radioBlurStacking->setChecked(true); } else { ui->radioBlurNearest->setChecked(true); } fillTagLists(); // Output target type m_targetGroup = new QButtonGroup(this); m_targetGroup->addButton(ui->radioImages); m_targetGroup->addButton(ui->radioVideo); if (m_project->preferences()->renderTarget() == "images") { ui->radioImages->setChecked(true); } else { ui->radioVideo->setChecked(true); } // Output target files ui->imagesOutputDir->setText(m_project->preferences()->imagesOutputDir()); ui->imagesFilenamePattern->setText(m_project->preferences()->imagesFilenamePattern()); ui->videoOutputFile->setText(m_project->preferences()->videoFilename()); ui->vcodec->setText(m_project->preferences()->videoCodec()); // FPS QString fps = QVariant(m_project->preferences()->renderFPS().fps()).toString(); if (ui->cbFps->findText(fps) < 0 && fps.toFloat() > 0) { ui->cbFps->addItem(fps); } ui->cbFps->setCurrentIndex(ui->cbFps->findText(fps)); // Output size ui->cbSize->addItem("Original size", QVariant(FrameSize_Orig)); ui->cbSize->addItem("Small", QVariant(FrameSize_Small)); ui->cbSize->setCurrentIndex(ui->cbSize->findData(QVariant(m_project->preferences()->renderFrameSize()))); // Interpolation type ui->cbInterpolation->addItem(toString(InterpolationType_Forward), QVariant(InterpolationType_Forward)); ui->cbInterpolation->addItem(toString(InterpolationType_ForwardNew), QVariant(InterpolationType_ForwardNew)); ui->cbInterpolation->addItem(toString(InterpolationType_Twoway), QVariant(InterpolationType_Twoway)); ui->cbInterpolation->addItem(toString(InterpolationType_TwowayNew), QVariant(InterpolationType_TwowayNew)); ui->cbInterpolation->addItem(toString(InterpolationType_Bezier), QVariant(InterpolationType_Bezier)); if (ui->cbInterpolation->findData(QVariant(m_project->preferences()->renderInterpolationType())) >= 0) { ui->cbInterpolation->setCurrentIndex(ui->cbInterpolation->findData(QVariant(m_project->preferences()->renderInterpolationType()))); } bool b = true; b &= connect(m_targetGroup, SIGNAL(buttonClicked(int)), this, SLOT(slotUpdateRenderTarget())); b &= connect(m_sectionGroup, SIGNAL(buttonClicked(int)), this, SLOT(slotSectionModeChanged())); b &= connect(ui->timeStart, SIGNAL(textChanged(QString)), this, SLOT(slotValidate())); b &= connect(ui->timeEnd, SIGNAL(textChanged(QString)), this, SLOT(slotValidate())); b &= connect(ui->cbStartTag, SIGNAL(currentIndexChanged(int)), this, SLOT(slotTagIndexChanged())); b &= connect(ui->cbEndTag, SIGNAL(currentIndexChanged(int)), this, SLOT(slotTagIndexChanged())); b &= connect(ui->bAbort, SIGNAL(clicked()), this, SLOT(reject())); b &= connect(ui->bOk, SIGNAL(clicked()), this, SLOT(accept())); b &= connect(ui->bSave, SIGNAL(clicked()), this, SLOT(slotSaveSettings())); b &= connect(ui->cbFps, SIGNAL(editTextChanged(QString)), this, SLOT(slotValidate())); b &= connect(ui->imagesOutputDir, SIGNAL(textChanged(QString)), this, SLOT(slotValidate())); b &= connect(ui->imagesFilenamePattern, SIGNAL(textChanged(QString)), this, SLOT(slotValidate())); b &= connect(ui->videoOutputFile, SIGNAL(textChanged(QString)), this, SLOT(slotValidate())); b &= connect(ui->bImagesBrowseDir, SIGNAL(clicked()), this, SLOT(slotBrowseImagesDir())); b &= connect(ui->bBrowseVideoOutputFile, SIGNAL(clicked()), this, SLOT(slotBrowseVideoFile())); Q_ASSERT(b); // Restore rendering start/end int index; index = ui->cbStartTag->findText(m_project->preferences()->renderStartTag()); if (index >= 0) { ui->cbStartTag->setCurrentIndex(index); } index = ui->cbEndTag->findText(m_project->preferences()->renderEndTag()); if (index >= 0) { ui->cbEndTag->setCurrentIndex(index); } if (m_project->preferences()->renderStartTime().length() > 0) { ui->timeStart->setText(m_project->preferences()->renderStartTime()); } if (m_project->preferences()->renderEndTime().length() > 0) { ui->timeEnd->setText(m_project->preferences()->renderEndTime()); } #if QT_VERSION >= 0x040700 ui->timeStart->setPlaceholderText(QVariant(m_project->nodes()->startTime()).toString()); ui->timeEnd->setPlaceholderText(QVariant(m_project->nodes()->endTime()).toString()); #endif slotUpdateRenderTarget(); slotSectionModeChanged(); }
RenderTask_sV* RenderingDialog::buildTask() { if (slotValidate()) { slotSaveSettings(); ProjectPreferences_sV *prefs = m_project->preferences(); const QString imagesOutputDir = ui->imagesOutputDir->text(); const QString imagesFilenamePattern = ui->imagesFilenamePattern->text(); RenderTask_sV *task = new RenderTask_sV(m_project); task->renderPreferences().setFps(prefs->renderFPS()); task->renderPreferences().size = prefs->renderFrameSize(); task->renderPreferences().interpolation = prefs->renderInterpolationType(); task->renderPreferences().motionblur = prefs->renderMotionblurType(); if (ui->radioImages->isChecked()) { ImagesRenderTarget_sV *renderTarget = new ImagesRenderTarget_sV(task); renderTarget->setFilenamePattern(imagesFilenamePattern); renderTarget->setTargetDir(imagesOutputDir); task->setRenderTarget(renderTarget); } else if (ui->radioVideo->isChecked()) { VideoRenderTarget_sV *renderTarget = new VideoRenderTarget_sV(task); renderTarget->setTargetFile(ui->videoOutputFile->text()); renderTarget->setVcodec(ui->vcodec->text()); task->setRenderTarget(renderTarget); } else { qDebug() << "Render target is neither images nor video. Not implemented?"; Q_ASSERT(false); } if (ui->radioTagSection->isChecked()) { bool b; qreal start = ui->cbStartTag->itemData(ui->cbStartTag->currentIndex()).toFloat(&b); Q_ASSERT(b); qreal end = ui->cbEndTag->itemData(ui->cbEndTag->currentIndex()).toFloat(&b); Q_ASSERT(b); qDebug() << QString("Rendering tag section from %1 (%2) to %3 (%4)") .arg(ui->cbStartTag->currentText()) .arg(start).arg(ui->cbEndTag->currentText()).arg(end); Q_ASSERT(start <= end); task->setTimeRange(start, end); } else if (ui->radioSection->isChecked()) { qDebug() << QString("Rendering time section from %1 to %3") .arg(ui->cbStartTag->currentText()) .arg(ui->cbEndTag->currentText()); task->setTimeRange(ui->timeStart->text(), ui->timeEnd->text()); } QString mode; if (ui->radioFullProject->isChecked()) { mode = "full"; } else if (ui->radioSection->isChecked()) { mode = "time"; m_project->preferences()->renderStartTime() = ui->timeStart->text(); m_project->preferences()->renderEndTime() = ui->timeEnd->text(); } else if (ui->radioTagSection->isChecked()) { mode = "tags"; m_project->preferences()->renderStartTag() = ui->cbStartTag->currentText(); m_project->preferences()->renderEndTag() = ui->cbEndTag->currentText(); } else { qDebug() << "No section mode selected?"; Q_ASSERT(false); } return task; } else { return NULL; } }
cKeyframeAnimation::cKeyframeAnimation(cInterface *_interface, cKeyframes *_frames, cImage *_image, QWidget *_imageWidget, cParameterContainer *_params, cFractalContainer *_fractal, QObject *parent) : QObject(parent), mainInterface(_interface), keyframes(_frames) { image = _image; imageWidget = _imageWidget; params = _params; fractalParams = _fractal; if (mainInterface->mainWindow) { ui = mainInterface->mainWindow->ui; QApplication::connect(ui->pushButton_add_keyframe, SIGNAL(clicked()), this, SLOT(slotAddKeyframe())); QApplication::connect(ui->pushButton_insert_keyframe, SIGNAL(clicked()), this, SLOT(slotInsertKeyframe())); QApplication::connect(ui->pushButton_delete_keyframe, SIGNAL(clicked()), this, SLOT(slotDeleteKeyframe())); QApplication::connect(ui->pushButton_modify_keyframe, SIGNAL(clicked()), this, SLOT(slotModifyKeyframe())); QApplication::connect(ui->pushButton_render_keyframe_animation, SIGNAL(clicked()), this, SLOT(slotRenderKeyframes())); QApplication::connect(ui->pushButton_delete_all_keyframe_images, SIGNAL(clicked()), this, SLOT(slotDeleteAllImages())); QApplication::connect(ui->pushButton_show_keyframe_animation, SIGNAL(clicked()), this, SLOT(slotShowAnimation())); QApplication::connect(ui->pushButton_refresh_keyframe_table, SIGNAL(clicked()), this, SLOT(slotRefreshTable())); QApplication::connect(ui->pushButton_keyframe_to_flight_export, SIGNAL(clicked()), this, SLOT(slotExportKeyframesToFlight())); QApplication::connect(ui->pushButton_check_for_collisions, SIGNAL(clicked()), this, SLOT(slotValidate())); QApplication::connect(ui->pushButton_set_constant_target_distance, SIGNAL(clicked()), this, SLOT(slotSetConstantTargetDistance())); QApplication::connect(ui->button_selectAnimKeyframeImageDir, SIGNAL(clicked()), this, SLOT(slotSelectKeyframeAnimImageDir())); QApplication::connect(ui->tableWidget_keyframe_animation, SIGNAL(cellChanged(int, int)), this, SLOT(slotTableCellChanged(int, int))); QApplication::connect(ui->spinboxInt_keyframe_first_to_render, SIGNAL(valueChanged(int)), this, SLOT(slotMovedSliderFirstFrame(int))); QApplication::connect(ui->spinboxInt_keyframe_last_to_render, SIGNAL(valueChanged(int)), this, SLOT(slotMovedSliderLastFrame(int))); QApplication::connect(ui->spinboxInt_frames_per_keyframe, SIGNAL(valueChanged(int)), this, SLOT(UpdateLimitsForFrameRange())); QApplication::connect(ui->tableWidget_keyframe_animation, SIGNAL(cellDoubleClicked(int, int)), this, SLOT(slotCellDoubleClicked(int, int))); QApplication::connect(this, SIGNAL(QuestionMessage(const QString, const QString, QMessageBox::StandardButtons, QMessageBox::StandardButton*)), mainInterface->mainWindow, SLOT(slotQuestionMessage(const QString, const QString, QMessageBox::StandardButtons, QMessageBox::StandardButton*))); table = ui->tableWidget_keyframe_animation; //add default parameters for animation if (keyframes->GetListOfUsedParameters().size() == 0) { keyframes->AddAnimatedParameter("camera", params->GetAsOneParameter("camera")); keyframes->AddAnimatedParameter("target", params->GetAsOneParameter("target")); keyframes->AddAnimatedParameter("camera_top", params->GetAsOneParameter("camera_top")); if (mainInterface->mainWindow) PrepareTable(); } }
RenderingDialog::RenderingDialog(Project_sV *project, QWidget *parent) : QDialog(parent), ui(new Ui::RenderingDialog), m_project(project) { ui->setupUi(this); // Render section m_sectionGroup = new QButtonGroup(this); m_sectionGroup->addButton(ui->radioFullProject); m_sectionGroup->addButton(ui->radioSection); m_sectionGroup->addButton(ui->radioTagSection); QString mode(m_project->preferences()->renderSectionMode()); if (mode == "full") { ui->radioFullProject->setChecked(true); } else if (mode == "expr") { ui->radioSection->setChecked(true); } else if (mode == "tags") { ui->radioTagSection->setChecked(true); } else { qDebug() << "Unknown render section mode: " << mode; Q_ASSERT(false); } // Optical flow ui->lambda->setValue(m_project->preferences()->flowV3DLambda()); QSettings settings; //TODO: better define in project ? ui->opticalFlowAlgo->clear(); QString flow_method = settings.value("preferences/flowMethod", "OpenCV-CPU").toString(); if (flow_method == "V3D") { ui->opticalFlowAlgo->addItem(tr("flowBuilder"), QVariant(1)); } else { ui->opticalFlowAlgo->addItem(tr("OpenCV - Farneback"), QVariant(2)); ui->opticalFlowAlgo->addItem(tr("OpenCV - Dual TVL1"), QVariant(3)); } connect(ui->opticalFlowAlgo, SIGNAL(activated(int)), ui->flowStackedWidget, SLOT(setCurrentIndex(int))); QWidget *flowbuilder_pane = ui->flowStackedWidget->widget(0); QWidget *farneback_pane = ui->flowStackedWidget->widget(1); QWidget *tvl1_pane = ui->flowStackedWidget->widget(2); if (flow_method == "V3D") { ui->opticalFlowAlgo->setCurrentIndex(0); ui->flowStackedWidget->setCurrentIndex(0); ui->flowStackedWidget->removeWidget(farneback_pane); ui->flowStackedWidget->removeWidget(tvl1_pane); } else { int algo = settings.value("preferences/preferredOpenCVAlgo", 0).toInt(); ui->opticalFlowAlgo->setCurrentIndex(algo); ui->flowStackedWidget->setCurrentIndex(algo+1); ui->flowStackedWidget->removeWidget(flowbuilder_pane); } connect(ui->clearflow, SIGNAL(clicked()), this, SLOT(slotClearFlowCache())); // Motion blur ui->maxSamples->setValue(m_project->motionBlur()->maxSamples()); ui->slowmoSamples->setValue(m_project->motionBlur()->slowmoSamples()); m_blurGroup = new QButtonGroup(this); m_blurGroup->addButton(ui->radioBlurConvolution); m_blurGroup->addButton(ui->radioBlurStacking); m_blurGroup->addButton(ui->radioBlurNearest); if (m_project->preferences()->renderMotionblurType() == MotionblurType_Convolving) { ui->radioBlurConvolution->setChecked(true); } else if (m_project->preferences()->renderMotionblurType() == MotionblurType_Stacking) { ui->radioBlurStacking->setChecked(true); } else { ui->radioBlurNearest->setChecked(true); } fillTagLists(); // Output target type m_targetGroup = new QButtonGroup(this); m_targetGroup->addButton(ui->radioImages); m_targetGroup->addButton(ui->radioVideo); if (m_project->preferences()->renderTarget() == "images") { ui->radioImages->setChecked(true); } else { ui->radioVideo->setChecked(true); } // Output target files ui->imagesOutputDir->setText(m_project->preferences()->imagesOutputDir()); ui->imagesFilenamePattern->setText(m_project->preferences()->imagesFilenamePattern()); ui->videoOutputFile->setText(m_project->preferences()->videoFilename()); ui->vcodec->setText(m_project->preferences()->videoCodec()); // FPS QString fps = QVariant(m_project->preferences()->renderFPS().fps()).toString(); if (ui->cbFps->findText(fps) < 0 && fps.toFloat() > 0) { ui->cbFps->addItem(fps); } ui->cbFps->setCurrentIndex(ui->cbFps->findText(fps)); // Output size ui->cbSize->addItem(tr("Original size"), QVariant(FrameSize_Orig)); ui->cbSize->addItem(tr("Small"), QVariant(FrameSize_Small)); ui->cbSize->setCurrentIndex(ui->cbSize->findData(QVariant(m_project->preferences()->renderFrameSize()))); // Interpolation type ui->cbInterpolation->addItem(toString(InterpolationType_Forward), QVariant(InterpolationType_Forward)); ui->cbInterpolation->addItem(toString(InterpolationType_ForwardNew), QVariant(InterpolationType_ForwardNew)); ui->cbInterpolation->addItem(toString(InterpolationType_Twoway), QVariant(InterpolationType_Twoway)); ui->cbInterpolation->addItem(toString(InterpolationType_TwowayNew), QVariant(InterpolationType_TwowayNew)); ui->cbInterpolation->addItem(toString(InterpolationType_Bezier), QVariant(InterpolationType_Bezier)); ui->cbInterpolation->addItem(toString(InterpolationType_None), QVariant(InterpolationType_None)); ui->cbInterpolation->addItem(toString(InterpolationType_Nearest), QVariant(InterpolationType_Nearest)); if (ui->cbInterpolation->findData(QVariant(m_project->preferences()->renderInterpolationType())) >= 0) { ui->cbInterpolation->setCurrentIndex(ui->cbInterpolation->findData(QVariant(m_project->preferences()->renderInterpolationType()))); } connect(m_targetGroup, SIGNAL(buttonClicked(int)), this, SLOT(slotUpdateRenderTarget())); connect(m_sectionGroup, SIGNAL(buttonClicked(int)), this, SLOT(slotSectionModeChanged())); connect(ui->timeStart, SIGNAL(textChanged(QString)), this, SLOT(slotValidate())); connect(ui->timeEnd, SIGNAL(textChanged(QString)), this, SLOT(slotValidate())); connect(ui->cbStartTag, SIGNAL(currentIndexChanged(int)), this, SLOT(slotTagIndexChanged())); connect(ui->cbEndTag, SIGNAL(currentIndexChanged(int)), this, SLOT(slotTagIndexChanged())); connect(ui->bAbort, SIGNAL(clicked()), this, SLOT(reject())); connect(ui->bOk, SIGNAL(clicked()), this, SLOT(accept())); connect(ui->bSave, SIGNAL(clicked()), this, SLOT(slotSaveSettings())); connect(ui->cbFps, SIGNAL(editTextChanged(QString)), this, SLOT(slotValidate())); connect(ui->imagesOutputDir, SIGNAL(textChanged(QString)), this, SLOT(slotValidate())); connect(ui->imagesFilenamePattern, SIGNAL(textChanged(QString)), this, SLOT(slotValidate())); connect(ui->videoOutputFile, SIGNAL(textChanged(QString)), this, SLOT(slotValidate())); connect(ui->bImagesBrowseDir, SIGNAL(clicked()), this, SLOT(slotBrowseImagesDir())); connect(ui->bBrowseVideoOutputFile, SIGNAL(clicked()), this, SLOT(slotBrowseVideoFile())); // Restore rendering start/end int index = ui->cbStartTag->findText(m_project->preferences()->renderStartTag()); if (index >= 0) { ui->cbStartTag->setCurrentIndex(index); } index = ui->cbEndTag->findText(m_project->preferences()->renderEndTag()); if (index >= 0) { ui->cbEndTag->setCurrentIndex(index); } if (m_project->preferences()->renderStartTime().length() > 0) { ui->timeStart->setText(m_project->preferences()->renderStartTime()); } if (m_project->preferences()->renderEndTime().length() > 0) { ui->timeEnd->setText(m_project->preferences()->renderEndTime()); } #if QT_VERSION >= 0x040700 ui->timeStart->setPlaceholderText(QVariant(m_project->nodes()->startTime()).toString()); ui->timeEnd->setPlaceholderText(QVariant(m_project->nodes()->endTime()).toString()); #endif #ifndef USE_QTKIT ui->use_qt->setChecked(false); ui->use_qt->setEnabled(false); #endif slotUpdateRenderTarget(); slotSectionModeChanged(); }
RenderTask_sV* RenderingDialog::buildTask() { if (!slotValidate()) { return NULL; } slotSaveSettings(); ProjectPreferences_sV *prefs = m_project->preferences(); const QString imagesOutputDir = ui->imagesOutputDir->text(); const QString imagesFilenamePattern = ui->imagesFilenamePattern->text(); RenderTask_sV *task = new RenderTask_sV(m_project); task->renderPreferences().setFps(prefs->renderFPS()); task->renderPreferences().size = prefs->renderFrameSize(); task->renderPreferences().interpolation = prefs->renderInterpolationType(); task->renderPreferences().motionblur = prefs->renderMotionblurType(); if (ui->radioImages->isChecked()) { ImagesRenderTarget_sV *renderTarget = new ImagesRenderTarget_sV(task); renderTarget->setFilenamePattern(imagesFilenamePattern); renderTarget->setTargetDir(imagesOutputDir); task->setRenderTarget(renderTarget); } else if (ui->radioVideo->isChecked()) { #ifdef USE_FFMPEG #if 0 newVideoRenderTarget *renderTarget = new newVideoRenderTarget(task); #else exportVideoRenderTarget *renderTarget = new exportVideoRenderTarget(task); #endif const bool use_qt = ui->use_qt->isChecked(); if (!use_qt) { qDebug() << "using classical FFMPEG"; renderTarget->setQT(0); } #else #warning "should not use this" VideoRenderTarget_sV *renderTarget = new VideoRenderTarget_sV(task); #endif // check if file exist QFile filetest(ui->videoOutputFile->text()); if (filetest.exists()) { int r = QMessageBox::warning(this, tr("slowmoUI"), tr("The file already exist.\n" "Do you want to overwrite it ?"), QMessageBox::Yes | QMessageBox::No); if (r == QMessageBox::Yes) { filetest.remove(); } else { //TODO: maybe should delete task ? return 0; } } renderTarget->setTargetFile(ui->videoOutputFile->text()); renderTarget->setVcodec(ui->vcodec->text()); task->setRenderTarget(renderTarget); } else { qDebug() << "Render target is neither images nor video. Not implemented?"; Q_ASSERT(false); } if (ui->radioTagSection->isChecked()) { bool b; qreal start = ui->cbStartTag->itemData(ui->cbStartTag->currentIndex()).toFloat(&b); Q_ASSERT(b); qreal end = ui->cbEndTag->itemData(ui->cbEndTag->currentIndex()).toFloat(&b); Q_ASSERT(b); qDebug() << QString("Rendering tag section from %1 (%2) to %3 (%4)") .arg(ui->cbStartTag->currentText()) .arg(start).arg(ui->cbEndTag->currentText()).arg(end); Q_ASSERT(start <= end); task->setTimeRange(start, end); } else if (ui->radioSection->isChecked()) { qDebug() << QString("Rendering time section from %1 to %3") .arg(ui->cbStartTag->currentText()) .arg(ui->cbEndTag->currentText()); task->setTimeRange(ui->timeStart->text(), ui->timeEnd->text()); } QString mode; if (ui->radioFullProject->isChecked()) { mode = "full"; } else if (ui->radioSection->isChecked()) { mode = "time"; m_project->preferences()->renderStartTime() = ui->timeStart->text(); m_project->preferences()->renderEndTime() = ui->timeEnd->text(); } else if (ui->radioTagSection->isChecked()) { mode = "tags"; m_project->preferences()->renderStartTag() = ui->cbStartTag->currentText(); m_project->preferences()->renderEndTag() = ui->cbEndTag->currentText(); } else { qDebug() << "No section mode selected?"; Q_ASSERT(false); } // set optical flow parameters QSettings settings; QString flow_method = settings.value("preferences/flowMethod", "OpenCV-CPU").toString(); if (flow_method == "V3D") { AbstractFlowSource_sV *flow_algo = m_project->flowSource(); flow_algo->setLambda(prefs->flowV3DLambda()); } else if (flow_method == "OpenCV-CPU" || flow_method == "OpenCV-OCL") { int algo_index = ui->opticalFlowAlgo->currentIndex(); qDebug() << "algo index is " << algo_index; FlowSourceOpenCV_sV *flow_algo = (FlowSourceOpenCV_sV *)m_project->flowSource(); switch (algo_index) { case 0: flow_algo->setupOpticalFlow( ui->FarnLevels->value(), ui->FarnWin->value(), ui->FarnPoly->value(), ui->FarnPyr->value(), ui->FarnPolyN->value() ); break; case 1: flow_algo->setupTVL1( ui->TVLtau->value(), ui->TVLlambda->value(), ui->TVLnscales->value(), ui->TVLwarps->value(), ui->TVLiterations->value(), ui->TVLepsilon->value() ); break; default: qDebug() << "no algo defined"; } } else { throw Error_sV("Unsupported Flow method"); } return task; }