feat: add gesture prop logic.

This commit is contained in:
2021-11-12 18:57:34 +08:00
parent 1c6d50a4b6
commit 07b9464496
8 changed files with 222 additions and 22 deletions
+18 -6
View File
@@ -1,10 +1,11 @@
import 'package:dde_gesture_manager/extensions.dart';
import 'package:dde_gesture_manager/models/content_layout.provider.dart';
import 'package:dde_gesture_manager/models/scheme.provider.dart';
import 'package:dde_gesture_manager/pages/gesture_editor.dart';
import 'package:dde_gesture_manager/pages/local_manager.dart';
import 'package:dde_gesture_manager/pages/market.dart';
import 'package:flutter/material.dart';
import 'package:dde_gesture_manager/models/content_layout.provider.dart';
import 'package:dde_gesture_manager/utils/helper.dart';
import 'package:flutter/material.dart';
class Content extends StatefulWidget {
const Content({Key? key}) : super(key: key);
@@ -13,6 +14,10 @@ class Content extends StatefulWidget {
_ContentState createState() => _ContentState();
}
class CopiedGesturePropProvider extends GesturePropProvider {
CopiedGesturePropProvider.empty() : super.empty();
}
class _ContentState extends State<Content> {
double? preWindowWidth;
@@ -21,10 +26,17 @@ class _ContentState extends State<Content> {
var windowWidth = MediaQuery.of(context).size.width;
var preferredPanelsStatus = H.getPreferredPanelsStatus(windowWidth);
var widthChanged = preWindowWidth != null && preWindowWidth != windowWidth;
var widget = ChangeNotifierProvider(
create: (context) => ContentLayoutProvider()
..localManagerOpened = preferredPanelsStatus.localManagerPanelOpened
..marketOpened = preferredPanelsStatus.marketPanelOpened,
var widget = MultiProvider(
providers: [
ChangeNotifierProvider(
create: (context) => ContentLayoutProvider()
..localManagerOpened = preferredPanelsStatus.localManagerPanelOpened
..marketOpened = preferredPanelsStatus.marketPanelOpened,
),
ChangeNotifierProvider(
create: (context) => CopiedGesturePropProvider.empty(),
),
],
builder: (context, child) {
if (widthChanged && mounted) {
Future.microtask(
+44 -4
View File
@@ -5,6 +5,7 @@ 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/pages/content.dart';
import 'package:dde_gesture_manager/utils/helper.dart';
import 'package:dde_gesture_manager/utils/keyboard_mapper.dart';
import 'package:dde_gesture_manager/widgets/dde_button.dart';
@@ -152,7 +153,42 @@ class GestureEditor extends StatelessWidget {
),
),
),
Container(height: 10),
Builder(builder: (context) {
var gesturePropProvider = context.watch<GesturePropProvider>();
var copiedGesturePropProvider = context.watch<CopiedGesturePropProvider>();
var schemeTree = schemeProvider.buildSchemeTree();
return Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
DButton.add(
enabled: !gesturePropProvider.editMode! && !schemeTree.fullFiled,
onTap: () {
var schemeProvider = context.read<SchemeProvider>();
schemeProvider.gestures.sout();
context.read<SchemeProvider>().setProps(gestures: [
...?schemeProvider.gestures,
H.getNextAvailableGestureProp(schemeProvider.buildSchemeTree())!,
]);
},
),
DButton.delete(
enabled: gesturePropProvider != GestureProp.empty() && !gesturePropProvider.editMode!,
),
DButton.duplicate(
enabled: gesturePropProvider != GestureProp.empty() && !gesturePropProvider.editMode!,
),
DButton.paste(
enabled: copiedGesturePropProvider != CopiedGesturePropProvider.empty() &&
!gesturePropProvider.editMode!,
),
]
.map((e) => Padding(
padding: const EdgeInsets.only(top: 3.0, right: 10.0, bottom: 8.0),
child: e,
))
.toList(),
);
}),
Container(
height: 300,
decoration: BoxDecoration(
@@ -414,9 +450,13 @@ List<DDataCell> _buildRowCellsNormal(BuildContext context, bool selected, Gestur
},
).toList(),
)
: Text(
gesture.command ?? '',
),
: (gesture.type == GestureType.built_in
? Text(
('${LocaleKeys.built_in_commands}.${(builtInCommands.contains(gesture.command) ? gesture.command : builtInCommands.first)!}')
.tr())
: Text(
gesture.command ?? '',
)),
Text(
gesture.remark ?? '',
),
+2
View File
@@ -2,6 +2,7 @@ import 'package:dde_gesture_manager/constants/constants.dart';
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.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';
@@ -111,6 +112,7 @@ class _LocalManagerState extends State<LocalManager> {
setState(() {
_selectedIndex = index;
});
context.read<GesturePropProvider>().copyFrom(GestureProp.empty());
},
child: MouseRegion(
cursor: SystemMouseCursors.click,