summaryrefslogtreecommitdiffstats
path: root/src/settingsui/display/Display.qml
diff options
context:
space:
mode:
Diffstat (limited to 'src/settingsui/display/Display.qml')
-rw-r--r--src/settingsui/display/Display.qml240
1 files changed, 160 insertions, 80 deletions
diff --git a/src/settingsui/display/Display.qml b/src/settingsui/display/Display.qml
index 450ac41..908bd95 100644
--- a/src/settingsui/display/Display.qml
+++ b/src/settingsui/display/Display.qml
@@ -30,101 +30,181 @@ import QtQuick 2.6
import QtQuick.Layouts 1.3
import QtQuick.Controls 2.0
import QtDeviceUtilities.DisplaySettings 1.0
+import QtDemoLauncher.QtButtonImageProvider 1.0
Item {
id: root
property string title: qsTr("Display Settings")
property int titleWidth: width * 0.382
+ property int margin: root.width * 0.05
- GroupBox {
- title: qsTr("Display Settings")
- anchors.margins: 20
- anchors.left: parent.left
+ Text {
+ id: displayText
anchors.top: parent.top
- anchors.right:parent.right
+ anchors.left: parent.left
+ font.pixelSize: parent.height * 0.045
+ color: "white"
+ text: qsTr("Display")
+ }
- ColumnLayout {
- anchors.fill: parent
+ Rectangle {
+ id: btmLine
+ anchors.top: displayText.bottom
+ anchors.topMargin: parent.height * 0.025
+ anchors.left: displayText.left
+ width: parent.width * 0.275
+ height: parent.height * 0.005
+ }
- RowLayout {
- width: parent.width
- spacing: 10
+ Label {
+ id: brightnessLabel
+ anchors.top: btmLine.bottom
+ anchors.topMargin: parent.height * 0.1
+ font.pixelSize: parent.height * 0.04
+ text: qsTr("Brightness ") + (brightnessSlider.valueAt(brightnessSlider.position) / 255 * 100).toFixed(1) + "%"
+ horizontalAlignment: Text.AlignRight
+ color: "white"
+ }
- Label {
- text: qsTr("Brightness:")
- Layout.preferredWidth: root.titleWidth
- Layout.alignment: Qt.AlignVCenter
- horizontalAlignment: Text.AlignRight
- }
- Slider {
- id: brightnessSlider
- value: DisplaySettings.displayBrightness
- Layout.alignment: Qt.AlignVCenter
- Layout.fillWidth: true
- from: 0
- to: 255
- }
- }
- Binding {
- target: DisplaySettings
- property: "displayBrightness"
- value: brightnessSlider.position * brightnessSlider.to
+ Slider {
+ id: brightnessSlider
+ anchors.top: brightnessLabel.bottom
+ anchors.topMargin: parent.height * 0.05
+ anchors.left: parent.left
+ anchors.right: parent.right
+ value: DisplaySettings.displayBrightness
+ Layout.alignment: Qt.AlignVCenter
+ Layout.fillWidth: true
+ from: 0
+ to: 255
+ background: Rectangle {
+ id: sliderBackground
+ x: brightnessSlider.leftPadding
+ y: brightnessSlider.topPadding + brightnessSlider.availableHeight / 2 - height / 2
+ implicitWidth: root.width
+ implicitHeight: root.height * 0.01
+ width: brightnessSlider.availableWidth
+ height: implicitHeight
+ radius: 2
+ color: "#9d9faa"
+ Rectangle {
+ width: brightnessSlider.visualPosition * parent.width
+ height: parent.height
+ color: "white"
+ radius: 2
}
- GridLayout {
- columns: 2
- rows: 3
- rowSpacing: 10
+ }
+ handle: Rectangle {
+ x: brightnessSlider.leftPadding + brightnessSlider.visualPosition * (brightnessSlider.availableWidth - width)
+ y: brightnessSlider.topPadding + brightnessSlider.availableHeight / 2 - height / 2
+ height: sliderBackground.height * 7
+ width: height
+ radius: 1000
+ antialiasing: true
+ color: "#41cd52"
+ }
+ }
- Label {
- text: qsTr("Physical screen size:")
- Layout.preferredWidth: root.titleWidth
- Layout.alignment: Qt.AlignVCenter
- horizontalAlignment: Text.AlignRight
- wrapMode: Label.WordWrap
- }
- RadioButton {
- text: qsTr("Default")
- checked: !DisplaySettings.physicalScreenSizeOverride
- }
- RadioButton {
- id: custom
- Layout.column: 1
- Layout.row: 1
- text: qsTr("Custom")
- checked: DisplaySettings.physicalScreenSizeOverride
- onCheckedChanged: DisplaySettings.physicalScreenSizeOverride = checked
- }
- GroupBox {
- title: qsTr("Size (in inches): %1").arg(DisplaySettings.physicalScreenSizeInch)
- Layout.column: 1
- Layout.row: 2
- Layout.fillWidth: true
- visible: custom.checked
+ Label {
+ id: screenSizeLabel
+ anchors.top: brightnessSlider.bottom
+ anchors.topMargin: parent.height * 0.1
+ font.pixelSize: parent.height * 0.04
+ text: qsTr("Physical screen size")
+ Layout.preferredWidth: root.titleWidth
+ Layout.alignment: Qt.AlignVCenter
+ horizontalAlignment: Text.AlignRight
+ wrapMode: Label.WordWrap
+ color: "white"
+ }
- RowLayout {
- spacing: 10
- width: parent.width
+ Row {
+ id: widthRow
+ height: parent.height * 0.075
+ anchors.top: screenSizeLabel.bottom
+ anchors.topMargin: parent.height * 0.035
+ anchors.left: parent.left
+ Text {
+ id: widthText
+ height: parent.height
+ width: root.width * 0.075
+ text: qsTr("Width")
+ color: "white"
+ font.pixelSize: height * 0.35
+ verticalAlignment: Text.AlignVCenter
+ horizontalAlignment: Text.AlignLeft
+ }
+ TextField {
+ id: widthField
+ width: root.width * 0.1
+ height: parent.height
+ color: "black"
+ text: DisplaySettings.physicalScreenWidthMm
+ inputMethodHints: Qt.ImhDigitsOnly
+ background: Rectangle {
+ border.color: widthField.focus ? "#41cd52" : "transparent"
+ border.width: parent.width * 0.05
+ }
+ }
+ }
- Label {
- text: sizeSlider.from
- Layout.alignment: Qt.AlignVCenter
- }
- Slider {
- id: sizeSlider
- value: DisplaySettings.physicalScreenSizeInch
- Layout.fillWidth: true
- stepSize: 1
- from: 4
- to: 60
- onPositionChanged: DisplaySettings.physicalScreenSizeInch = sizeSlider.from + Math.floor(sizeSlider.position * (sizeSlider.to - sizeSlider.from))
- }
- Label {
- text: sizeSlider.to
- Layout.alignment: Qt.AlignVCenter | Qt.AlignRight
- }
- }
- }
+ Row {
+ id: heightRow
+ height: parent.height * 0.075
+ anchors.top: screenSizeLabel.bottom
+ anchors.topMargin: parent.height * 0.035
+ anchors.left: widthRow.right
+ anchors.leftMargin: root.margin * 0.5
+ Text {
+ id: heightText
+ height: parent.height
+ width: root.width * 0.085
+ text: qsTr("Height")
+ color: "white"
+ font.pixelSize: height * 0.35
+ verticalAlignment: Text.AlignVCenter
+ horizontalAlignment: Text.AlignLeft
+ }
+ TextField {
+ id: heightField
+ width: root.width * 0.1
+ height: parent.height
+ color: "black"
+ text: DisplaySettings.physicalScreenHeightMm
+ inputMethodHints: Qt.ImhDigitsOnly
+ background: Rectangle {
+ border.color: heightField.focus ? "#41cd52" : "transparent"
+ border.width: parent.width * 0.05
}
}
}
+
+ QtButton {
+ id: setButton
+ height: parent.height * 0.075
+ anchors.top: heightRow.bottom
+ anchors.topMargin: parent.height * 0.035
+ fillColor: "#41cd52"
+ borderColor: "transparent"
+ text: qsTr("SET")
+ onClicked: {
+ DisplaySettings.physicalScreenHeightMm = parseInt(heightField.text)
+ DisplaySettings.physicalScreenWidthMm = parseInt(widthField.text)
+ }
+ }
+ QtButton {
+ id: resetButton
+ height: parent.height * 0.075
+ anchors.top: heightRow.bottom
+ anchors.topMargin: parent.height * 0.035
+ anchors.left: setButton.right
+ anchors.leftMargin: root.margin * 0.5
+ borderColor: "transparent"
+ fillColor: "#9d9faa"
+ text: qsTr("RESET TO DEFAULT")
+ onClicked: {
+ DisplaySettings.physicalScreenHeightMm = 90
+ DisplaySettings.physicalScreenWidthMm = 154
+ }
+ }
}