- added two banners with some text
- added commandline argument for dark mode
This commit is contained in:
parent
76133ca283
commit
daf65b4cb1
6 changed files with 108 additions and 6 deletions
|
@ -58,7 +58,7 @@ Window {
|
||||||
id: appTheme
|
id: appTheme
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
appTheme.setTheme("Light")
|
appTheme.setTheme(darkMode ? "Dark":"Light")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -95,10 +95,43 @@ Window {
|
||||||
Component {
|
Component {
|
||||||
id: displayComp
|
id: displayComp
|
||||||
|
|
||||||
|
Column {
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
id: topBanner
|
||||||
|
width: parent.width
|
||||||
|
height: !showControls && showBanners ? backend.race.state === ScStwRace.IDLE ? parent.height * 0.1:parent.height * 0.05 : 0
|
||||||
|
color: "black"
|
||||||
|
|
||||||
|
Text {
|
||||||
|
|
||||||
|
anchors.fill: parent
|
||||||
|
|
||||||
|
horizontalAlignment: Text.AlignHCenter
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
|
||||||
|
font.pixelSize: height * 0.5
|
||||||
|
|
||||||
|
visible: height > 0
|
||||||
|
|
||||||
|
color: "white"
|
||||||
|
|
||||||
|
text: qsTr("Speed Climbing Stopwatch")
|
||||||
|
}
|
||||||
|
|
||||||
|
Behavior on height {
|
||||||
|
NumberAnimation {
|
||||||
|
duration: 200
|
||||||
|
easing.type: Easing.Linear
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: displayItm
|
id: displayItm
|
||||||
|
|
||||||
anchors.fill: parent
|
width: parent.width
|
||||||
|
height: parent.height - bottomBanner.height - topBanner.height
|
||||||
|
|
||||||
Image {
|
Image {
|
||||||
id: bannerImg
|
id: bannerImg
|
||||||
|
@ -123,12 +156,22 @@ Window {
|
||||||
TimerColumn {
|
TimerColumn {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
|
||||||
timers: backend.race.timers
|
timers: removeDisabledTimers(backend.race.timers)
|
||||||
|
|
||||||
colors: appTheme.theme.colors
|
colors: appTheme.theme.colors
|
||||||
fontName: appTheme.theme.fonts.timers
|
fontName: appTheme.theme.fonts.timers
|
||||||
|
|
||||||
opacity: !showControls || [ScStwRace.IDLE,ScStwRace.STARTING].indexOf(backend.race.state) < 0 ? 1:0
|
opacity: !showControls || [ScStwRace.IDLE,ScStwRace.STARTING].indexOf(backend.race.state) < 0 ? 1:0
|
||||||
|
|
||||||
|
function removeDisabledTimers(timers) {
|
||||||
|
var ret = []
|
||||||
|
for(var i = 0; i < timers.length; i++) {
|
||||||
|
if(timers[i]["state"] !== ScStwTimer.DISABLED)
|
||||||
|
ret.push(timers[i])
|
||||||
|
}
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
Behavior on opacity {
|
Behavior on opacity {
|
||||||
NumberAnimation {
|
NumberAnimation {
|
||||||
duration: 200
|
duration: 200
|
||||||
|
@ -405,6 +448,40 @@ Window {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
id: bottomBanner
|
||||||
|
width: parent.width
|
||||||
|
height: !showControls && showBanners ? backend.race.state === ScStwRace.IDLE ? parent.height * 0.1:parent.height * 0.05 : 0
|
||||||
|
color: "black"
|
||||||
|
|
||||||
|
|
||||||
|
Text {
|
||||||
|
|
||||||
|
anchors.fill: parent
|
||||||
|
|
||||||
|
horizontalAlignment: Text.AlignHCenter
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
|
||||||
|
font.pixelSize: height * 0.5
|
||||||
|
|
||||||
|
visible: height > 0
|
||||||
|
|
||||||
|
color: "white"
|
||||||
|
|
||||||
|
text: qsTr("www.itsblue.de/scstw")
|
||||||
|
}
|
||||||
|
|
||||||
|
Behavior on height {
|
||||||
|
NumberAnimation {
|
||||||
|
duration: 200
|
||||||
|
easing.type: Easing.Linear
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Component {
|
Component {
|
||||||
|
@ -425,6 +502,13 @@ Window {
|
||||||
image: appTheme.theme.images.SpeedHold
|
image: appTheme.theme.images.SpeedHold
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
id: textFieldEnableMa
|
||||||
|
hoverEnabled: true
|
||||||
|
anchors.fill: parent
|
||||||
|
anchors.leftMargin: parent.width * 0.9
|
||||||
|
}
|
||||||
|
|
||||||
TextField {
|
TextField {
|
||||||
id: ipAddrInputTf
|
id: ipAddrInputTf
|
||||||
|
|
||||||
|
@ -433,6 +517,8 @@ Window {
|
||||||
horizontalCenter: parent.horizontalCenter
|
horizontalCenter: parent.horizontalCenter
|
||||||
}
|
}
|
||||||
|
|
||||||
|
visible: !textFieldEnableMa.containsMouse
|
||||||
|
|
||||||
opacity: backend.scStwClient.state === ScStwClient.CONNECTED ? 0:1
|
opacity: backend.scStwClient.state === ScStwClient.CONNECTED ? 0:1
|
||||||
|
|
||||||
text: appSettings.baseStationIp
|
text: appSettings.baseStationIp
|
||||||
|
|
|
@ -51,11 +51,27 @@ int main(int argc, char *argv[])
|
||||||
engine.rootContext()->setContextProperty("XscreenHeight", size.height());
|
engine.rootContext()->setContextProperty("XscreenHeight", size.height());
|
||||||
engine.rootContext()->setContextProperty("XscreenWidth", size.width());
|
engine.rootContext()->setContextProperty("XscreenWidth", size.width());
|
||||||
|
|
||||||
if(argc > 1 && QString(argv[1]) == "--noControls")
|
QStringList args;
|
||||||
|
|
||||||
|
for(int i = 0; i <= argc; i++) {
|
||||||
|
args.append(argv[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(args.contains("--noControls"))
|
||||||
engine.rootContext()->setContextProperty("showControls", false);
|
engine.rootContext()->setContextProperty("showControls", false);
|
||||||
else
|
else
|
||||||
engine.rootContext()->setContextProperty("showControls", true);
|
engine.rootContext()->setContextProperty("showControls", true);
|
||||||
|
|
||||||
|
if(args.contains("--noBanners"))
|
||||||
|
engine.rootContext()->setContextProperty("showBanners", false);
|
||||||
|
else
|
||||||
|
engine.rootContext()->setContextProperty("showBanners", true);
|
||||||
|
|
||||||
|
if(args.contains("--darkMode"))
|
||||||
|
engine.rootContext()->setContextProperty("darkMode", true);
|
||||||
|
else
|
||||||
|
engine.rootContext()->setContextProperty("darkMode", false);
|
||||||
|
|
||||||
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
|
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
|
||||||
if (engine.rootObjects().isEmpty())
|
if (engine.rootObjects().isEmpty())
|
||||||
return -1;
|
return -1;
|
||||||
|
|
Binary file not shown.
|
@ -6,7 +6,7 @@ After=network.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
#ExecStartPre=/usr/sbin/sshd -t
|
#ExecStartPre=/usr/sbin/sshd -t
|
||||||
ExecStart=xinit /usr/bin/ScStwMonitor --noControls --
|
ExecStart=xinit /usr/bin/ScStwMonitor --noControls --darkMode --
|
||||||
WorkingDirectory=/
|
WorkingDirectory=/
|
||||||
User=root
|
User=root
|
||||||
StandardOutput=inherit
|
StandardOutput=inherit
|
||||||
|
|
Binary file not shown.
|
@ -1 +1 @@
|
||||||
Subproject commit ac0d1a46168ee8563caed54e54548893c6c9066d
|
Subproject commit eb1328642db8fb194659e1ff4b53d45c1dcbc56d
|
Reference in a new issue