Settings ScreenRecorder wip
This commit is contained in:
parent
c00e1f7fb3
commit
bf3f0cf88d
3 changed files with 69 additions and 72 deletions
|
|
@ -46,28 +46,44 @@ ColumnLayout {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: Style.marginSmall * scaling
|
Layout.topMargin: Style.marginSmall * scaling
|
||||||
|
|
||||||
|
ColumnLayout {
|
||||||
|
spacing: Style.marginTiny * scaling
|
||||||
|
|
||||||
NText {
|
NText {
|
||||||
text: "Output Directory"
|
text: "Output Directory"
|
||||||
font.pointSize: 13
|
|
||||||
font.weight: Style.fontWeightBold
|
font.weight: Style.fontWeightBold
|
||||||
color: Colors.textPrimary
|
color: Colors.textPrimary
|
||||||
}
|
}
|
||||||
|
|
||||||
NText {
|
NText {
|
||||||
text: "Directory where screen recordings will be saved"
|
text: "Directory where screen recordings will be saved"
|
||||||
font.pointSize: 12
|
font.pointSize: Style.fontSizeSmall * scaling
|
||||||
color: Colors.textSecondary
|
color: Colors.textSecondary
|
||||||
wrapMode: Text.WordWrap
|
wrapMode: Text.WordWrap
|
||||||
Layout.fillWidth: true
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
NTextInput {
|
NTextInput {
|
||||||
text: Settings.data.screenRecorder.directory
|
text: Settings.data.screenRecorder.directory
|
||||||
Layout.fillWidth: true
|
|
||||||
onEditingFinished: {
|
onEditingFinished: {
|
||||||
Settings.data.screenRecorder.directory = text
|
Settings.data.screenRecorder.directory = text
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ColumnLayout {
|
||||||
|
spacing: Style.marginSmall * scaling
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.topMargin: Style.marginMedium * scaling
|
||||||
|
// Show Cursor
|
||||||
|
NToggle {
|
||||||
|
label: "Show Cursor"
|
||||||
|
description: "Record mouse cursor in the video"
|
||||||
|
value: Settings.data.screenRecorder.showCursor
|
||||||
|
onToggled: function (newValue) {
|
||||||
|
Settings.data.screenRecorder.showCursor = newValue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
NDivider {
|
NDivider {
|
||||||
|
|
@ -78,7 +94,7 @@ ColumnLayout {
|
||||||
|
|
||||||
// Video Settings
|
// Video Settings
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
spacing: 4
|
spacing: Style.marginTiny * scaling
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
||||||
NText {
|
NText {
|
||||||
|
|
@ -95,24 +111,24 @@ ColumnLayout {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: Style.marginSmall * scaling
|
Layout.topMargin: Style.marginSmall * scaling
|
||||||
|
|
||||||
|
ColumnLayout {
|
||||||
|
spacing: Style.marginTiny * scaling
|
||||||
NText {
|
NText {
|
||||||
text: "Frame Rate"
|
text: "Frame Rate"
|
||||||
font.pointSize: 13
|
|
||||||
font.weight: Style.fontWeightBold
|
font.weight: Style.fontWeightBold
|
||||||
color: Colors.textPrimary
|
color: Colors.textPrimary
|
||||||
}
|
}
|
||||||
|
|
||||||
NText {
|
NText {
|
||||||
text: "Target frame rate for screen recordings (default: 60)"
|
text: "Target frame rate for screen recordings (default: 60)"
|
||||||
font.pointSize: 12
|
font.pointSize: Style.fontSizeSmall * scaling
|
||||||
color: Colors.textSecondary
|
color: Colors.textSecondary
|
||||||
wrapMode: Text.WordWrap
|
wrapMode: Text.WordWrap
|
||||||
Layout.fillWidth: true
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
NComboBox {
|
NComboBox {
|
||||||
optionsKeys: ["30", "60", "120", "240"]
|
optionsKeys: ["30", "60", "120", "2Style.marginLarge * scaling0"]
|
||||||
optionsLabels: ["30 FPS", "60 FPS", "120 FPS", "240 FPS"]
|
optionsLabels: ["30 FPS", "60 FPS", "120 FPS", "2Style.marginLarge * scaling0 FPS"]
|
||||||
currentKey: Settings.data.screenRecorder.frameRate
|
currentKey: Settings.data.screenRecorder.frameRate
|
||||||
onSelected: function (key) {
|
onSelected: function (key) {
|
||||||
Settings.data.screenRecorder.frameRate = key
|
Settings.data.screenRecorder.frameRate = key
|
||||||
|
|
@ -153,20 +169,19 @@ ColumnLayout {
|
||||||
|
|
||||||
// Video Codec
|
// Video Codec
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
spacing: 8
|
spacing: Style.marginTiny * scaling
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: Style.marginSmall * scaling
|
Layout.topMargin: Style.marginSmall * scaling
|
||||||
|
|
||||||
NText {
|
NText {
|
||||||
text: "Video Codec"
|
text: "Video Codec"
|
||||||
font.pointSize: 13
|
|
||||||
font.weight: Style.fontWeightBold
|
font.weight: Style.fontWeightBold
|
||||||
color: Colors.textPrimary
|
color: Colors.textPrimary
|
||||||
}
|
}
|
||||||
|
|
||||||
NText {
|
NText {
|
||||||
text: "Different codecs offer different compression and compatibility"
|
text: "Different codecs offer different compression and compatibility"
|
||||||
font.pointSize: 12
|
font.pointSize: Style.fontSizeSmall * scaling
|
||||||
color: Colors.textSecondary
|
color: Colors.textSecondary
|
||||||
wrapMode: Text.WordWrap
|
wrapMode: Text.WordWrap
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
@ -190,14 +205,14 @@ ColumnLayout {
|
||||||
|
|
||||||
NText {
|
NText {
|
||||||
text: "Color Range"
|
text: "Color Range"
|
||||||
font.pointSize: 13
|
|
||||||
font.weight: Style.fontWeightBold
|
font.weight: Style.fontWeightBold
|
||||||
color: Colors.textPrimary
|
color: Colors.textPrimary
|
||||||
}
|
}
|
||||||
|
|
||||||
NText {
|
NText {
|
||||||
text: "Limited is recommended for better compatibility"
|
text: "Limited is recommended for better compatibility"
|
||||||
font.pointSize: 12
|
font.pointSize: Style.fontSizeSmall * scaling
|
||||||
color: Colors.textSecondary
|
color: Colors.textSecondary
|
||||||
wrapMode: Text.WordWrap
|
wrapMode: Text.WordWrap
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
@ -227,7 +242,7 @@ ColumnLayout {
|
||||||
|
|
||||||
NText {
|
NText {
|
||||||
text: "Audio Settings"
|
text: "Audio Settings"
|
||||||
font.pointSize: 18
|
font.pointSize: Style.fontSizeXL * scaling
|
||||||
font.weight: Style.fontWeightBold
|
font.weight: Style.fontWeightBold
|
||||||
color: Colors.textPrimary
|
color: Colors.textPrimary
|
||||||
Layout.bottomMargin: Style.marginSmall * scaling
|
Layout.bottomMargin: Style.marginSmall * scaling
|
||||||
|
|
@ -241,14 +256,14 @@ ColumnLayout {
|
||||||
|
|
||||||
NText {
|
NText {
|
||||||
text: "Audio Source"
|
text: "Audio Source"
|
||||||
font.pointSize: 13
|
|
||||||
font.weight: Style.fontWeightBold
|
font.weight: Style.fontWeightBold
|
||||||
color: Colors.textPrimary
|
color: Colors.textPrimary
|
||||||
}
|
}
|
||||||
|
|
||||||
NText {
|
NText {
|
||||||
text: "Audio source to capture during recording"
|
text: "Audio source to capture during recording"
|
||||||
font.pointSize: 12
|
font.pointSize: Style.fontSizeSmall * scaling
|
||||||
color: Colors.textSecondary
|
color: Colors.textSecondary
|
||||||
wrapMode: Text.WordWrap
|
wrapMode: Text.WordWrap
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
@ -294,16 +309,6 @@ ColumnLayout {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Show Cursor
|
|
||||||
NToggle {
|
|
||||||
label: "Show Cursor"
|
|
||||||
description: "Record mouse cursor in the video"
|
|
||||||
value: Settings.data.screenRecorder.showCursor
|
|
||||||
onToggled: function (newValue) {
|
|
||||||
Settings.data.screenRecorder.showCursor = newValue
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,8 +14,7 @@ ColumnLayout {
|
||||||
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.fillHeight: true
|
Layout.fillHeight: true
|
||||||
padding: 16
|
padding: Style.marginMedium * scaling
|
||||||
rightPadding: 12
|
|
||||||
clip: true
|
clip: true
|
||||||
ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
|
ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
|
||||||
ScrollBar.vertical.policy: ScrollBar.AsNeeded
|
ScrollBar.vertical.policy: ScrollBar.AsNeeded
|
||||||
|
|
@ -30,29 +29,22 @@ ColumnLayout {
|
||||||
}
|
}
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
spacing: 4
|
spacing: Style.marginTiny * scaling
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
||||||
NText {
|
NText {
|
||||||
text: "Time & Weather Settings"
|
text: "Location"
|
||||||
font.pointSize: 18
|
font.pointSize: Style.fontSizeXL * scaling
|
||||||
font.weight: Style.fontWeightBold
|
font.weight: Style.fontWeightBold
|
||||||
color: Colors.textPrimary
|
color: Colors.textPrimary
|
||||||
Layout.bottomMargin: 8
|
Layout.bottomMargin: Style.marginSmall * scaling
|
||||||
}
|
}
|
||||||
|
|
||||||
// Location section
|
// Location section
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
spacing: 8
|
spacing: Style.marginMedium * scaling
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: 8
|
Layout.topMargin: Style.marginSmall * scaling
|
||||||
|
|
||||||
NText {
|
|
||||||
text: "Location"
|
|
||||||
font.pointSize: 13
|
|
||||||
font.weight: Style.fontWeightBold
|
|
||||||
color: Colors.textPrimary
|
|
||||||
}
|
|
||||||
|
|
||||||
NTextInput {
|
NTextInput {
|
||||||
text: Settings.data.location.name
|
text: Settings.data.location.name
|
||||||
|
|
@ -66,18 +58,18 @@ ColumnLayout {
|
||||||
|
|
||||||
NDivider {
|
NDivider {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: 26
|
Layout.topMargin: Style.marginLarge * 2 * scaling
|
||||||
Layout.bottomMargin: 18
|
Layout.bottomMargin: Style.marginLarge * scaling
|
||||||
}
|
}
|
||||||
|
|
||||||
// Time section
|
// Time section
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
spacing: 4
|
spacing: Style.marginMedium * scaling
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
||||||
NText {
|
NText {
|
||||||
text: "Time Format"
|
text: "Time Format"
|
||||||
font.pointSize: 18
|
font.pointSize: Style.fontSizeXL * scaling
|
||||||
font.weight: Style.fontWeightBold
|
font.weight: Style.fontWeightBold
|
||||||
color: Colors.textPrimary
|
color: Colors.textPrimary
|
||||||
Layout.bottomMargin: 8
|
Layout.bottomMargin: 8
|
||||||
|
|
@ -104,21 +96,21 @@ ColumnLayout {
|
||||||
|
|
||||||
NDivider {
|
NDivider {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: 26
|
Layout.topMargin: Style.marginLarge * 2 * scaling
|
||||||
Layout.bottomMargin: 18
|
Layout.bottomMargin: Style.marginLarge * scaling
|
||||||
}
|
}
|
||||||
|
|
||||||
// Weather section
|
// Weather section
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
spacing: 4
|
spacing: Style.marginMedium * scaling
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
||||||
NText {
|
NText {
|
||||||
text: "Weather"
|
text: "Weather"
|
||||||
font.pointSize: 18
|
font.pointSize: Style.fontSizeXL * scaling
|
||||||
font.weight: Style.fontWeightBold
|
font.weight: Style.fontWeightBold
|
||||||
color: Colors.textPrimary
|
color: Colors.textPrimary
|
||||||
Layout.bottomMargin: 8
|
Layout.bottomMargin: Style.marginSmall * scaling
|
||||||
}
|
}
|
||||||
|
|
||||||
NToggle {
|
NToggle {
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ RowLayout {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
spacing: 2 * scaling
|
spacing: Style.marginTiniest * scaling
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
||||||
NText {
|
NText {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue