diff options
Diffstat (limited to 'src/settingsui/display/Display.qml')
-rw-r--r-- | src/settingsui/display/Display.qml | 240 |
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 + } + } } |