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
+99
View File
@@ -0,0 +1,99 @@
import QtQuick
import QtQuick.Layouts
import Nebula.Bigscreen
ColumnLayout {
id: root
signal goBack()
readonly property var entries: [
{ title: "Nebula Demo", meta: "Local • Ready", icon: "🎮" },
{ title: "Retro Runner", meta: "Wine • Installed", icon: "👾" },
{ title: "Media Hub", meta: "App • Installed", icon: "🎬" }
]
property int focusIndex: 0
spacing: 20
Text {
text: "Library"
font: Theme.brandFont
color: Theme.textPrimary
Layout.leftMargin: 40
}
Text {
text: "Mock entries for v0 — scanners and launchers come later."
font: Theme.metaFont
color: Theme.textMuted
Layout.leftMargin: 40
Layout.bottomMargin: 8
}
ListView {
id: list
Layout.fillWidth: true
Layout.fillHeight: true
Layout.leftMargin: 40
Layout.rightMargin: 40
clip: true
spacing: 12
model: root.entries
delegate: Rectangle {
width: list.width
height: 72
radius: 12
color: index === root.focusIndex ? "#22304A66" : Theme.backgroundPanel
border.color: index === root.focusIndex ? Theme.accentCyan : Theme.accentLine
border.width: index === root.focusIndex ? 2 : 1
RowLayout {
anchors.fill: parent
anchors.margins: 16
spacing: 16
Text {
text: modelData.icon
font.pixelSize: 28
}
ColumnLayout {
spacing: 2
Text {
text: modelData.title
font: Theme.titleFont
color: Theme.textPrimary
}
Text {
text: modelData.meta
font: Theme.metaFont
color: Theme.textMuted
}
}
}
}
}
function handleInput(action) {
switch (action) {
case InputRouter.Up:
focusIndex = Math.max(0, focusIndex - 1)
list.currentIndex = focusIndex
break
case InputRouter.Down:
focusIndex = Math.min(entries.length - 1, focusIndex + 1)
list.currentIndex = focusIndex
break
case InputRouter.Back:
root.goBack()
break
case InputRouter.Accept:
break
default:
break
}
}
}