ScreenRecorder: Add setting for capturing mouse clicks

Only available for macOS/AVFoundation, and off by default.

Change-Id: I30b3e6e472c62b5bb68b609c2cd945aa4fd70127
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
Alessandro Portale
2023-09-21 17:41:04 +02:00
parent d079ef5e2a
commit 9503f62f49
3 changed files with 9 additions and 0 deletions

View File

@@ -363,6 +363,7 @@ QStringList RecordWidget::ffmpegParameters(const ClipInfo &clipInfo) const
videoGrabParams = {
"-f", "avfoundation",
"-capture_cursor", captureCursorStr,
"-capture_mouse_clicks", Internal::settings().captureMouseClicks() ? "1" : "0",
"-framerate", frameRateStr,
"-pixel_format", "bgr0",
"-i", QString("Capture screen %1:none").arg(rS.screenId),

View File

@@ -72,6 +72,12 @@ ScreenRecorderSettings::ScreenRecorderSettings()
captureCursor.setLabel(Tr::tr("Capture the mouse cursor"));
captureCursor.setLabelPlacement(BoolAspect::LabelPlacement::AtCheckBox);
captureMouseClicks.setSettingsKey("CaptureMouseClicks");
captureMouseClicks.setDefaultValue(false);
captureMouseClicks.setLabel(Tr::tr("Capture the screen mouse clicks"));
captureMouseClicks.setLabelPlacement(BoolAspect::LabelPlacement::AtCheckBox);
captureMouseClicks.setVisible(HostOsInfo::isMacHost()); // only available with AVFoundation
enableFileSizeLimit.setSettingsKey("EnableFileSizeLimit");
enableFileSizeLimit.setDefaultValue(true);
enableFileSizeLimit.setLabel(Tr::tr("Size limit for intermediate output file"));
@@ -151,6 +157,7 @@ ScreenRecorderSettings::ScreenRecorderSettings()
title(Tr::tr("Record settings")),
Column {
captureCursor,
captureMouseClicks,
Row { enableFileSizeLimit, fileSizeLimit, st },
Row { enableRtBuffer, rtBufferSize, st },
},

View File

@@ -27,6 +27,7 @@ public:
Utils::FilePathAspect ffmpegTool{this};
Utils::FilePathAspect ffprobeTool{this};
Utils::BoolAspect captureCursor{this};
Utils::BoolAspect captureMouseClicks{this};
Utils::BoolAspect enableFileSizeLimit{this};
Utils::IntegerAspect fileSizeLimit{this}; // in MB
Utils::BoolAspect enableRtBuffer{this};