Allow render without saving. (#360)

This commit is contained in:
Jeremy Bullock 2020-10-15 14:05:32 -06:00 committed by GitHub
parent 044b5f0c3e
commit 3054519170
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 49 additions and 10 deletions

View file

@ -13,6 +13,7 @@
<item>MI_SaveLevelAs</item>
<separator/>
<item>MI_Render</item>
<item>MI_SaveAndRender</item>
<separator/>
<item>MI_ShortcutPopup</item>
<separator/>

View file

@ -245,6 +245,7 @@
<separator/>
<command>MI_OutputSettings</command>
<command>MI_Render</command>
<command>MI_SaveAndRender</command>
<separator/>
<command>MI_FastRender</command>
</menu>

View file

@ -1811,7 +1811,12 @@ void MainWindow::defineActions() {
tr("Control the settings that will be used to preview the scene."));
menuAct->setIcon(createQIcon("preview_settings"));
menuAct = createMenuRenderAction(
MI_Render, tr("&Save and Render"), "Ctrl+Shift+R",
MI_Render, tr("&Render"), "Ctrl+Shift+R",
tr("Renders according to the settings and "
"location set in Output Settings."));
menuAct->setIcon(createQIcon("render"));
menuAct = createMenuRenderAction(
MI_SaveAndRender, tr("&Save and Render"), "",
tr("Saves the current scene and renders according to the settings and "
"location set in Output Settings."));
menuAct->setIcon(createQIcon("render"));

View file

@ -622,7 +622,7 @@ QMenuBar *StackedMenuBar::createFullMenuBar() {
addMenuItem(renderMenu, MI_SavePreviewedFrames);
renderMenu->addSeparator();
addMenuItem(renderMenu, MI_OutputSettings);
addMenuItem(renderMenu, MI_Render);
addMenuItem(renderMenu, MI_SaveAndRender);
renderMenu->addSeparator();
addMenuItem(renderMenu, MI_FastRender);

View file

@ -48,6 +48,7 @@
#define MI_OutputSettings "MI_OutputSettings"
#define MI_PreviewSettings "MI_PreviewSettings"
#define MI_Render "MI_Render"
#define MI_SaveAndRender "MI_SaveAndRender"
#define MI_FastRender "MI_FastRender"
#define MI_Preview "MI_Preview"
#define MI_SoundTrack "MI_SoundTrack"

View file

@ -222,14 +222,20 @@ OutputSettingsPopup::OutputSettingsPopup(bool isPreview)
QPushButton *removePresetButton = NULL;
m_dominantFieldOm = 0;
m_renderButton = new QPushButton(tr("Save and Render"), this);
if (isPreview) m_renderButton->setText("Preview");
m_renderButton = new QPushButton(tr("Render"), this);
m_saveAndRenderButton = new QPushButton(tr("Save and Render"), this);
if (isPreview) {
m_renderButton->setText("Preview");
m_saveAndRenderButton->hide();
}
if (!isPreview) {
showOtherSettingsButton = new QPushButton("", this);
otherSettingsLabel = new QLabel(tr("Other Settings"), this);
otherSettingsFrame = new QFrame(this);
m_renderButton->setIcon(createQIcon("render"));
m_renderButton->setIconSize(QSize(20, 20));
m_saveAndRenderButton->setIcon(createQIcon("render"));
m_saveAndRenderButton->setIconSize(QSize(20, 20));
// Board
m_addBoard = new DVGui::CheckBox(tr("Add Clapperboard"), this);
@ -612,7 +618,10 @@ OutputSettingsPopup::OutputSettingsPopup(bool isPreview)
advancedSettingsBox->setLayout(fileSetBoxLay);
m_topLayout->addWidget(advancedSettingsBox, 0);
m_topLayout->addWidget(m_renderButton);
QHBoxLayout* renderButtonLayout = new QHBoxLayout(this);
renderButtonLayout->addWidget(m_renderButton);
renderButtonLayout->addWidget(m_saveAndRenderButton);
m_topLayout->addLayout(renderButtonLayout);
m_topLayout->addStretch(1);
}
@ -632,6 +641,8 @@ OutputSettingsPopup::OutputSettingsPopup(bool isPreview)
}
ret = ret && connect(m_renderButton, SIGNAL(pressed()), this,
SLOT(onRenderClicked()));
ret = ret && connect(m_saveAndRenderButton, SIGNAL(pressed()), this,
SLOT(onSaveAndRenderClicked()));
ret = ret &&
connect(m_outputCameraOm, SIGNAL(currentIndexChanged(const QString &)),
SLOT(onCameraChanged(const QString &)));
@ -790,6 +801,12 @@ void OutputSettingsPopup::onRenderClicked() {
//-----------------------------------------------------------------------------
void OutputSettingsPopup::onSaveAndRenderClicked() {
CommandManager::instance()->execute("MI_SaveAndRender");
}
//-----------------------------------------------------------------------------
/*! Update all field value take care current scene output properties.
*/
void OutputSettingsPopup::updateField() {

View file

@ -50,6 +50,7 @@ class OutputSettingsPopup : public DVGui::Dialog {
DVGui::DoubleLineEdit *m_frameRateFld;
QPushButton *m_fileFormatButton;
QPushButton *m_renderButton;
QPushButton *m_saveAndRenderButton;
CameraSettingsPopup *m_cameraSettings;
QComboBox *m_presetCombo;
@ -94,6 +95,7 @@ protected slots:
void onStereoChecked(int);
void onStereoChanged();
void onRenderClicked();
void onSaveAndRenderClicked();
/*-- OutputSettingsのPreset登録/削除/選択 --*/
void onAddPresetButtonPressed();

View file

@ -174,6 +174,7 @@ public:
, m_timeStretchFactor(1)
, m_multimediaRender(0) {
setCommandHandler("MI_Render", this, &RenderCommand::onRender);
setCommandHandler("MI_SaveAndRender", this, &RenderCommand::onSaveAndRender);
setCommandHandler("MI_FastRender", this, &RenderCommand::onFastRender);
setCommandHandler("MI_Preview", this, &RenderCommand::onPreview);
}
@ -182,6 +183,7 @@ public:
void rasterRender(bool isPreview);
void multimediaRender();
void onRender();
void onSaveAndRender();
void onFastRender();
void onPreview();
static void resetBgColor();
@ -747,14 +749,22 @@ void RenderCommand::multimediaRender() {
//===================================================================
void RenderCommand::onRender() {
bool saved = false;
saved = IoCmd::saveAll();
if (!saved) {
return;
}
doRender(false);
}
//===================================================================
void RenderCommand::onSaveAndRender() {
bool saved = false;
saved = IoCmd::saveAll();
if (!saved) {
return;
}
doRender(false);
}
//===================================================================
void RenderCommand::onFastRender() {
TOutputProperties *prop = TApp::instance()
->getCurrentScene()
@ -787,6 +797,8 @@ void RenderCommand::onFastRender() {
prop->setPath(currPath);
}
//---------------------------------------------------------
void RenderCommand::onPreview() { doRender(true); }
//---------------------------------------------------------