Add Qt Bigscreen (QML/CMake), remove Tauri

Add a native Qt "Bigscreen" shell: CMakeLists, C++ entry (main.cpp, InputRouter), QML module (Theme, ShellWindow, views and components) and a Bigscreen/.gitignore; update top-level .gitignore and README with Qt build/run instructions. Remove the legacy Tauri/web prototype files (package.json, package-lock.json, src-tauri and many web assets) as part of the migration to the Qt/CMake-based shell.
This commit is contained in:
2026-05-23 21:19:24 +12:00
parent 627c52a5b7
commit f8632e40e7
102 changed files with 1123 additions and 17645 deletions
+89
View File
@@ -0,0 +1,89 @@
import QtQuick
import Nebula.Bigscreen
Item {
id: root
property string label: ""
property string meta: ""
property string iconText: ""
property bool focused: false
property bool pressed: false
signal activated()
implicitWidth: Theme.tileWidth
implicitHeight: Theme.tileHeight
scale: pressed ? Theme.tilePressScale : (focused ? Theme.tileFocusScale : 1.0)
Behavior on scale {
NumberAnimation { duration: Theme.focusScaleDuration; easing.type: Easing.OutCubic }
}
Rectangle {
id: card
anchors.fill: parent
radius: 14
color: Theme.backgroundPanel
border.width: focused ? 2 : 1
border.color: focused ? Theme.accentCyan : Theme.accentLine
Rectangle {
anchors.fill: parent
radius: parent.radius
visible: focused
gradient: Gradient {
GradientStop { position: 0.0; color: "#224FD8FF" }
GradientStop { position: 1.0; color: "transparent" }
}
}
Column {
anchors.fill: parent
anchors.margins: 20
spacing: 10
Text {
text: root.iconText
font.pixelSize: 36
}
Text {
text: root.label
font: Theme.titleFont
color: Theme.textPrimary
}
Text {
text: root.meta
font: Theme.metaFont
color: Theme.textMuted
}
}
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: parent.bottom
anchors.margins: 12
height: 3
radius: 2
color: Theme.accentCyan
opacity: focused ? 1.0 : 0.0
Behavior on opacity {
NumberAnimation { duration: Theme.focusScaleDuration }
}
}
}
MouseArea {
anchors.fill: parent
hoverEnabled: true
onClicked: root.activated()
onPressed: root.pressed = true
onReleased: root.pressed = false
onCanceled: root.pressed = false
}
}