diff --git a/qml/TopUI.qml b/qml/TopUI.qml index 83d3a32..341d380 100644 --- a/qml/TopUI.qml +++ b/qml/TopUI.qml @@ -15,14 +15,14 @@ T.Widget { property real thour: 0 property real t12hour: 0 - property real tmin: 0 + property real tmin: -1 editing: styleDialog.active readonly property var fonts: Qt.fontFamilies() - readonly property var fontweight: [Font.Light, Font.Normal, Font.Bold] - readonly property var sfontweight: [qsTr("Light"), qsTr("Normal"), qsTr("Bold")] + readonly property var fontweight: ["normal", "bold"] + readonly property var sfontweight: [qsTr("Normal"), qsTr("Bold")] - readonly property var configs: widget.settings.styles ? widget.settings.styles : {"Circle Color":"#fffcf9","Line Color":"#fffcf9","Line Width":38,"Shadow Color":"#e0e0e0","Shadow Size":0.5,"Battle UI":false,"Clock Visible":true,"Full Clock":true,"Font Color":"#f5f5f5","Font Size":44,"Font Name":fonts.length-1,"Font Weight":0,"Text Vertical Offset":16} + readonly property var configs: widget.settings.styles ? widget.settings.styles : {"Circle Color":"#fffcf9","Line Color":"#fffcf9","Line Width":38,"Shadow Color":"#e0e0e0","Shadow Size":0.5,"Battle UI":false,"Clock Visible":true,"Full Clock":true,"Font Color":"#f5f5f5","Font Size":60,"Font Name":fonts.length-1,"Font Weight":0,"Text Vertical Offset":-30} property string circle_color: configs["Circle Color"] property string line_color: configs["Line Color"] @@ -36,28 +36,40 @@ T.Widget { Timer { interval: 250 + running: text_clock.visible repeat: true onTriggered: { var now = new Date(); - tmin = now.getMinutes(); - thour = now.getHours(); - if (!configs["Full Clock"]) - t12hour = thour > 12 ? thour - 12 : thour; + if (tmin !== now.getMinutes()) { + tmin = now.getMinutes(); + thour = now.getHours(); + if (!configs["Full Clock"]) + t12hour = thour > 12 ? thour - 12 : thour; + text_clock.requestPaint(); + } } } - Text { + Canvas{ id: text_clock + width: widget.width + height: widget.height anchors.top: parent.top anchors.topMargin: widget.height/200*configs["Text Vertical Offset"] anchors.horizontalCenter: parent.horizontalCenter - color: configs["Font Color"] - text: configs["Full Clock"] ? ("0"+thour).slice(-2) + ":" + ("0"+tmin).slice(-2) : ("0"+t12hour).slice(-2) + ":" + ("0"+tmin).slice(-2) - font.pointSize: widget.height/200*configs["Font Size"] - font.family: fonts[configs["Font Name"]] - font.weight: fontweight[configs["Font Weight"]] + contextType: "2d" visible: widget.NVG.View.exposed && !configs["Battle UI"] && configs["Clock Visible"] + + onPaint: { + context.clearRect(0,0,width,height); + context.fillStyle = configs["Font Color"]; + context.font = "normal normal " + ["normal", "bold"][configs["Font Weight"]] + " " + widget.height/200*configs["Font Size"] + "px " + fonts[configs["Font Name"]]; + context.textAlign = 'center'; + context.beginPath(); + context.fillText(configs["Full Clock"] ? ("0"+thour).slice(-2) + ":" + ("0"+tmin).slice(-2) : ("0"+t12hour).slice(-2) + ":" + ("0"+tmin).slice(-2), width/2, height/2); + context.fill(); + } } Item { @@ -268,18 +280,18 @@ T.Widget { context.clearRect(0,0,width,height); context.shadowBlur = shadowBlur; context.shadowColor = shadowColor; - context.lineWidth = Math.max(0.08*configs["Line Width"] - shadowBlur, 0.1); + context.lineWidth = Math.max(0.08*configs["Line Width"], 0.1); context.strokeStyle = line_color; let deg = Math.asin(w/2/r)*0.95; context.beginPath(); if (circle.visible) { - context.arc(w/2, -r+h/2, r-shadowBlur/2, deg+Math.PI/2, Math.PI/2+circle.scale*size/1.22/r, true); + context.arc(w/2, -r+h/2, r, deg+Math.PI/2, Math.PI/2+circle.scale*size/1.22/r, true); context.stroke(); context.beginPath(); - context.arc(w/2, -r+h/2, r-shadowBlur/2, -deg+Math.PI/2, Math.PI/2-circle.scale*size/1.22/r, false); + context.arc(w/2, -r+h/2, r, -deg+Math.PI/2, Math.PI/2-circle.scale*size/1.22/r, false); context.stroke(); } else { - context.arc(w/2, -r+h/2, r-shadowBlur/2, deg+Math.PI/2, -deg+Math.PI/2, true); + context.arc(w/2, -r+h/2, r, deg+Math.PI/2, -deg+Math.PI/2, true); context.stroke(); } } @@ -334,6 +346,7 @@ T.Widget { c3.requestPaint(); c4.requestPaint(); c5.requestPaint(); + text_clock.requestPaint(); } } @@ -370,6 +383,7 @@ T.Widget { c3.requestPaint(); c4.requestPaint(); c5.requestPaint(); + text_clock.requestPaint(); } P.ColorPreference { @@ -454,7 +468,7 @@ T.Widget { from: 1 to: 100 stepSize: 1 - defaultValue: 44 + defaultValue: 60 displayValue: value + "%" } @@ -486,7 +500,7 @@ T.Widget { from: -100 to: 100 stepSize: 1 - defaultValue: 16 + defaultValue: -30 displayValue: value + "%" } @@ -514,6 +528,7 @@ T.Widget { c3.requestPaint(); c4.requestPaint(); c5.requestPaint(); + text_clock.requestPaint(); } } }