Skip to content

Commit 3541ced

Browse files
committed
Merge remote-tracking branch 'origin/dev' into dev
2 parents d3dc717 + 0383e90 commit 3541ced

4 files changed

Lines changed: 41 additions & 25 deletions

File tree

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,11 +128,11 @@
128128

129129
- [x] 方案下载功能实现
130130
- [x] 方案应用功能实现
131-
- [ ] BugFix
131+
- [x] BugFix
132132
- [x] MD 编辑器中的UI文本国际化
133133
- [x] 编写帮助说明文档
134134
- [ ] 浅色模式界面优化
135-
- [ ] 打包上架 Deepin/UOS 应用商店
135+
- [x] 打包上架 Deepin/UOS 应用商店
136136

137137

138138
# FAQ

app/lib/models/scheme.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,9 +159,9 @@ class Scheme {
159159
this.name = LocaleKeys.str_new_scheme.tr();
160160
}
161161

162-
SchemeTree buildSchemeTree() {
162+
SchemeTree buildSchemeTree({String? availableGestureId}) {
163163
var schemeTree = SchemeTree();
164-
this.gestures!.forEach((gesture) {
164+
this.gestures!.where((e) => e.id != availableGestureId).forEach((gesture) {
165165
var schemeTreeNode = schemeTree.nodes.firstWhere((ele) => ele.fingers == gesture.fingers);
166166
var schemeGestureNode = schemeTreeNode.nodes.firstWhere((element) => element.type == gesture.gesture);
167167
schemeGestureNode.nodes.firstWhere((element) => element.direction == gesture.direction).available = false;

app/lib/pages/gesture_editor.dart

Lines changed: 36 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -446,20 +446,13 @@ void saveGesturesToLocal(BuildContext context, SchemeProvider schemeProvider, Li
446446

447447
List<DDataCell> _buildRowCellsEditing(BuildContext context) {
448448
var gesture = context.read<GesturePropProvider>();
449-
var schemeTree = context.read<SchemeProvider>().buildSchemeTree();
449+
var schemeTree = context.read<SchemeProvider>().buildSchemeTree(availableGestureId: gesture.id);
450450
var availableFingers = schemeTree.nodes.where((node) => !node.fullFiled).map((e) => e.fingers);
451-
if (!availableFingers.contains(gesture.fingers)) {
452-
availableFingers = [...availableFingers, gesture.fingers!]..sort();
453-
}
454-
455451
var availableGestures = schemeTree.nodes
456452
.firstWhere((node) => node.fingers == gesture.fingers)
457453
.nodes
458454
.where((node) => !node.fullFiled)
459455
.map((e) => e.type);
460-
if (!availableGestures.any((type) => type == gesture.gesture)) {
461-
availableGestures = [...availableGestures, gesture.gesture!]..sort((a, b) => a.index - b.index);
462-
}
463456

464457
var availableDirection = schemeTree.nodes
465458
.firstWhere((node) => node.fingers == gesture.fingers)
@@ -469,10 +462,6 @@ List<DDataCell> _buildRowCellsEditing(BuildContext context) {
469462
.where((node) => !node.fullFiled)
470463
.map((e) => e.direction);
471464

472-
if (!availableDirection.any((direction) => direction == gesture.direction)) {
473-
availableDirection = [...availableDirection, gesture.direction!]..sort((a, b) => a.index - b.index);
474-
}
475-
476465
return [
477466
DButton.dropdown(
478467
enabled: true,
@@ -487,10 +476,28 @@ List<DDataCell> _buildRowCellsEditing(BuildContext context) {
487476
)
488477
.toList(),
489478
value: gesture.fingers,
490-
onChanged: (value) => context.read<GesturePropProvider>().setProps(
491-
fingers: value,
492-
editMode: true,
493-
),
479+
onChanged: (value) {
480+
var gesturePropProvider = context.read<GesturePropProvider>();
481+
Gesture? newGestureType;
482+
GestureDirection? newDirection;
483+
if (!schemeTree.nodes
484+
.firstWhere((e) => e.fingers == value)
485+
.nodes
486+
.firstWhere((e) => e.type == gesturePropProvider.gesture)
487+
.nodes
488+
.firstWhere((e) => e.direction == gesturePropProvider.direction)
489+
.available) {
490+
var availableNode = schemeTree.nodes.firstWhere((e) => e.fingers == value).availableNode;
491+
newGestureType = availableNode.type;
492+
newDirection = availableNode.availableNode.direction;
493+
}
494+
gesturePropProvider.setProps(
495+
fingers: value,
496+
gesture: newGestureType ?? gesturePropProvider.gesture,
497+
direction: newDirection ?? gesturePropProvider.direction,
498+
editMode: true,
499+
);
500+
},
494501
isExpanded: true,
495502
),
496503
),
@@ -511,10 +518,19 @@ List<DDataCell> _buildRowCellsEditing(BuildContext context) {
511518
)
512519
.toList(),
513520
value: gesture.gesture,
514-
onChanged: (value) => context.read<GesturePropProvider>().setProps(
515-
gesture: value,
516-
editMode: true,
517-
),
521+
onChanged: (value) {
522+
var gesturePropProvider = context.read<GesturePropProvider>();
523+
gesturePropProvider.setProps(
524+
gesture: value,
525+
direction: schemeTree.nodes
526+
.firstWhere((node) => node.fingers == gesture.fingers)
527+
.nodes
528+
.firstWhere((node) => node.type == value)
529+
.availableNode
530+
.direction,
531+
editMode: true,
532+
);
533+
},
518534
isExpanded: true,
519535
),
520536
),

app/lib/pages/local_manager.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ class LocalManagerState extends State<LocalManager> {
229229
newSchemes.removeAt(index);
230230
localSchemesProvider.setProps(schemes: newSchemes);
231231
localSchemesProvider.remove(_selectedItemPath);
232-
var newSelectedItem = newSchemes[(index - 1).clamp(1, newSchemes.length)];
232+
var newSelectedItem = newSchemes[(index - 1).clamp(0, newSchemes.length)];
233233
setState(() {
234234
_selectedItemPath = newSelectedItem.path;
235235
});

0 commit comments

Comments
 (0)