feat: add active color to settings provider.
This commit is contained in:
@@ -3,6 +3,7 @@ import 'package:dde_gesture_manager/extensions.dart';
|
||||
import 'package:dde_gesture_manager/models/content_layout.provider.dart';
|
||||
import 'package:dde_gesture_manager/models/scheme.dart';
|
||||
import 'package:dde_gesture_manager/models/scheme.provider.dart';
|
||||
import 'package:dde_gesture_manager/models/settings.provider.dart';
|
||||
import 'package:dde_gesture_manager/utils/helper.dart';
|
||||
import 'package:dde_gesture_manager/widgets/dde_button.dart';
|
||||
import 'package:dde_gesture_manager/widgets/dde_data_table.dart';
|
||||
@@ -12,40 +13,71 @@ import 'package:flutter/material.dart';
|
||||
class GestureEditor extends StatelessWidget {
|
||||
const GestureEditor({Key? key}) : super(key: key);
|
||||
|
||||
List<DDataRow> _buildDataRow(List<GestureProp>? gestures, BuildContext context) => (gestures ?? [])
|
||||
.map((gesture) => DDataRow(
|
||||
onSelectChanged: (selected) {
|
||||
if (selected == true)
|
||||
context.read<GesturePropProvider>().setProps(
|
||||
gesture: gesture.gesture,
|
||||
direction: gesture.direction,
|
||||
fingers: gesture.fingers,
|
||||
type: gesture.type,
|
||||
command: gesture.command,
|
||||
remark: gesture.remark,
|
||||
);
|
||||
},
|
||||
selected: context.watch<GesturePropProvider>() == gesture,
|
||||
cells: [
|
||||
Center(
|
||||
child: Text('${LocaleKeys.gesture_editor_gestures}.${H.getGestureName(gesture.gesture)}').tr(),
|
||||
List<DDataRow> _buildDataRow(List<GestureProp>? gestures, BuildContext context) => (gestures ?? []).map((gesture) {
|
||||
bool selected = context.watch<GesturePropProvider>() == gesture;
|
||||
return DDataRow(
|
||||
onSelectChanged: (selected) {
|
||||
if (selected == true)
|
||||
context.read<GesturePropProvider>().setProps(
|
||||
gesture: gesture.gesture,
|
||||
direction: gesture.direction,
|
||||
fingers: gesture.fingers,
|
||||
type: gesture.type,
|
||||
command: gesture.command,
|
||||
remark: gesture.remark,
|
||||
);
|
||||
},
|
||||
selected: selected,
|
||||
cells: [
|
||||
Center(
|
||||
child: Text(
|
||||
'${LocaleKeys.gesture_editor_gestures}.${H.getGestureName(gesture.gesture)}',
|
||||
style: TextStyle(
|
||||
color: selected ? Colors.white : null,
|
||||
),
|
||||
).tr(),
|
||||
),
|
||||
Center(
|
||||
child: Text(
|
||||
'${LocaleKeys.gesture_editor_directions}.${H.getGestureDirectionName(gesture.direction)}',
|
||||
style: TextStyle(
|
||||
color: selected ? Colors.white : null,
|
||||
),
|
||||
Center(
|
||||
child: Text('${LocaleKeys.gesture_editor_directions}.${H.getGestureDirectionName(gesture.direction)}')
|
||||
.tr()),
|
||||
Center(
|
||||
child: Text('${gesture.fingers}'),
|
||||
).tr()),
|
||||
Center(
|
||||
child: Text(
|
||||
'${gesture.fingers}',
|
||||
style: TextStyle(
|
||||
color: selected ? Colors.white : null,
|
||||
),
|
||||
),
|
||||
Center(child: Text('${LocaleKeys.gesture_editor_types}.${H.getGestureTypeName(gesture.type)}').tr()),
|
||||
Text(gesture.command ?? ''),
|
||||
Text(gesture.remark ?? ''),
|
||||
]
|
||||
.map(
|
||||
(ele) => DDataCell(ele),
|
||||
)
|
||||
.toList(),
|
||||
))
|
||||
.toList();
|
||||
),
|
||||
Center(
|
||||
child: Text(
|
||||
'${LocaleKeys.gesture_editor_types}.${H.getGestureTypeName(gesture.type)}',
|
||||
style: TextStyle(
|
||||
color: selected ? Colors.white : null,
|
||||
),
|
||||
).tr()),
|
||||
Text(
|
||||
gesture.command ?? '',
|
||||
style: TextStyle(
|
||||
color: selected ? Colors.white : null,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
gesture.remark ?? '',
|
||||
style: TextStyle(
|
||||
color: selected ? Colors.white : null,
|
||||
),
|
||||
),
|
||||
]
|
||||
.map(
|
||||
(ele) => DDataCell(ele),
|
||||
)
|
||||
.toList(),
|
||||
);
|
||||
}).toList();
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
@@ -129,7 +161,8 @@ class GestureEditor extends StatelessWidget {
|
||||
),
|
||||
dataRowColor: MaterialStateProperty.resolveWith<Color?>((Set<MaterialState> states) {
|
||||
if (states.contains(MaterialState.hovered)) return context.t.dialogBackgroundColor;
|
||||
if (states.contains(MaterialState.selected)) return Colors.blueAccent;
|
||||
if (states.contains(MaterialState.selected))
|
||||
return context.read<SettingsProvider>().currentActiveColor;
|
||||
return null;
|
||||
}),
|
||||
columns: [
|
||||
|
||||
@@ -3,6 +3,7 @@ import 'package:dde_gesture_manager/extensions.dart';
|
||||
import 'package:dde_gesture_manager/models/content_layout.provider.dart';
|
||||
import 'package:dde_gesture_manager/models/local_schemes_provider.dart';
|
||||
import 'package:dde_gesture_manager/models/scheme.provider.dart';
|
||||
import 'package:dde_gesture_manager/models/settings.provider.dart';
|
||||
import 'package:dde_gesture_manager/widgets/dde_button.dart';
|
||||
import 'package:flutter/animation.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
@@ -32,7 +33,7 @@ class _LocalManagerState extends State<LocalManager> {
|
||||
Color _getItemBackgroundColor(int index) {
|
||||
Color _color = index % 2 == 0 ? context.t.scaffoldBackgroundColor : context.t.backgroundColor;
|
||||
if (index == _hoveringIndex) _color = context.t.scaffoldBackgroundColor;
|
||||
if (index == _selectedIndex) _color = Colors.blueAccent;
|
||||
if (index == _selectedIndex) _color = context.read<SettingsProvider>().currentActiveColor;
|
||||
return _color;
|
||||
}
|
||||
|
||||
@@ -115,8 +116,18 @@ class _LocalManagerState extends State<LocalManager> {
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(localSchemes[index].scheme.name ?? ''),
|
||||
Text('456'),
|
||||
Text(
|
||||
localSchemes[index].scheme.name ?? '',
|
||||
style: TextStyle(
|
||||
color: index == _selectedIndex ? Colors.white : null,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
'456',
|
||||
style: TextStyle(
|
||||
color: index == _selectedIndex ? Colors.white : null,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user