mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-24 13:54:57 +00:00
Add a large set of QML components (qml/Material, qml/MetaBuilder, qml/dbal) and a QmlComponents symlink for local development; migrate many frontends/qt6 files into qml/qt6. Replace the email client bootloader with a self-contained demo UI using FakeMUI primitives (MailboxLayout, ThreadList, EmailHeader, ComposeWindow), demo data, handlers, and new folder-navigation styles in globals.css. Update several QML component APIs to new signal/handler names (e.g. selectAllChanged→selectAllToggled, pageChanged→pageRequested, *Changed→*Edited) to standardize events. Add find_config_files() to frontends/qt6/generate_cmake.py to include config JS/JSON in QML/files and resources. Also add /frontends/qt6/_build to .gitignore.
43 lines
1.0 KiB
QML
43 lines
1.0 KiB
QML
import QtQuick
|
|
import QtQuick.Controls
|
|
|
|
import "MaterialPalette.qml" as MaterialPalette
|
|
|
|
Rectangle {
|
|
id: iconButton
|
|
property url iconSource: ""
|
|
property bool disabled: false
|
|
property string tooltip: ""
|
|
signal clicked()
|
|
|
|
width: 48
|
|
height: 48
|
|
radius: width / 2
|
|
color: iconButton.hovered && !disabled ? MaterialPalette.surfaceVariant : MaterialPalette.surface
|
|
border.color: MaterialPalette.outline
|
|
border.width: 1
|
|
|
|
property bool hovered: false
|
|
|
|
Image {
|
|
anchors.centerIn: parent
|
|
source: iconSource
|
|
width: 20
|
|
height: 20
|
|
opacity: disabled ? 0.4 : 1
|
|
fillMode: Image.PreserveAspectFit
|
|
}
|
|
|
|
MouseArea {
|
|
id: mouseArea
|
|
anchors.fill: parent
|
|
hoverEnabled: true
|
|
enabled: !disabled
|
|
onClicked: iconButton.clicked()
|
|
onPressed: iconButton.scale = 0.95
|
|
onReleased: iconButton.scale = 1
|
|
onEntered: iconButton.hovered = true
|
|
onExited: iconButton.hovered = false
|
|
}
|
|
}
|