forked from qt-creator/qt-creator
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:
@@ -363,6 +363,7 @@ QStringList RecordWidget::ffmpegParameters(const ClipInfo &clipInfo) const
|
|||||||
videoGrabParams = {
|
videoGrabParams = {
|
||||||
"-f", "avfoundation",
|
"-f", "avfoundation",
|
||||||
"-capture_cursor", captureCursorStr,
|
"-capture_cursor", captureCursorStr,
|
||||||
|
"-capture_mouse_clicks", Internal::settings().captureMouseClicks() ? "1" : "0",
|
||||||
"-framerate", frameRateStr,
|
"-framerate", frameRateStr,
|
||||||
"-pixel_format", "bgr0",
|
"-pixel_format", "bgr0",
|
||||||
"-i", QString("Capture screen %1:none").arg(rS.screenId),
|
"-i", QString("Capture screen %1:none").arg(rS.screenId),
|
||||||
|
|||||||
@@ -72,6 +72,12 @@ ScreenRecorderSettings::ScreenRecorderSettings()
|
|||||||
captureCursor.setLabel(Tr::tr("Capture the mouse cursor"));
|
captureCursor.setLabel(Tr::tr("Capture the mouse cursor"));
|
||||||
captureCursor.setLabelPlacement(BoolAspect::LabelPlacement::AtCheckBox);
|
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.setSettingsKey("EnableFileSizeLimit");
|
||||||
enableFileSizeLimit.setDefaultValue(true);
|
enableFileSizeLimit.setDefaultValue(true);
|
||||||
enableFileSizeLimit.setLabel(Tr::tr("Size limit for intermediate output file"));
|
enableFileSizeLimit.setLabel(Tr::tr("Size limit for intermediate output file"));
|
||||||
@@ -151,6 +157,7 @@ ScreenRecorderSettings::ScreenRecorderSettings()
|
|||||||
title(Tr::tr("Record settings")),
|
title(Tr::tr("Record settings")),
|
||||||
Column {
|
Column {
|
||||||
captureCursor,
|
captureCursor,
|
||||||
|
captureMouseClicks,
|
||||||
Row { enableFileSizeLimit, fileSizeLimit, st },
|
Row { enableFileSizeLimit, fileSizeLimit, st },
|
||||||
Row { enableRtBuffer, rtBufferSize, st },
|
Row { enableRtBuffer, rtBufferSize, st },
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ public:
|
|||||||
Utils::FilePathAspect ffmpegTool{this};
|
Utils::FilePathAspect ffmpegTool{this};
|
||||||
Utils::FilePathAspect ffprobeTool{this};
|
Utils::FilePathAspect ffprobeTool{this};
|
||||||
Utils::BoolAspect captureCursor{this};
|
Utils::BoolAspect captureCursor{this};
|
||||||
|
Utils::BoolAspect captureMouseClicks{this};
|
||||||
Utils::BoolAspect enableFileSizeLimit{this};
|
Utils::BoolAspect enableFileSizeLimit{this};
|
||||||
Utils::IntegerAspect fileSizeLimit{this}; // in MB
|
Utils::IntegerAspect fileSizeLimit{this}; // in MB
|
||||||
Utils::BoolAspect enableRtBuffer{this};
|
Utils::BoolAspect enableRtBuffer{this};
|
||||||
|
|||||||
Reference in New Issue
Block a user