Files
metabuilder/frontends/qt6/ModPlayerPanel.qml
johndoe6345789 3c13d01bce feat(qt6): restore 5-level builder vision with 15 God Panel tools
Complete Qt6/QML native frontend matching the old/ React 5-level platform:

- Qt5→Qt6 migration: versioned imports, TabView→TabBar+StackLayout,
  QtGraphicalEffects removed, QAudioOutput→stub, QJSValue::engine() fix
- Migrate from local qmllib/Material (35 components) to shared /qml/
  QmlComponents 1.0 library (119 components, 9 themes, 19 languages)
- 5-level auth system with seed users (demo/admin/god/super)
- Level 1: FrontPage, LoginView
- Level 2: DashboardView, ProfileView, CommentsView
- Level 3: AdminView (10 entities, full CRUD, search, filter, pagination)
- Level 4: GodPanel (13-tab builder) with SchemaEditor, WorkflowEditor,
  LuaEditor, DatabaseManager, PageRoutesManager, ComponentHierarchyEditor,
  CssClassManager, DropdownConfigManager, UserManagement, ThemeEditor,
  SMTPConfigEditor
- Level 5: SuperGodPanel (tenants, god users, power transfer, system health)
- Remove unused cpr dependency, fix conan Qt build (qtshadertools)
- Add ROADMAP.md with 10-phase plan including DBAL integration and
  Python+Jinja2 CMake generator

25 QML views (~12,800 LOC), 6 C++ files, 22 package views.
Builds successfully: Qt 6.7.3, MSVC 19.5, C++20.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 00:25:22 +00:00

43 lines
1.1 KiB
QML

import QtQuick
import QtQuick.Layouts
import QmlComponents 1.0
CPaper {
id: panel
width: 420
implicitHeight: contentCol.implicitHeight + 32
ColumnLayout {
id: contentCol
anchors.fill: parent
anchors.margins: 16
spacing: 14
CText { variant: "h4"; text: "MOD Player" }
CText {
variant: "body2"
text: "Play the procedural Retro Gaming MOD and watch the visualizer react."
}
FlexRow {
spacing: 12
CButton {
text: ModPlayer.playing ? "Replay MOD" : "Play MOD"
variant: "primary"
onClicked: ModPlayer.play("frontends/qt6/assets/audio/retro-gaming.mod")
}
CButton {
text: "Stop"
variant: "ghost"
onClicked: ModPlayer.stop()
enabled: ModPlayer.playing
}
}
CStatusBadge {
status: ModPlayer.playing ? "success" : "info"
text: ModPlayer.playing ? "Playing" : "Idle"
}
}
}