Files
dde_gesture_manager/app
2021-09-23 15:43:47 +08:00
..
2021-09-15 23:13:07 +08:00
2021-09-23 15:43:47 +08:00
2021-09-15 00:49:39 +08:00
2021-09-12 22:24:21 +08:00
2021-09-12 22:24:21 +08:00
2021-09-12 22:24:21 +08:00
2021-09-12 22:24:21 +08:00
2021-09-18 18:28:35 +08:00
2021-09-18 18:28:35 +08:00
2021-09-23 15:43:47 +08:00

DDE Gesture Manager

专为 DDE 桌面环境打造的触摸板手势管理工具

ProviderGenerator

利用 source_genbuild_runner 生成 provider 的模板代码:

  1. lib/models/ 下编写模型类
import 'package:dde_gesture_manager/builder/provider_annotation.dart';

@ProviderModel()
class Test {
  @ProviderModelProp()
  bool? tested;

  @ProviderModelProp()
  String? name;
}

  1. app 项目目录下执行 flutter packages pub get && flutter packages pub run build_runner build --delete-conflicting-outputs

  2. 将在 lib/models/test.provider.dart 生成如下代码:

import 'package:flutter/foundation.dart';
import 'package:dde_gesture_manager/extensions/compare_extension.dart';
import 'test.dart';

class TestProvider extends Test with ChangeNotifier {
  void setProps({
    bool? tested,
    String? name,
  }) {
    bool changed = false;
    if (tested.diff(this.tested)) {
      this.tested = tested;
      changed = true;
    }
    if (name.diff(this.name)) {
      this.name = name;
      changed = true;
    }
    if (changed) notifyListeners();
  }
}