Files
metabuilder/qml/Material/MaterialIconButton.qml
johndoe6345789 786f91ec64 Add QML Material lib, demo email UI, and QML refactor
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.
2026-03-19 10:18:09 +00:00

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
}
}