citra_qt: Use the new dumping dialog
Note that it is only compiled in for FFmpeg video dumper enabled builds
This commit is contained in:
parent
f82ba41fe0
commit
71c64c2617
|
@ -162,6 +162,20 @@ add_executable(citra-qt
|
||||||
util/util.h
|
util/util.h
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if (ENABLE_FFMPEG_VIDEO_DUMPER)
|
||||||
|
target_sources(citra-qt PRIVATE
|
||||||
|
dumping/dumping_dialog.cpp
|
||||||
|
dumping/dumping_dialog.h
|
||||||
|
dumping/dumping_dialog.ui
|
||||||
|
dumping/option_set_dialog.cpp
|
||||||
|
dumping/option_set_dialog.h
|
||||||
|
dumping/option_set_dialog.ui
|
||||||
|
dumping/options_dialog.cpp
|
||||||
|
dumping/options_dialog.h
|
||||||
|
dumping/options_dialog.ui
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
file(GLOB COMPAT_LIST
|
file(GLOB COMPAT_LIST
|
||||||
${PROJECT_BINARY_DIR}/dist/compatibility_list/compatibility_list.qrc
|
${PROJECT_BINARY_DIR}/dist/compatibility_list/compatibility_list.qrc
|
||||||
${PROJECT_BINARY_DIR}/dist/compatibility_list/compatibility_list.json)
|
${PROJECT_BINARY_DIR}/dist/compatibility_list/compatibility_list.json)
|
||||||
|
|
|
@ -87,6 +87,10 @@
|
||||||
#include "citra_qt/discord_impl.h"
|
#include "citra_qt/discord_impl.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef ENABLE_FFMPEG_VIDEO_DUMPER
|
||||||
|
#include "citra_qt/dumping/dumping_dialog.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef QT_STATICPLUGIN
|
#ifdef QT_STATICPLUGIN
|
||||||
Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin);
|
Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin);
|
||||||
#endif
|
#endif
|
||||||
|
@ -679,9 +683,7 @@ void GMainWindow::ConnectMenuEvents() {
|
||||||
connect(ui.action_Capture_Screenshot, &QAction::triggered, this,
|
connect(ui.action_Capture_Screenshot, &QAction::triggered, this,
|
||||||
&GMainWindow::OnCaptureScreenshot);
|
&GMainWindow::OnCaptureScreenshot);
|
||||||
|
|
||||||
#ifndef ENABLE_FFMPEG_VIDEO_DUMPER
|
#ifdef ENABLE_FFMPEG_VIDEO_DUMPER
|
||||||
ui.action_Dump_Video->setEnabled(false);
|
|
||||||
#endif
|
|
||||||
connect(ui.action_Dump_Video, &QAction::triggered, [this] {
|
connect(ui.action_Dump_Video, &QAction::triggered, [this] {
|
||||||
if (ui.action_Dump_Video->isChecked()) {
|
if (ui.action_Dump_Video->isChecked()) {
|
||||||
OnStartVideoDumping();
|
OnStartVideoDumping();
|
||||||
|
@ -689,6 +691,9 @@ void GMainWindow::ConnectMenuEvents() {
|
||||||
OnStopVideoDumping();
|
OnStopVideoDumping();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
#else
|
||||||
|
ui.action_Dump_Video->setEnabled(false);
|
||||||
|
#endif
|
||||||
|
|
||||||
// Help
|
// Help
|
||||||
connect(ui.action_Open_Citra_Folder, &QAction::triggered, this,
|
connect(ui.action_Open_Citra_Folder, &QAction::triggered, this,
|
||||||
|
@ -992,11 +997,13 @@ void GMainWindow::ShutdownGame() {
|
||||||
HideFullscreen();
|
HideFullscreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef ENABLE_FFMPEG_VIDEO_DUMPER
|
||||||
if (Core::System::GetInstance().VideoDumper().IsDumping()) {
|
if (Core::System::GetInstance().VideoDumper().IsDumping()) {
|
||||||
game_shutdown_delayed = true;
|
game_shutdown_delayed = true;
|
||||||
OnStopVideoDumping();
|
OnStopVideoDumping();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
AllowOSSleep();
|
AllowOSSleep();
|
||||||
|
|
||||||
|
@ -1804,14 +1811,13 @@ void GMainWindow::OnCaptureScreenshot() {
|
||||||
OnStartGame();
|
OnStartGame();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef ENABLE_FFMPEG_VIDEO_DUMPER
|
||||||
void GMainWindow::OnStartVideoDumping() {
|
void GMainWindow::OnStartVideoDumping() {
|
||||||
const QString path = QFileDialog::getSaveFileName(
|
DumpingDialog dialog(this);
|
||||||
this, tr("Save Video"), UISettings::values.video_dumping_path, tr("WebM Videos (*.webm)"));
|
if (dialog.exec() != QDialog::DialogCode::Accepted) {
|
||||||
if (path.isEmpty()) {
|
|
||||||
ui.action_Dump_Video->setChecked(false);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
UISettings::values.video_dumping_path = QFileInfo(path).path();
|
const auto path = dialog.GetFilePath();
|
||||||
if (emulation_running) {
|
if (emulation_running) {
|
||||||
Layout::FramebufferLayout layout{
|
Layout::FramebufferLayout layout{
|
||||||
Layout::FrameLayoutFromResolutionScale(VideoCore::GetResolutionScaleFactor())};
|
Layout::FrameLayoutFromResolutionScale(VideoCore::GetResolutionScaleFactor())};
|
||||||
|
@ -1848,6 +1854,7 @@ void GMainWindow::OnStopVideoDumping() {
|
||||||
future_watcher->setFuture(future);
|
future_watcher->setFuture(future);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void GMainWindow::UpdateStatusBar() {
|
void GMainWindow::UpdateStatusBar() {
|
||||||
if (emu_thread == nullptr) {
|
if (emu_thread == nullptr) {
|
||||||
|
|
|
@ -200,8 +200,10 @@ private slots:
|
||||||
void OnPlayMovie();
|
void OnPlayMovie();
|
||||||
void OnStopRecordingPlayback();
|
void OnStopRecordingPlayback();
|
||||||
void OnCaptureScreenshot();
|
void OnCaptureScreenshot();
|
||||||
|
#ifdef ENABLE_FFMPEG_VIDEO_DUMPER
|
||||||
void OnStartVideoDumping();
|
void OnStartVideoDumping();
|
||||||
void OnStopVideoDumping();
|
void OnStopVideoDumping();
|
||||||
|
#endif
|
||||||
void OnCoreError(Core::System::ResultStatus, std::string);
|
void OnCoreError(Core::System::ResultStatus, std::string);
|
||||||
/// Called whenever a user selects Help->About Citra
|
/// Called whenever a user selects Help->About Citra
|
||||||
void OnMenuAboutCitra();
|
void OnMenuAboutCitra();
|
||||||
|
|
Loading…
Reference in New Issue