Merge remote-tracking branch 'origin/dev' into dev
# Conflicts: # app/lib/pages/local_manager.dart
This commit is contained in:
@@ -1,7 +1,15 @@
|
|||||||
import 'package:dde_gesture_manager/builder/provider_annotation.dart';
|
import 'package:dde_gesture_manager/builder/provider_annotation.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
export 'package:flutter/material.dart' show Color;
|
||||||
|
|
||||||
@ProviderModel()
|
@ProviderModel()
|
||||||
class Settings {
|
class Settings {
|
||||||
@ProviderModelProp()
|
@ProviderModelProp()
|
||||||
bool? isDarkMode;
|
bool? isDarkMode;
|
||||||
|
|
||||||
|
@ProviderModelProp()
|
||||||
|
Color? activeColor;
|
||||||
|
|
||||||
|
Color get currentActiveColor => activeColor ?? const Color(0xff0069cc);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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/content_layout.provider.dart';
|
||||||
import 'package:dde_gesture_manager/models/scheme.dart';
|
import 'package:dde_gesture_manager/models/scheme.dart';
|
||||||
import 'package:dde_gesture_manager/models/scheme.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/utils/helper.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_button.dart';
|
||||||
import 'package:dde_gesture_manager/widgets/dde_data_table.dart';
|
import 'package:dde_gesture_manager/widgets/dde_data_table.dart';
|
||||||
@@ -12,40 +13,71 @@ import 'package:flutter/material.dart';
|
|||||||
class GestureEditor extends StatelessWidget {
|
class GestureEditor extends StatelessWidget {
|
||||||
const GestureEditor({Key? key}) : super(key: key);
|
const GestureEditor({Key? key}) : super(key: key);
|
||||||
|
|
||||||
List<DDataRow> _buildDataRow(List<GestureProp>? gestures, BuildContext context) => (gestures ?? [])
|
List<DDataRow> _buildDataRow(List<GestureProp>? gestures, BuildContext context) => (gestures ?? []).map((gesture) {
|
||||||
.map((gesture) => DDataRow(
|
bool selected = context.watch<GesturePropProvider>() == gesture;
|
||||||
onSelectChanged: (selected) {
|
return DDataRow(
|
||||||
if (selected == true)
|
onSelectChanged: (selected) {
|
||||||
context.read<GesturePropProvider>().setProps(
|
if (selected == true)
|
||||||
gesture: gesture.gesture,
|
context.read<GesturePropProvider>().setProps(
|
||||||
direction: gesture.direction,
|
gesture: gesture.gesture,
|
||||||
fingers: gesture.fingers,
|
direction: gesture.direction,
|
||||||
type: gesture.type,
|
fingers: gesture.fingers,
|
||||||
command: gesture.command,
|
type: gesture.type,
|
||||||
remark: gesture.remark,
|
command: gesture.command,
|
||||||
);
|
remark: gesture.remark,
|
||||||
},
|
);
|
||||||
selected: context.watch<GesturePropProvider>() == gesture,
|
},
|
||||||
cells: [
|
selected: selected,
|
||||||
Center(
|
cells: [
|
||||||
child: Text('${LocaleKeys.gesture_editor_gestures}.${H.getGestureName(gesture.gesture)}').tr(),
|
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(
|
).tr()),
|
||||||
child: Text('${LocaleKeys.gesture_editor_directions}.${H.getGestureDirectionName(gesture.direction)}')
|
Center(
|
||||||
.tr()),
|
child: Text(
|
||||||
Center(
|
'${gesture.fingers}',
|
||||||
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 ?? ''),
|
Center(
|
||||||
Text(gesture.remark ?? ''),
|
child: Text(
|
||||||
]
|
'${LocaleKeys.gesture_editor_types}.${H.getGestureTypeName(gesture.type)}',
|
||||||
.map(
|
style: TextStyle(
|
||||||
(ele) => DDataCell(ele),
|
color: selected ? Colors.white : null,
|
||||||
)
|
),
|
||||||
.toList(),
|
).tr()),
|
||||||
))
|
Text(
|
||||||
.toList();
|
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
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
@@ -129,7 +161,8 @@ class GestureEditor extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
dataRowColor: MaterialStateProperty.resolveWith<Color?>((Set<MaterialState> states) {
|
dataRowColor: MaterialStateProperty.resolveWith<Color?>((Set<MaterialState> states) {
|
||||||
if (states.contains(MaterialState.hovered)) return context.t.dialogBackgroundColor;
|
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;
|
return null;
|
||||||
}),
|
}),
|
||||||
columns: [
|
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/content_layout.provider.dart';
|
||||||
import 'package:dde_gesture_manager/models/local_schemes_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/scheme.provider.dart';
|
||||||
|
import 'package:dde_gesture_manager/models/settings.provider.dart';
|
||||||
import 'package:dde_gesture_manager/widgets/dde_button.dart';
|
import 'package:dde_gesture_manager/widgets/dde_button.dart';
|
||||||
import 'package:flutter/animation.dart';
|
import 'package:flutter/animation.dart';
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
@@ -35,7 +36,7 @@ class _LocalManagerState extends State<LocalManager> {
|
|||||||
Color _getItemBackgroundColor(int index) {
|
Color _getItemBackgroundColor(int index) {
|
||||||
Color _color = index % 2 == 0 ? context.t.scaffoldBackgroundColor : context.t.backgroundColor;
|
Color _color = index % 2 == 0 ? context.t.scaffoldBackgroundColor : context.t.backgroundColor;
|
||||||
if (index == _hoveringIndex) _color = context.t.scaffoldBackgroundColor;
|
if (index == _hoveringIndex) _color = context.t.scaffoldBackgroundColor;
|
||||||
if (index == _selectedIndex) _color = Colors.blueAccent;
|
if (index == _selectedIndex) _color = context.read<SettingsProvider>().currentActiveColor;
|
||||||
return _color;
|
return _color;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -157,6 +158,64 @@ class _LocalManagerState extends State<LocalManager> {
|
|||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
child: Column(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
children: [
|
||||||
|
Flexible(
|
||||||
|
child: ListView.builder(
|
||||||
|
controller: _scrollController,
|
||||||
|
itemBuilder: (context, index) => GestureDetector(
|
||||||
|
onDoubleTap: () {
|
||||||
|
context.read<SchemeProvider>().copyFrom(localSchemes[index].scheme);
|
||||||
|
setState(() {
|
||||||
|
_selectedIndex = index;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
onTap: () {
|
||||||
|
setState(() {
|
||||||
|
_selectedIndex = index;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
child: MouseRegion(
|
||||||
|
cursor: SystemMouseCursors.click,
|
||||||
|
onEnter: (_) {
|
||||||
|
setState(() {
|
||||||
|
_hoveringIndex = index;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
child: Container(
|
||||||
|
color: _getItemBackgroundColor(index),
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.only(right: 12.0),
|
||||||
|
child: Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
localSchemes[index].scheme.name ?? '',
|
||||||
|
style: TextStyle(
|
||||||
|
color: index == _selectedIndex ? Colors.white : null,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
'456',
|
||||||
|
style: TextStyle(
|
||||||
|
color: index == _selectedIndex ? Colors.white : null,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
itemCount: localSchemes.length,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
height: 150,
|
||||||
|
color: Colors.black,
|
||||||
|
),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -96,7 +96,16 @@ class H {
|
|||||||
'shortcut': GestureType.shortcut,
|
'shortcut': GestureType.shortcut,
|
||||||
'commandline': GestureType.commandline,
|
'commandline': GestureType.commandline,
|
||||||
}[typeName] ??
|
}[typeName] ??
|
||||||
GestureType.built_in;
|
GestureType.built_in;
|
||||||
|
|
||||||
|
static Color? parseQtActiveColor(String? inp) {
|
||||||
|
if (inp == null) return null;
|
||||||
|
var list = inp.split(',');
|
||||||
|
if (list.length != 4) return null;
|
||||||
|
var rgba = list.map<int>((e) => int.parse(e) ~/ 257).toList();
|
||||||
|
rgba.sout();
|
||||||
|
return Color.fromARGB(rgba[3], rgba[0], rgba[1], rgba[2]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class PreferredPanelsStatus {
|
class PreferredPanelsStatus {
|
||||||
|
|||||||
@@ -18,8 +18,11 @@ Future<void> initEvents(BuildContext context) async {
|
|||||||
} else {
|
} else {
|
||||||
var xsettings = GSettings('com.deepin.xsettings');
|
var xsettings = GSettings('com.deepin.xsettings');
|
||||||
String? themeName;
|
String? themeName;
|
||||||
|
Color? activeColor;
|
||||||
try {
|
try {
|
||||||
themeName = (await xsettings.get('theme-name')).toString();
|
themeName = (await xsettings.get('theme-name')).toString();
|
||||||
|
var _activeColor = (await xsettings.get('qt-active-color'));
|
||||||
|
activeColor = H.parseQtActiveColor(_activeColor.toNative());
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
print(e);
|
print(e);
|
||||||
context.read<SettingsProvider>().setProps(isDarkMode: false);
|
context.read<SettingsProvider>().setProps(isDarkMode: false);
|
||||||
@@ -27,10 +30,14 @@ Future<void> initEvents(BuildContext context) async {
|
|||||||
|
|
||||||
if (themeName != null) {
|
if (themeName != null) {
|
||||||
context.read<SettingsProvider>().setProps(isDarkMode: themeName.contains('dark'));
|
context.read<SettingsProvider>().setProps(isDarkMode: themeName.contains('dark'));
|
||||||
|
context.read<SettingsProvider>().setProps(activeColor: activeColor);
|
||||||
xsettings.keysChanged.listen((event) {
|
xsettings.keysChanged.listen((event) {
|
||||||
xsettings.get('theme-name').then((value) {
|
xsettings.get('theme-name').then((value) {
|
||||||
context.read<SettingsProvider>().setProps(isDarkMode: value.toString().contains('dark'));
|
context.read<SettingsProvider>().setProps(isDarkMode: value.toString().contains('dark'));
|
||||||
});
|
});
|
||||||
|
xsettings.get('qt-active-color').then((value) {
|
||||||
|
context.read<SettingsProvider>().setProps(activeColor: H.parseQtActiveColor(value.toNative()));
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user