mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-25 14:25:02 +00:00
Qt6 Frontend (MetaBuilder Landing)
This directory contains a minimal Qt Quick replica of the public MetaBuilder landing page currently rendered by the Next.js Level1 component.
Purpose
- Mirror the hero marketing copy, feature highlights, contact CTA, and status overview that appear on
frontends/nextjs. - Provide a starting point for building a native Qt6 experience or prototyping desktop/web skins of the MetaBuilder brand.
Running
- Install Qt 6 (e.g., via the official installer) if you don’t already have it.
- Run the scene with
qmlscene frontends/qt6/FrontPage.qml(or build the Qt6 project and runfrontends/qt6/mainso the C++ entry point loadsFrontPage.qml). - Launch
qmlscene frontends/qt6/Storybook.qmlto explore the Storybook clone and toggle the components interactively. - Open
qmlscene frontends/qt6/PackageManager.qmlto browse the Ubuntu-Store-style package catalog (with repository controls, search, and install/uninstall actions).
You can also embed main.qml into a Qt Quick Application project and expose C++ integrations for live data later.
Component library
- Shared QML components live under
frontends/qt6/qmllib/MetaBuilder. - Import them via
import "qmllib/MetaBuilder" as MetaBuilderand reuseMetaBuilder.NavBar,MetaBuilder.HeroSection,MetaBuilder.FeatureCard,MetaBuilder.StatusCard, andMetaBuilder.ContactFormto keep future pages consistent.
Material UI rendition
- Material-inspired components live under
frontends/qt6/qmllib/Materialand provide palette tokens plus buttons, cards, text fields, chips, and sample layouts. - Import them with
import "qmllib/Material" as Materialand referenceMaterial.MaterialButton,Material.MaterialCard,Material.MaterialTextField,Material.MaterialChip, and the singleton paletteMaterial.MaterialPalette. - Use
Material.MaterialSurfaceandMaterial.MaterialDividerto group controls with Material elevation, spacing, and dividers. Material.MaterialButtonnow supports icon sources and a built-in ripple animation so interactions feel tactile.- Material badges live in
Material.MaterialBadgefor lightweight status chips (accented, dense, or outlined). Material.MaterialBadgealso acceptsiconSourceso you can anchor a micro icon beside the label.- Preview the Material view with
qmlscene frontends/qt6/MaterialLanding.qmlor embed it into your Qt Quick application to reuse the tokens and components across other screens. - Consult
frontends/qt6/MaterialMapping.mdfor a 1:1 mapping between the Material UI components used infrontends/nextjsand their QML counterparts (including notes on planned wrappers). - New components (Alert, Dialog, Snackbar, IconButton, Circular/Linear progress indicators, Skeleton, Switch) now live in the Material library so the Qt6 interface can reuse key UX patterns directly from the mapping guide.
- App bar, avatar, typography, link, and paper helpers also live inside
qmllib/Materialso you can scaffold navigation, typography, and layout sections without dropping into raw QtQuick primitives.Material.MaterialAppBarandMaterial.MaterialToolbarmimic the MUI AppBar/Toolbar pairing, whileMaterial.MaterialAvatar,Material.MaterialTypography,Material.MaterialLink, andMaterial.MaterialPapercover the display/style layer. Material.MaterialBoxadds a lightweight column container with consistent spacing, rounding, and default margins so you can reuse it anywhere a MaterialBoxorContainerwould be needed.- The Storybook clone in
frontends/qt6/Storybook.qmlshowcases the Material components together, supports interactive knobs, and lets designers preview buttons, grids, dialogs, and more in one place. PackageManager.qmlmimics an Ubuntu Store experience: browse repositories, inspect package metadata, and install/uninstall without exposing raw archives. It is published as thepackage-managerpackage so the manager itself can be installed just like any other view.- Add more packages via JSON manifests under
frontends/qt6/packages/(e.g.,music_player,watchtower,escape_room) to keep the catalog lively and expressive. - Procedural MOD assets live under
frontends/qt6/assets/audio; runpython3 scripts/generate_mod.pyto regenerate the Retro Games theme whenever you want a fresh tracker placeholder. - SVG logos for each package live in
frontends/qt6/assets/svgso you can render branded icons across the Package Manager, Storybook, and other shells. ModPlayerPanel.qml(used insideStorybook.qml) calls the new C++ModPlayerinterface, which depends onlibopenmpt(now provided throughconan); you can replayassets/audio/retro-gaming.modvia this player and extend it with bespoke trackers.- Sample package manifests live in
frontends/qt6/packages/; they describe dependencies (e.g.,frontpage,storybook,god_panel,supergod_panel,forum, etc.) so the new package manager has context for repo metadata and install flows. - The library now also exposes
Material.MaterialGrid,Material.MaterialAccordion,Material.MaterialCollapse,Material.MaterialCheckbox,Material.MaterialMenu, andMaterial.MaterialPopover, plusMaterial.MaterialMenuProps,Material.MaterialPopoverProps, andMaterial.MaterialDividerPropsto mirror the remaining MUI helpers.