From 7064cb0e304a9e5197471d4b8e93b326aef26d08 Mon Sep 17 00:00:00 2001 From: estevez-dev Date: Sun, 10 Mar 2019 23:28:23 +0200 Subject: [PATCH] Resolves #272 Add 'Copy color' and 'Past color' --- .../controls/light_controls.dart | 39 +++++++++++++++++-- lib/home_assistant.class.dart | 1 + 2 files changed, 37 insertions(+), 3 deletions(-) diff --git a/lib/entity_widgets/controls/light_controls.dart b/lib/entity_widgets/controls/light_controls.dart index 296e863..2fbbe70 100644 --- a/lib/entity_widgets/controls/light_controls.dart +++ b/lib/entity_widgets/controls/light_controls.dart @@ -171,9 +171,42 @@ class _LightControlsWidgetState extends State { Widget _buildColorControl(LightEntity entity) { if (entity.supportColor) { - return LightColorPicker( - color: _tmpColor, - onColorSelected: (color) => _setColor(entity, color), + HSVColor savedColor = HomeAssistantModel.of(context)?.homeAssistant?.savedColor; + return Column( + mainAxisSize: MainAxisSize.min, + children: [ + LightColorPicker( + color: _tmpColor, + onColorSelected: (color) => _setColor(entity, color), + ), + Padding( + padding: EdgeInsets.only(top: 0.0), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + FlatButton( + color: _tmpColor.toColor(), + child: Text('Copy color'), + onPressed: _tmpColor == null ? null : () { + setState(() { + HomeAssistantModel + .of(context) + .homeAssistant + .savedColor = _tmpColor; + }); + }, + ), + FlatButton( + color: savedColor.toColor(), + child: Text('Paste color'), + onPressed: savedColor == null ? null : () { + _setColor(entity, savedColor); + }, + ) + ], + ) + ) + ], ); } else { return Container(width: 0.0, height: 0.0); diff --git a/lib/home_assistant.class.dart b/lib/home_assistant.class.dart index 36075eb..c2f8bec 100644 --- a/lib/home_assistant.class.dart +++ b/lib/home_assistant.class.dart @@ -15,6 +15,7 @@ class HomeAssistant { HomeAssistantUI ui; Map _instanceConfig = {}; String _userName; + HSVColor savedColor; Map _rawLovelaceData;