|
|
@@ -2153,17 +2153,26 @@ void GMainWindow::OnToggleFilterBar() {
|
|
|
|
|
|
void GMainWindow::OnCaptureScreenshot() {
|
|
|
OnPauseGame();
|
|
|
- QFileDialog png_dialog(this, tr("Capture Screenshot"), UISettings::values.screenshot_path,
|
|
|
- tr("PNG Image (*.png)"));
|
|
|
- png_dialog.setAcceptMode(QFileDialog::AcceptSave);
|
|
|
- png_dialog.setDefaultSuffix(QStringLiteral("png"));
|
|
|
- if (png_dialog.exec()) {
|
|
|
- const QString path = png_dialog.selectedFiles().first();
|
|
|
- if (!path.isEmpty()) {
|
|
|
- UISettings::values.screenshot_path = QFileInfo(path).path();
|
|
|
- render_window->CaptureScreenshot(UISettings::values.screenshot_resolution_factor, path);
|
|
|
+
|
|
|
+ const u64 title_id = Core::System::GetInstance().CurrentProcess()->GetTitleID();
|
|
|
+ const auto screenshot_path = FileUtil::GetUserPath(FileUtil::UserPath::ScreenshotsDir);
|
|
|
+ const auto date = QDateTime::currentDateTime()
|
|
|
+ .toString(QStringLiteral("yyyy-MM-dd_hh-mm-ss-zzz"))
|
|
|
+ .toStdString();
|
|
|
+ QString filename = QString::fromStdString(screenshot_path + fmt::format("{:016X}", title_id) +
|
|
|
+ "_" + date + ".png");
|
|
|
+
|
|
|
+#ifdef _WIN32
|
|
|
+ if (UISettings::values.enable_screenshot_save_as) {
|
|
|
+ filename = QFileDialog::getSaveFileName(this, tr("Capture Screenshot"), filename,
|
|
|
+ tr("PNG Image (*.png)"));
|
|
|
+ if (filename.isEmpty()) {
|
|
|
+ OnStartGame();
|
|
|
+ return;
|
|
|
}
|
|
|
}
|
|
|
+#endif
|
|
|
+ render_window->CaptureScreenshot(UISettings::values.screenshot_resolution_factor, filename);
|
|
|
OnStartGame();
|
|
|
}
|
|
|
|