Add icon support for entities card title

This commit is contained in:
Yegor Vialov 2020-04-25 18:23:26 +00:00
parent 02bfaf7db6
commit 05c1427aa8
4 changed files with 23 additions and 13 deletions

View File

@ -7,6 +7,7 @@ class HACard {
String name;
String id;
String type;
String icon;
bool showName;
bool showState;
bool showEmpty;
@ -40,6 +41,7 @@ class HACard {
this.max,
this.depth: 1,
this.severity,
this.icon,
@required this.type
}) {
if (this.columnsCount <= 0) {

View File

@ -37,7 +37,12 @@ class EntitiesCard extends StatelessWidget {
CardHeader(
name: card.name,
trailing: headerSwitch,
emptyPadding: Sizes.rowPadding
emptyPadding: Sizes.rowPadding,
leading: card.icon != null ? Icon(
MaterialDesignIcons.getIconDataFromIconName(card.icon),
size: Sizes.iconSize,
color: Theme.of(context).textTheme.headline.color
) : null,
)
);
body.addAll(

View File

@ -4,10 +4,11 @@ class CardHeader extends StatelessWidget {
final String name;
final Widget trailing;
final Widget leading;
final Widget subtitle;
final double emptyPadding;
const CardHeader({Key key, this.name, this.emptyPadding: 0, this.trailing, this.subtitle}) : super(key: key);
const CardHeader({Key key, this.name, this.leading, this.emptyPadding: 0, this.trailing, this.subtitle}) : super(key: key);
@override
Widget build(BuildContext context) {
@ -15,6 +16,7 @@ class CardHeader extends StatelessWidget {
if ((name != null) && (name.trim().length > 0)) {
result = new ListTile(
trailing: trailing,
leading: leading,
subtitle: subtitle,
title: Text("$name",
textAlign: TextAlign.left,

View File

@ -46,6 +46,7 @@ class HAView {
id: "card",
name: rawCardInfo["title"] ?? rawCardInfo["name"],
type: rawCardInfo['type'] ?? CardType.ENTITIES,
icon: rawCardInfo['icon'],
columnsCount: rawCardInfo['columns'] ?? 4,
showName: (rawCardInfo['show_name'] ?? rawCard['show_name']) ?? true,
showHeaderToggle: (rawCardInfo['show_header_toggle'] ?? rawCard['show_header_toggle']) ?? false,