Settings window: added separators and renamed Recording to Screen Recorder
This commit is contained in:
parent
6ef29ae745
commit
7c2d2b4d66
7 changed files with 1042 additions and 851 deletions
|
|
@ -57,7 +57,7 @@ PanelWithOverlay {
|
||||||
"General",
|
"General",
|
||||||
"Bar",
|
"Bar",
|
||||||
"Time & Weather",
|
"Time & Weather",
|
||||||
"Recording",
|
"Screen Recorder",
|
||||||
"Network",
|
"Network",
|
||||||
"Display",
|
"Display",
|
||||||
"Wallpaper",
|
"Wallpaper",
|
||||||
|
|
@ -202,7 +202,7 @@ PanelWithOverlay {
|
||||||
text: wallpaperSelector.visible ? "Select Wallpaper" : (activeTabIndex === 0 ? "General" :
|
text: wallpaperSelector.visible ? "Select Wallpaper" : (activeTabIndex === 0 ? "General" :
|
||||||
activeTabIndex === 1 ? "Bar" :
|
activeTabIndex === 1 ? "Bar" :
|
||||||
activeTabIndex === 2 ? "Time & Weather" :
|
activeTabIndex === 2 ? "Time & Weather" :
|
||||||
activeTabIndex === 3 ? "Recording" :
|
activeTabIndex === 3 ? "Screen Recorder" :
|
||||||
activeTabIndex === 4 ? "Network" :
|
activeTabIndex === 4 ? "Network" :
|
||||||
activeTabIndex === 5 ? "Display" :
|
activeTabIndex === 5 ? "Display" :
|
||||||
activeTabIndex === 6 ? "Wallpaper" :
|
activeTabIndex === 6 ? "Wallpaper" :
|
||||||
|
|
@ -303,7 +303,7 @@ PanelWithOverlay {
|
||||||
left: parent.left
|
left: parent.left
|
||||||
right: parent.right
|
right: parent.right
|
||||||
bottom: parent.bottom
|
bottom: parent.bottom
|
||||||
margins: 24
|
margins: 16
|
||||||
topMargin: 32
|
topMargin: 32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -344,7 +344,7 @@ PanelWithOverlay {
|
||||||
{ icon: "tune", text: "General" },
|
{ icon: "tune", text: "General" },
|
||||||
{ icon: "space_dashboard", text: "Bar" },
|
{ icon: "space_dashboard", text: "Bar" },
|
||||||
{ icon: "schedule", text: "Time & Weather" },
|
{ icon: "schedule", text: "Time & Weather" },
|
||||||
{ icon: "photo_camera", text: "Recording" },
|
{ icon: "photo_camera", text: "Screen Recorder" },
|
||||||
{ icon: "wifi", text: "Network" },
|
{ icon: "wifi", text: "Network" },
|
||||||
{ icon: "monitor", text: "Display" },
|
{ icon: "monitor", text: "Display" },
|
||||||
{ icon: "wallpaper", text: "Wallpaper" },
|
{ icon: "wallpaper", text: "Wallpaper" },
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ ColumnLayout {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
text: "Bar Elements"
|
text: "Elements"
|
||||||
font.pixelSize: 18
|
font.pixelSize: 18
|
||||||
font.bold: true
|
font.bold: true
|
||||||
color: Theme.textPrimary
|
color: Theme.textPrimary
|
||||||
|
|
|
||||||
|
|
@ -107,11 +107,23 @@ ColumnLayout {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
Layout.topMargin: 26
|
||||||
|
Layout.bottomMargin: 18
|
||||||
|
anchors {
|
||||||
|
top: headerArea.bottom
|
||||||
|
left: parent.left
|
||||||
|
right: parent.right
|
||||||
|
}
|
||||||
|
height: 1
|
||||||
|
color: Theme.outline
|
||||||
|
opacity: 0.3
|
||||||
|
}
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
spacing: 4
|
spacing: 4
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: 58
|
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
text: "User Interface"
|
text: "User Interface"
|
||||||
|
|
|
||||||
|
|
@ -97,11 +97,23 @@ ColumnLayout {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
Layout.topMargin: 26
|
||||||
|
Layout.bottomMargin: 18
|
||||||
|
anchors {
|
||||||
|
top: headerArea.bottom
|
||||||
|
left: parent.left
|
||||||
|
right: parent.right
|
||||||
|
}
|
||||||
|
height: 1
|
||||||
|
color: Theme.outline
|
||||||
|
opacity: 0.3
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
spacing: 16
|
spacing: 16
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: 58
|
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
text: "Bluetooth"
|
text: "Bluetooth"
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,19 @@
|
||||||
import QtQuick
|
import QtQuick
|
||||||
import QtQuick.Controls
|
import QtQuick.Controls
|
||||||
import QtQuick.Layouts
|
import QtQuick.Layouts
|
||||||
import qs.Settings
|
|
||||||
import qs.Components
|
import qs.Components
|
||||||
|
import qs.Settings
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
spacing: 0
|
spacing: 0
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
anchors.margins: 0
|
anchors.margins: 0
|
||||||
|
|
||||||
ScrollView {
|
ScrollView {
|
||||||
id: scrollView
|
id: scrollView
|
||||||
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.fillHeight: true
|
Layout.fillHeight: true
|
||||||
padding: 0
|
padding: 0
|
||||||
|
|
@ -29,20 +31,18 @@ ColumnLayout {
|
||||||
Layout.preferredHeight: 0
|
Layout.preferredHeight: 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
|
// Text {
|
||||||
|
// text: "Screen Recording"
|
||||||
|
// font.pixelSize: 18
|
||||||
|
// font.bold: true
|
||||||
|
// color: Theme.textPrimary
|
||||||
|
// Layout.bottomMargin: 8
|
||||||
|
// }
|
||||||
|
|
||||||
spacing: 4
|
spacing: 4
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
||||||
Text {
|
|
||||||
text: "Screen Recording"
|
|
||||||
font.pixelSize: 18
|
|
||||||
font.bold: true
|
|
||||||
color: Theme.textPrimary
|
|
||||||
Layout.bottomMargin: 8
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
spacing: 8
|
spacing: 8
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
@ -71,6 +71,7 @@ ColumnLayout {
|
||||||
|
|
||||||
TextInput {
|
TextInput {
|
||||||
id: videoPathInput
|
id: videoPathInput
|
||||||
|
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
anchors.leftMargin: 12
|
anchors.leftMargin: 12
|
||||||
anchors.rightMargin: 12
|
anchors.rightMargin: 12
|
||||||
|
|
@ -87,15 +88,18 @@ ColumnLayout {
|
||||||
onTextChanged: {
|
onTextChanged: {
|
||||||
Settings.settings.videoPath = text;
|
Settings.settings.videoPath = text;
|
||||||
}
|
}
|
||||||
|
|
||||||
MouseArea {
|
MouseArea {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
cursorShape: Qt.IBeamCursor
|
cursorShape: Qt.IBeamCursor
|
||||||
onClicked: videoPathInput.forceActiveFocus()
|
onClicked: videoPathInput.forceActiveFocus()
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
spacing: 8
|
spacing: 8
|
||||||
|
|
@ -118,13 +122,13 @@ ColumnLayout {
|
||||||
|
|
||||||
SpinBox {
|
SpinBox {
|
||||||
id: frameRateSpinBox
|
id: frameRateSpinBox
|
||||||
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.preferredHeight: 40
|
Layout.preferredHeight: 40
|
||||||
from: 24
|
from: 24
|
||||||
to: 144
|
to: 144
|
||||||
value: Settings.settings.recordingFrameRate || 60
|
value: Settings.settings.recordingFrameRate || 60
|
||||||
stepSize: 1
|
stepSize: 1
|
||||||
|
|
||||||
onValueChanged: {
|
onValueChanged: {
|
||||||
Settings.settings.recordingFrameRate = value;
|
Settings.settings.recordingFrameRate = value;
|
||||||
}
|
}
|
||||||
|
|
@ -148,25 +152,25 @@ ColumnLayout {
|
||||||
verticalAlignment: Qt.AlignVCenter
|
verticalAlignment: Qt.AlignVCenter
|
||||||
readOnly: false
|
readOnly: false
|
||||||
selectByMouse: true
|
selectByMouse: true
|
||||||
|
inputMethodHints: Qt.ImhDigitsOnly
|
||||||
|
onTextChanged: {
|
||||||
|
var newValue = parseInt(text);
|
||||||
|
if (!isNaN(newValue) && newValue >= frameRateSpinBox.from && newValue <= frameRateSpinBox.to)
|
||||||
|
frameRateSpinBox.value = newValue;
|
||||||
|
|
||||||
|
}
|
||||||
|
onEditingFinished: {
|
||||||
|
var newValue = parseInt(text);
|
||||||
|
if (isNaN(newValue) || newValue < frameRateSpinBox.from || newValue > frameRateSpinBox.to)
|
||||||
|
text = frameRateSpinBox.textFromValue(frameRateSpinBox.value, frameRateSpinBox.locale);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
validator: IntValidator {
|
validator: IntValidator {
|
||||||
bottom: frameRateSpinBox.from
|
bottom: frameRateSpinBox.from
|
||||||
top: frameRateSpinBox.to
|
top: frameRateSpinBox.to
|
||||||
}
|
}
|
||||||
inputMethodHints: Qt.ImhDigitsOnly
|
|
||||||
|
|
||||||
onTextChanged: {
|
|
||||||
var newValue = parseInt(text);
|
|
||||||
if (!isNaN(newValue) && newValue >= frameRateSpinBox.from && newValue <= frameRateSpinBox.to) {
|
|
||||||
frameRateSpinBox.value = newValue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
onEditingFinished: {
|
|
||||||
var newValue = parseInt(text);
|
|
||||||
if (isNaN(newValue) || newValue < frameRateSpinBox.from || newValue > frameRateSpinBox.to) {
|
|
||||||
text = frameRateSpinBox.textFromValue(frameRateSpinBox.value, frameRateSpinBox.locale);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
up.indicator: Rectangle {
|
up.indicator: Rectangle {
|
||||||
|
|
@ -183,6 +187,7 @@ ColumnLayout {
|
||||||
color: Theme.textPrimary
|
color: Theme.textPrimary
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
down.indicator: Rectangle {
|
down.indicator: Rectangle {
|
||||||
|
|
@ -199,10 +204,12 @@ ColumnLayout {
|
||||||
color: Theme.textPrimary
|
color: Theme.textPrimary
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
spacing: 8
|
spacing: 8
|
||||||
|
|
@ -225,10 +232,14 @@ ColumnLayout {
|
||||||
|
|
||||||
ComboBox {
|
ComboBox {
|
||||||
id: audioSourceComboBox
|
id: audioSourceComboBox
|
||||||
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.preferredHeight: 40
|
Layout.preferredHeight: 40
|
||||||
model: ["default_output", "default_input", "both"]
|
model: ["default_output", "default_input", "both"]
|
||||||
currentIndex: model.indexOf(Settings.settings.recordingAudioSource || "default_output")
|
currentIndex: model.indexOf(Settings.settings.recordingAudioSource || "default_output")
|
||||||
|
onActivated: {
|
||||||
|
Settings.settings.recordingAudioSource = model[index];
|
||||||
|
}
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
implicitWidth: 120
|
implicitWidth: 120
|
||||||
|
|
@ -244,10 +255,14 @@ ColumnLayout {
|
||||||
rightPadding: audioSourceComboBox.indicator.width + audioSourceComboBox.spacing
|
rightPadding: audioSourceComboBox.indicator.width + audioSourceComboBox.spacing
|
||||||
text: {
|
text: {
|
||||||
switch (audioSourceComboBox.currentText) {
|
switch (audioSourceComboBox.currentText) {
|
||||||
case "default_output": return "System Audio";
|
case "default_output":
|
||||||
case "default_input": return "Microphone";
|
return "System Audio";
|
||||||
case "both": return "System Audio + Microphone";
|
case "default_input":
|
||||||
default: return audioSourceComboBox.currentText;
|
return "Microphone";
|
||||||
|
case "both":
|
||||||
|
return "System Audio + Microphone";
|
||||||
|
default:
|
||||||
|
return audioSourceComboBox.currentText;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
font.pixelSize: 13
|
font.pixelSize: 13
|
||||||
|
|
@ -277,7 +292,9 @@ ColumnLayout {
|
||||||
model: audioSourceComboBox.popup.visible ? audioSourceComboBox.delegateModel : null
|
model: audioSourceComboBox.popup.visible ? audioSourceComboBox.delegateModel : null
|
||||||
currentIndex: audioSourceComboBox.highlightedIndex
|
currentIndex: audioSourceComboBox.highlightedIndex
|
||||||
|
|
||||||
ScrollIndicator.vertical: ScrollIndicator {}
|
ScrollIndicator.vertical: ScrollIndicator {
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
|
|
@ -286,17 +303,24 @@ ColumnLayout {
|
||||||
border.width: 1
|
border.width: 1
|
||||||
radius: 16
|
radius: 16
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
delegate: ItemDelegate {
|
delegate: ItemDelegate {
|
||||||
width: audioSourceComboBox.width
|
width: audioSourceComboBox.width
|
||||||
|
highlighted: audioSourceComboBox.highlightedIndex === index
|
||||||
|
|
||||||
contentItem: Text {
|
contentItem: Text {
|
||||||
text: {
|
text: {
|
||||||
switch (modelData) {
|
switch (modelData) {
|
||||||
case "default_output": return "System Audio";
|
case "default_output":
|
||||||
case "default_input": return "Microphone";
|
return "System Audio";
|
||||||
case "both": return "System Audio + Microphone";
|
case "default_input":
|
||||||
default: return modelData;
|
return "Microphone";
|
||||||
|
case "both":
|
||||||
|
return "System Audio + Microphone";
|
||||||
|
default:
|
||||||
|
return modelData;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
font.pixelSize: 13
|
font.pixelSize: 13
|
||||||
|
|
@ -304,19 +328,16 @@ ColumnLayout {
|
||||||
verticalAlignment: Text.AlignVCenter
|
verticalAlignment: Text.AlignVCenter
|
||||||
elide: Text.ElideRight
|
elide: Text.ElideRight
|
||||||
}
|
}
|
||||||
highlighted: audioSourceComboBox.highlightedIndex === index
|
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: highlighted ? Theme.accentPrimary.toString().replace(/#/, "#1A") : "transparent"
|
color: highlighted ? Theme.accentPrimary.toString().replace(/#/, "#1A") : "transparent"
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onActivated: {
|
|
||||||
Settings.settings.recordingAudioSource = model[index];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
spacing: 8
|
spacing: 8
|
||||||
|
|
@ -339,10 +360,14 @@ ColumnLayout {
|
||||||
|
|
||||||
ComboBox {
|
ComboBox {
|
||||||
id: qualityComboBox
|
id: qualityComboBox
|
||||||
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.preferredHeight: 40
|
Layout.preferredHeight: 40
|
||||||
model: ["medium", "high", "very_high", "ultra"]
|
model: ["medium", "high", "very_high", "ultra"]
|
||||||
currentIndex: model.indexOf(Settings.settings.recordingQuality || "very_high")
|
currentIndex: model.indexOf(Settings.settings.recordingQuality || "very_high")
|
||||||
|
onActivated: {
|
||||||
|
Settings.settings.recordingQuality = model[index];
|
||||||
|
}
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
implicitWidth: 120
|
implicitWidth: 120
|
||||||
|
|
@ -358,11 +383,16 @@ ColumnLayout {
|
||||||
rightPadding: qualityComboBox.indicator.width + qualityComboBox.spacing
|
rightPadding: qualityComboBox.indicator.width + qualityComboBox.spacing
|
||||||
text: {
|
text: {
|
||||||
switch (qualityComboBox.currentText) {
|
switch (qualityComboBox.currentText) {
|
||||||
case "medium": return "Medium";
|
case "medium":
|
||||||
case "high": return "High";
|
return "Medium";
|
||||||
case "very_high": return "Very High";
|
case "high":
|
||||||
case "ultra": return "Ultra";
|
return "High";
|
||||||
default: return qualityComboBox.currentText;
|
case "very_high":
|
||||||
|
return "Very High";
|
||||||
|
case "ultra":
|
||||||
|
return "Ultra";
|
||||||
|
default:
|
||||||
|
return qualityComboBox.currentText;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
font.pixelSize: 13
|
font.pixelSize: 13
|
||||||
|
|
@ -392,7 +422,9 @@ ColumnLayout {
|
||||||
model: qualityComboBox.popup.visible ? qualityComboBox.delegateModel : null
|
model: qualityComboBox.popup.visible ? qualityComboBox.delegateModel : null
|
||||||
currentIndex: qualityComboBox.highlightedIndex
|
currentIndex: qualityComboBox.highlightedIndex
|
||||||
|
|
||||||
ScrollIndicator.vertical: ScrollIndicator {}
|
ScrollIndicator.vertical: ScrollIndicator {
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
|
|
@ -401,18 +433,26 @@ ColumnLayout {
|
||||||
border.width: 1
|
border.width: 1
|
||||||
radius: 16
|
radius: 16
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
delegate: ItemDelegate {
|
delegate: ItemDelegate {
|
||||||
width: qualityComboBox.width
|
width: qualityComboBox.width
|
||||||
|
highlighted: qualityComboBox.highlightedIndex === index
|
||||||
|
|
||||||
contentItem: Text {
|
contentItem: Text {
|
||||||
text: {
|
text: {
|
||||||
switch (modelData) {
|
switch (modelData) {
|
||||||
case "medium": return "Medium";
|
case "medium":
|
||||||
case "high": return "High";
|
return "Medium";
|
||||||
case "very_high": return "Very High";
|
case "high":
|
||||||
case "ultra": return "Ultra";
|
return "High";
|
||||||
default: return modelData;
|
case "very_high":
|
||||||
|
return "Very High";
|
||||||
|
case "ultra":
|
||||||
|
return "Ultra";
|
||||||
|
default:
|
||||||
|
return modelData;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
font.pixelSize: 13
|
font.pixelSize: 13
|
||||||
|
|
@ -420,19 +460,16 @@ ColumnLayout {
|
||||||
verticalAlignment: Text.AlignVCenter
|
verticalAlignment: Text.AlignVCenter
|
||||||
elide: Text.ElideRight
|
elide: Text.ElideRight
|
||||||
}
|
}
|
||||||
highlighted: qualityComboBox.highlightedIndex === index
|
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: highlighted ? Theme.accentPrimary.toString().replace(/#/, "#1A") : "transparent"
|
color: highlighted ? Theme.accentPrimary.toString().replace(/#/, "#1A") : "transparent"
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onActivated: {
|
|
||||||
Settings.settings.recordingQuality = model[index];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
spacing: 8
|
spacing: 8
|
||||||
|
|
@ -455,10 +492,14 @@ ColumnLayout {
|
||||||
|
|
||||||
ComboBox {
|
ComboBox {
|
||||||
id: codecComboBox
|
id: codecComboBox
|
||||||
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.preferredHeight: 40
|
Layout.preferredHeight: 40
|
||||||
model: ["h264", "hevc", "av1", "vp8", "vp9"]
|
model: ["h264", "hevc", "av1", "vp8", "vp9"]
|
||||||
currentIndex: model.indexOf(Settings.settings.recordingCodec || "h264")
|
currentIndex: model.indexOf(Settings.settings.recordingCodec || "h264")
|
||||||
|
onActivated: {
|
||||||
|
Settings.settings.recordingCodec = model[index];
|
||||||
|
}
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
implicitWidth: 120
|
implicitWidth: 120
|
||||||
|
|
@ -500,7 +541,9 @@ ColumnLayout {
|
||||||
model: codecComboBox.popup.visible ? codecComboBox.delegateModel : null
|
model: codecComboBox.popup.visible ? codecComboBox.delegateModel : null
|
||||||
currentIndex: codecComboBox.highlightedIndex
|
currentIndex: codecComboBox.highlightedIndex
|
||||||
|
|
||||||
ScrollIndicator.vertical: ScrollIndicator {}
|
ScrollIndicator.vertical: ScrollIndicator {
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
|
|
@ -509,10 +552,13 @@ ColumnLayout {
|
||||||
border.width: 1
|
border.width: 1
|
||||||
radius: 16
|
radius: 16
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
delegate: ItemDelegate {
|
delegate: ItemDelegate {
|
||||||
width: codecComboBox.width
|
width: codecComboBox.width
|
||||||
|
highlighted: codecComboBox.highlightedIndex === index
|
||||||
|
|
||||||
contentItem: Text {
|
contentItem: Text {
|
||||||
text: modelData.toUpperCase()
|
text: modelData.toUpperCase()
|
||||||
font.pixelSize: 13
|
font.pixelSize: 13
|
||||||
|
|
@ -520,19 +566,16 @@ ColumnLayout {
|
||||||
verticalAlignment: Text.AlignVCenter
|
verticalAlignment: Text.AlignVCenter
|
||||||
elide: Text.ElideRight
|
elide: Text.ElideRight
|
||||||
}
|
}
|
||||||
highlighted: codecComboBox.highlightedIndex === index
|
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: highlighted ? Theme.accentPrimary.toString().replace(/#/, "#1A") : "transparent"
|
color: highlighted ? Theme.accentPrimary.toString().replace(/#/, "#1A") : "transparent"
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onActivated: {
|
|
||||||
Settings.settings.recordingCodec = model[index];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
spacing: 8
|
spacing: 8
|
||||||
|
|
@ -555,10 +598,14 @@ ColumnLayout {
|
||||||
|
|
||||||
ComboBox {
|
ComboBox {
|
||||||
id: audioCodecComboBox
|
id: audioCodecComboBox
|
||||||
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.preferredHeight: 40
|
Layout.preferredHeight: 40
|
||||||
model: ["opus", "aac"]
|
model: ["opus", "aac"]
|
||||||
currentIndex: model.indexOf(Settings.settings.audioCodec || "opus")
|
currentIndex: model.indexOf(Settings.settings.audioCodec || "opus")
|
||||||
|
onActivated: {
|
||||||
|
Settings.settings.audioCodec = model[index];
|
||||||
|
}
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
implicitWidth: 120
|
implicitWidth: 120
|
||||||
|
|
@ -600,7 +647,9 @@ ColumnLayout {
|
||||||
model: audioCodecComboBox.popup.visible ? audioCodecComboBox.delegateModel : null
|
model: audioCodecComboBox.popup.visible ? audioCodecComboBox.delegateModel : null
|
||||||
currentIndex: audioCodecComboBox.highlightedIndex
|
currentIndex: audioCodecComboBox.highlightedIndex
|
||||||
|
|
||||||
ScrollIndicator.vertical: ScrollIndicator {}
|
ScrollIndicator.vertical: ScrollIndicator {
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
|
|
@ -609,10 +658,13 @@ ColumnLayout {
|
||||||
border.width: 1
|
border.width: 1
|
||||||
radius: 16
|
radius: 16
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
delegate: ItemDelegate {
|
delegate: ItemDelegate {
|
||||||
width: audioCodecComboBox.width
|
width: audioCodecComboBox.width
|
||||||
|
highlighted: audioCodecComboBox.highlightedIndex === index
|
||||||
|
|
||||||
contentItem: Text {
|
contentItem: Text {
|
||||||
text: modelData.toUpperCase()
|
text: modelData.toUpperCase()
|
||||||
font.pixelSize: 13
|
font.pixelSize: 13
|
||||||
|
|
@ -620,19 +672,16 @@ ColumnLayout {
|
||||||
verticalAlignment: Text.AlignVCenter
|
verticalAlignment: Text.AlignVCenter
|
||||||
elide: Text.ElideRight
|
elide: Text.ElideRight
|
||||||
}
|
}
|
||||||
highlighted: audioCodecComboBox.highlightedIndex === index
|
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: highlighted ? Theme.accentPrimary.toString().replace(/#/, "#1A") : "transparent"
|
color: highlighted ? Theme.accentPrimary.toString().replace(/#/, "#1A") : "transparent"
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onActivated: {
|
|
||||||
Settings.settings.audioCodec = model[index];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
spacing: 8
|
spacing: 8
|
||||||
|
|
@ -655,10 +704,14 @@ ColumnLayout {
|
||||||
|
|
||||||
ComboBox {
|
ComboBox {
|
||||||
id: colorRangeComboBox
|
id: colorRangeComboBox
|
||||||
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.preferredHeight: 40
|
Layout.preferredHeight: 40
|
||||||
model: ["limited", "full"]
|
model: ["limited", "full"]
|
||||||
currentIndex: model.indexOf(Settings.settings.colorRange || "limited")
|
currentIndex: model.indexOf(Settings.settings.colorRange || "limited")
|
||||||
|
onActivated: {
|
||||||
|
Settings.settings.colorRange = model[index];
|
||||||
|
}
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
implicitWidth: 120
|
implicitWidth: 120
|
||||||
|
|
@ -700,7 +753,9 @@ ColumnLayout {
|
||||||
model: colorRangeComboBox.popup.visible ? colorRangeComboBox.delegateModel : null
|
model: colorRangeComboBox.popup.visible ? colorRangeComboBox.delegateModel : null
|
||||||
currentIndex: colorRangeComboBox.highlightedIndex
|
currentIndex: colorRangeComboBox.highlightedIndex
|
||||||
|
|
||||||
ScrollIndicator.vertical: ScrollIndicator {}
|
ScrollIndicator.vertical: ScrollIndicator {
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
|
|
@ -709,10 +764,13 @@ ColumnLayout {
|
||||||
border.width: 1
|
border.width: 1
|
||||||
radius: 16
|
radius: 16
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
delegate: ItemDelegate {
|
delegate: ItemDelegate {
|
||||||
width: colorRangeComboBox.width
|
width: colorRangeComboBox.width
|
||||||
|
highlighted: colorRangeComboBox.highlightedIndex === index
|
||||||
|
|
||||||
contentItem: Text {
|
contentItem: Text {
|
||||||
text: modelData.charAt(0).toUpperCase() + modelData.slice(1)
|
text: modelData.charAt(0).toUpperCase() + modelData.slice(1)
|
||||||
font.pixelSize: 13
|
font.pixelSize: 13
|
||||||
|
|
@ -720,19 +778,16 @@ ColumnLayout {
|
||||||
verticalAlignment: Text.AlignVCenter
|
verticalAlignment: Text.AlignVCenter
|
||||||
elide: Text.ElideRight
|
elide: Text.ElideRight
|
||||||
}
|
}
|
||||||
highlighted: colorRangeComboBox.highlightedIndex === index
|
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: highlighted ? Theme.accentPrimary.toString().replace(/#/, "#1A") : "transparent"
|
color: highlighted ? Theme.accentPrimary.toString().replace(/#/, "#1A") : "transparent"
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onActivated: {
|
|
||||||
Settings.settings.colorRange = model[index];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
spacing: 8
|
spacing: 8
|
||||||
|
|
@ -761,10 +816,12 @@ ColumnLayout {
|
||||||
wrapMode: Text.WordWrap
|
wrapMode: Text.WordWrap
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: cursorSwitch
|
id: cursorSwitch
|
||||||
|
|
||||||
width: 52
|
width: 52
|
||||||
height: 32
|
height: 32
|
||||||
radius: 16
|
radius: 16
|
||||||
|
|
@ -774,6 +831,7 @@ ColumnLayout {
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: cursorThumb
|
id: cursorThumb
|
||||||
|
|
||||||
width: 28
|
width: 28
|
||||||
height: 28
|
height: 28
|
||||||
radius: 14
|
radius: 14
|
||||||
|
|
@ -788,7 +846,9 @@ ColumnLayout {
|
||||||
duration: 200
|
duration: 200
|
||||||
easing.type: Easing.OutCubic
|
easing.type: Easing.OutCubic
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MouseArea {
|
MouseArea {
|
||||||
|
|
@ -798,15 +858,22 @@ ColumnLayout {
|
||||||
Settings.settings.showCursor = !Settings.settings.showCursor;
|
Settings.settings.showCursor = !Settings.settings.showCursor;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.preferredHeight: 24
|
Layout.preferredHeight: 24
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -168,11 +168,23 @@ ColumnLayout {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
Layout.topMargin: 26
|
||||||
|
Layout.bottomMargin: 18
|
||||||
|
anchors {
|
||||||
|
top: headerArea.bottom
|
||||||
|
left: parent.left
|
||||||
|
right: parent.right
|
||||||
|
}
|
||||||
|
height: 1
|
||||||
|
color: Theme.outline
|
||||||
|
opacity: 0.3
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
spacing: 4
|
spacing: 4
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: 58
|
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
text: "Weather"
|
text: "Weather"
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,20 @@
|
||||||
import QtQuick
|
import QtQuick
|
||||||
import QtQuick.Controls
|
import QtQuick.Controls
|
||||||
import QtQuick.Layouts
|
import QtQuick.Layouts
|
||||||
import qs.Settings
|
|
||||||
import qs.Components
|
import qs.Components
|
||||||
import qs.Services
|
import qs.Services
|
||||||
|
import qs.Settings
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
spacing: 0
|
spacing: 0
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
anchors.margins: 0
|
anchors.margins: 0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ScrollView {
|
ScrollView {
|
||||||
id: scrollView
|
id: scrollView
|
||||||
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.fillHeight: true
|
Layout.fillHeight: true
|
||||||
padding: 0
|
padding: 0
|
||||||
|
|
@ -44,8 +44,6 @@ ColumnLayout {
|
||||||
Layout.bottomMargin: 8
|
Layout.bottomMargin: 8
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Wallpaper Settings Category
|
// Wallpaper Settings Category
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
spacing: 8
|
spacing: 8
|
||||||
|
|
@ -93,6 +91,7 @@ ColumnLayout {
|
||||||
|
|
||||||
TextInput {
|
TextInput {
|
||||||
id: folderInput
|
id: folderInput
|
||||||
|
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
anchors.leftMargin: 12
|
anchors.leftMargin: 12
|
||||||
anchors.rightMargin: 12
|
anchors.rightMargin: 12
|
||||||
|
|
@ -117,17 +116,30 @@ ColumnLayout {
|
||||||
cursorShape: Qt.IBeamCursor
|
cursorShape: Qt.IBeamCursor
|
||||||
onClicked: folderInput.forceActiveFocus()
|
onClicked: folderInput.forceActiveFocus()
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
Layout.topMargin: 26
|
||||||
|
Layout.bottomMargin: 18
|
||||||
|
anchors {
|
||||||
|
top: headerArea.bottom
|
||||||
|
left: parent.left
|
||||||
|
right: parent.right
|
||||||
|
}
|
||||||
|
height: 1
|
||||||
|
color: Theme.outline
|
||||||
|
opacity: 0.3
|
||||||
|
}
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
spacing: 4
|
spacing: 4
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: 58
|
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
text: "Automation"
|
text: "Automation"
|
||||||
|
|
@ -165,10 +177,12 @@ ColumnLayout {
|
||||||
wrapMode: Text.WordWrap
|
wrapMode: Text.WordWrap
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: randomWallpaperSwitch
|
id: randomWallpaperSwitch
|
||||||
|
|
||||||
width: 52
|
width: 52
|
||||||
height: 32
|
height: 32
|
||||||
radius: 16
|
radius: 16
|
||||||
|
|
@ -178,6 +192,7 @@ ColumnLayout {
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: randomWallpaperThumb
|
id: randomWallpaperThumb
|
||||||
|
|
||||||
width: 28
|
width: 28
|
||||||
height: 28
|
height: 28
|
||||||
radius: 14
|
radius: 14
|
||||||
|
|
@ -192,7 +207,9 @@ ColumnLayout {
|
||||||
duration: 200
|
duration: 200
|
||||||
easing.type: Easing.OutCubic
|
easing.type: Easing.OutCubic
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MouseArea {
|
MouseArea {
|
||||||
|
|
@ -202,8 +219,11 @@ ColumnLayout {
|
||||||
Settings.settings.randomWallpaper = !Settings.settings.randomWallpaper;
|
Settings.settings.randomWallpaper = !Settings.settings.randomWallpaper;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Use Wallpaper Theme
|
// Use Wallpaper Theme
|
||||||
|
|
@ -234,10 +254,12 @@ ColumnLayout {
|
||||||
wrapMode: Text.WordWrap
|
wrapMode: Text.WordWrap
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: wallpaperThemeSwitch
|
id: wallpaperThemeSwitch
|
||||||
|
|
||||||
width: 52
|
width: 52
|
||||||
height: 32
|
height: 32
|
||||||
radius: 16
|
radius: 16
|
||||||
|
|
@ -247,6 +269,7 @@ ColumnLayout {
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: wallpaperThemeThumb
|
id: wallpaperThemeThumb
|
||||||
|
|
||||||
width: 28
|
width: 28
|
||||||
height: 28
|
height: 28
|
||||||
radius: 14
|
radius: 14
|
||||||
|
|
@ -261,7 +284,9 @@ ColumnLayout {
|
||||||
duration: 200
|
duration: 200
|
||||||
easing.type: Easing.OutCubic
|
easing.type: Easing.OutCubic
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MouseArea {
|
MouseArea {
|
||||||
|
|
@ -271,8 +296,11 @@ ColumnLayout {
|
||||||
Settings.settings.useWallpaperTheme = !Settings.settings.useWallpaperTheme;
|
Settings.settings.useWallpaperTheme = !Settings.settings.useWallpaperTheme;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Wallpaper Interval
|
// Wallpaper Interval
|
||||||
|
|
@ -308,10 +336,12 @@ ColumnLayout {
|
||||||
Item {
|
Item {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Slider {
|
Slider {
|
||||||
id: intervalSlider
|
id: intervalSlider
|
||||||
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
from: 10
|
from: 10
|
||||||
to: 900
|
to: 900
|
||||||
|
|
@ -338,6 +368,7 @@ ColumnLayout {
|
||||||
color: Theme.accentPrimary
|
color: Theme.accentPrimary
|
||||||
radius: 2
|
radius: 2
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
handle: Rectangle {
|
handle: Rectangle {
|
||||||
|
|
@ -350,17 +381,31 @@ ColumnLayout {
|
||||||
border.color: Theme.accentPrimary
|
border.color: Theme.accentPrimary
|
||||||
border.width: 2
|
border.width: 2
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
Layout.topMargin: 26
|
||||||
|
Layout.bottomMargin: 18
|
||||||
|
anchors {
|
||||||
|
top: headerArea.bottom
|
||||||
|
left: parent.left
|
||||||
|
right: parent.right
|
||||||
|
}
|
||||||
|
height: 1
|
||||||
|
color: Theme.outline
|
||||||
|
opacity: 0.3
|
||||||
|
}
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
spacing: 4
|
spacing: 4
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: 58
|
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
text: "SWWW"
|
text: "SWWW"
|
||||||
|
|
@ -398,10 +443,12 @@ ColumnLayout {
|
||||||
wrapMode: Text.WordWrap
|
wrapMode: Text.WordWrap
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: swwwSwitch
|
id: swwwSwitch
|
||||||
|
|
||||||
width: 52
|
width: 52
|
||||||
height: 32
|
height: 32
|
||||||
radius: 16
|
radius: 16
|
||||||
|
|
@ -411,6 +458,7 @@ ColumnLayout {
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: swwwThumb
|
id: swwwThumb
|
||||||
|
|
||||||
width: 28
|
width: 28
|
||||||
height: 28
|
height: 28
|
||||||
radius: 14
|
radius: 14
|
||||||
|
|
@ -425,7 +473,9 @@ ColumnLayout {
|
||||||
duration: 200
|
duration: 200
|
||||||
easing.type: Easing.OutCubic
|
easing.type: Easing.OutCubic
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MouseArea {
|
MouseArea {
|
||||||
|
|
@ -435,8 +485,11 @@ ColumnLayout {
|
||||||
Settings.settings.useSWWW = !Settings.settings.useSWWW;
|
Settings.settings.useSWWW = !Settings.settings.useSWWW;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// SWWW Settings (only visible when useSWWW is enabled)
|
// SWWW Settings (only visible when useSWWW is enabled)
|
||||||
|
|
@ -476,6 +529,7 @@ ColumnLayout {
|
||||||
|
|
||||||
ComboBox {
|
ComboBox {
|
||||||
id: resizeComboBox
|
id: resizeComboBox
|
||||||
|
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
anchors.leftMargin: 12
|
anchors.leftMargin: 12
|
||||||
anchors.rightMargin: 12
|
anchors.rightMargin: 12
|
||||||
|
|
@ -511,7 +565,9 @@ ColumnLayout {
|
||||||
model: resizeComboBox.popup.visible ? resizeComboBox.delegateModel : null
|
model: resizeComboBox.popup.visible ? resizeComboBox.delegateModel : null
|
||||||
currentIndex: resizeComboBox.highlightedIndex
|
currentIndex: resizeComboBox.highlightedIndex
|
||||||
|
|
||||||
ScrollIndicator.vertical: ScrollIndicator { }
|
ScrollIndicator.vertical: ScrollIndicator {
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
|
|
@ -520,10 +576,13 @@ ColumnLayout {
|
||||||
border.width: 1
|
border.width: 1
|
||||||
radius: 8
|
radius: 8
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
delegate: ItemDelegate {
|
delegate: ItemDelegate {
|
||||||
width: resizeComboBox.width
|
width: resizeComboBox.width
|
||||||
|
highlighted: resizeComboBox.highlightedIndex === index
|
||||||
|
|
||||||
contentItem: Text {
|
contentItem: Text {
|
||||||
text: modelData
|
text: modelData
|
||||||
color: Theme.textPrimary
|
color: Theme.textPrimary
|
||||||
|
|
@ -531,13 +590,17 @@ ColumnLayout {
|
||||||
verticalAlignment: Text.AlignVCenter
|
verticalAlignment: Text.AlignVCenter
|
||||||
horizontalAlignment: Text.AlignLeft
|
horizontalAlignment: Text.AlignLeft
|
||||||
}
|
}
|
||||||
highlighted: resizeComboBox.highlightedIndex === index
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: parent.highlighted ? Theme.accentPrimary : "transparent"
|
color: parent.highlighted ? Theme.accentPrimary : "transparent"
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Transition Type
|
// Transition Type
|
||||||
|
|
@ -571,6 +634,7 @@ ColumnLayout {
|
||||||
|
|
||||||
ComboBox {
|
ComboBox {
|
||||||
id: transitionTypeComboBox
|
id: transitionTypeComboBox
|
||||||
|
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
anchors.leftMargin: 12
|
anchors.leftMargin: 12
|
||||||
anchors.rightMargin: 12
|
anchors.rightMargin: 12
|
||||||
|
|
@ -606,7 +670,9 @@ ColumnLayout {
|
||||||
model: transitionTypeComboBox.popup.visible ? transitionTypeComboBox.delegateModel : null
|
model: transitionTypeComboBox.popup.visible ? transitionTypeComboBox.delegateModel : null
|
||||||
currentIndex: transitionTypeComboBox.highlightedIndex
|
currentIndex: transitionTypeComboBox.highlightedIndex
|
||||||
|
|
||||||
ScrollIndicator.vertical: ScrollIndicator { }
|
ScrollIndicator.vertical: ScrollIndicator {
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
|
|
@ -615,10 +681,13 @@ ColumnLayout {
|
||||||
border.width: 1
|
border.width: 1
|
||||||
radius: 8
|
radius: 8
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
delegate: ItemDelegate {
|
delegate: ItemDelegate {
|
||||||
width: transitionTypeComboBox.width
|
width: transitionTypeComboBox.width
|
||||||
|
highlighted: transitionTypeComboBox.highlightedIndex === index
|
||||||
|
|
||||||
contentItem: Text {
|
contentItem: Text {
|
||||||
text: modelData
|
text: modelData
|
||||||
color: Theme.textPrimary
|
color: Theme.textPrimary
|
||||||
|
|
@ -626,13 +695,17 @@ ColumnLayout {
|
||||||
verticalAlignment: Text.AlignVCenter
|
verticalAlignment: Text.AlignVCenter
|
||||||
horizontalAlignment: Text.AlignLeft
|
horizontalAlignment: Text.AlignLeft
|
||||||
}
|
}
|
||||||
highlighted: transitionTypeComboBox.highlightedIndex === index
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: parent.highlighted ? Theme.accentPrimary : "transparent"
|
color: parent.highlighted ? Theme.accentPrimary : "transparent"
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Transition FPS
|
// Transition FPS
|
||||||
|
|
@ -668,10 +741,12 @@ ColumnLayout {
|
||||||
Item {
|
Item {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Slider {
|
Slider {
|
||||||
id: fpsSlider
|
id: fpsSlider
|
||||||
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
from: 30
|
from: 30
|
||||||
to: 500
|
to: 500
|
||||||
|
|
@ -698,6 +773,7 @@ ColumnLayout {
|
||||||
color: Theme.accentPrimary
|
color: Theme.accentPrimary
|
||||||
radius: 2
|
radius: 2
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
handle: Rectangle {
|
handle: Rectangle {
|
||||||
|
|
@ -710,7 +786,9 @@ ColumnLayout {
|
||||||
border.color: Theme.accentPrimary
|
border.color: Theme.accentPrimary
|
||||||
border.width: 2
|
border.width: 2
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Transition Duration
|
// Transition Duration
|
||||||
|
|
@ -746,10 +824,12 @@ ColumnLayout {
|
||||||
Item {
|
Item {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Slider {
|
Slider {
|
||||||
id: durationSlider
|
id: durationSlider
|
||||||
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
from: 0.25
|
from: 0.25
|
||||||
to: 10
|
to: 10
|
||||||
|
|
@ -776,6 +856,7 @@ ColumnLayout {
|
||||||
color: Theme.accentPrimary
|
color: Theme.accentPrimary
|
||||||
radius: 2
|
radius: 2
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
handle: Rectangle {
|
handle: Rectangle {
|
||||||
|
|
@ -788,15 +869,22 @@ ColumnLayout {
|
||||||
border.color: Theme.accentPrimary
|
border.color: Theme.accentPrimary
|
||||||
border.width: 2
|
border.width: 2
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.fillHeight: true
|
Layout.fillHeight: true
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue