feat: use 'fromMarket' and 'uploaded' flag instead of 'readOnly'; code cleanup.

pull/5/head
DebuggerX 3 years ago
parent 6dfec40c3f
commit 9a21766291

@ -1,5 +1,4 @@
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
extension ContextExtension on BuildContext {
ThemeData get t => Theme.of(this);

@ -3,7 +3,6 @@ import 'package:dde_gesture_manager/constants/sp_keys.dart';
import 'package:dde_gesture_manager/constants/supported_locales.dart';
import 'package:dde_gesture_manager/extensions.dart';
import 'package:dde_gesture_manager/generated/codegen_loader.g.dart';
import 'package:dde_gesture_manager/generated/locale_keys.g.dart';
import 'package:dde_gesture_manager/models/configs.dart';
import 'package:dde_gesture_manager/models/configs.provider.dart';
import 'package:dde_gesture_manager/models/settings.provider.dart';
@ -11,9 +10,7 @@ import 'package:dde_gesture_manager/themes/dark.dart';
import 'package:dde_gesture_manager/themes/light.dart';
import 'package:dde_gesture_manager/utils/helper.dart';
import 'package:dde_gesture_manager/utils/init.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'pages/home.dart';

@ -117,7 +117,10 @@ class Scheme {
String? id;
@ProviderModelProp()
bool? readOnly;
bool? fromMarket;
@ProviderModelProp()
bool? uploaded;
@ProviderModelProp()
String? name;
@ -128,11 +131,14 @@ class Scheme {
@ProviderModelProp()
List<GestureProp>? gestures;
bool get readOnly => uploaded == true || fromMarket == true || id == Uuid.NAMESPACE_NIL;
Scheme.parse(scheme) {
if (scheme is String) scheme = json.decode(scheme);
assert(scheme is Map);
id = scheme['id'] ?? Uuid().v1();
readOnly = scheme['readOnly'] ?? false;
fromMarket = scheme['fromMarket'] ?? false;
uploaded = scheme['uploaded'] ?? false;
name = scheme['name'];
description = scheme['desc'];
gestures = (scheme['gestures'] as List? ?? []).map<GestureProp>((ele) => GestureProp.parse(ele)).toList()..sort();
@ -140,7 +146,6 @@ class Scheme {
Scheme.systemDefault() {
this.id = Uuid.NAMESPACE_NIL;
this.readOnly = true;
this.name = LocaleKeys.local_manager_default_scheme_label.tr();
this.description = LocaleKeys.local_manager_default_scheme_description.tr();
this.gestures = [];
@ -149,7 +154,8 @@ class Scheme {
Scheme.create({this.name, this.description, this.gestures}) {
this.id = Uuid().v1();
this.gestures = [];
this.readOnly = false;
this.fromMarket = false;
this.uploaded = false;
this.name = 'new xxx';
}
@ -165,7 +171,8 @@ class Scheme {
Map toJson() => {
'id': id,
'readOnly': readOnly,
'fromMarket': fromMarket,
'uploaded': uploaded,
'name': name,
'desc': description,
'gestures': gestures,

@ -127,7 +127,7 @@ class GestureEditor extends StatelessWidget {
child: ConstrainedBox(
constraints: BoxConstraints(minWidth: constraints.maxWidth),
child: IgnorePointer(
ignoring: schemeProvider.readOnly ?? false,
ignoring: schemeProvider.readOnly,
child: DDataTable(
showBottomBorder: true,
headingRowHeight: _headingRowHeight,
@ -169,7 +169,7 @@ class GestureEditor extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.end,
children: [
DButton.add(
enabled: !(schemeProvider.readOnly ?? false) &&
enabled: !schemeProvider.readOnly &&
!gesturePropProvider.editMode! &&
!schemeTree.fullFiled,
onTap: () {
@ -183,7 +183,7 @@ class GestureEditor extends StatelessWidget {
},
),
DButton.delete(
enabled: !(schemeProvider.readOnly ?? false) &&
enabled: !schemeProvider.readOnly &&
gesturePropProvider != GestureProp.empty() &&
!gesturePropProvider.editMode!,
onTap: () {
@ -201,7 +201,7 @@ class GestureEditor extends StatelessWidget {
},
),
DButton.duplicate(
enabled: !(schemeProvider.readOnly ?? false) &&
enabled: !schemeProvider.readOnly &&
gesturePropProvider != GestureProp.empty() &&
!gesturePropProvider.editMode!,
onTap: () {
@ -213,7 +213,7 @@ class GestureEditor extends StatelessWidget {
},
),
DButton.paste(
enabled: !(schemeProvider.readOnly ?? false) &&
enabled: !schemeProvider.readOnly &&
copiedGesturePropProvider != CopiedGesturePropProvider.empty() &&
!gesturePropProvider.editMode! &&
!schemeTree.fullFiled,
@ -273,7 +273,7 @@ class GestureEditor extends StatelessWidget {
Expanded(
child: DTextField(
initText: schemeProvider.name,
readOnly: schemeProvider.readOnly ?? false,
readOnly: schemeProvider.readOnly,
onComplete: (val) {
val = val.trim();
schemeProvider.setProps(name: val);

@ -6,12 +6,8 @@ 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';
import 'package:flutter/animation.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/painting.dart';
import 'package:uuid/uuid.dart';
class LocalManager extends StatefulWidget {
const LocalManager({

@ -3,12 +3,10 @@ import 'package:dde_gesture_manager/constants/sp_keys.dart';
import 'package:dde_gesture_manager/constants/supported_locales.dart';
import 'package:dde_gesture_manager/extensions.dart';
import 'package:dde_gesture_manager/generated/codegen_loader.g.dart';
import 'package:dde_gesture_manager/generated/locale_keys.g.dart';
import 'package:dde_gesture_manager/models/settings.provider.dart';
import 'package:dde_gesture_manager/utils/helper.dart';
import 'package:flutter/material.dart';
import 'package:gsettings/gsettings.dart';
import 'package:provider/provider.dart';
import 'package:window_manager/window_manager.dart';
Future<void> initEvents(BuildContext context) async {

@ -6,10 +6,8 @@
import 'dart:math' as math;
import 'package:flutter/foundation.dart';
import 'package:flutter/painting.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:rect_getter/rect_getter.dart';
/// Signature for [DataColumn.onSort] callback.
@ -885,8 +883,8 @@ class _DDataTableState extends State<DDataTable> {
final double effectiveColumnSpacing =
widget.columnSpacing ?? theme.dataTableTheme.columnSpacing ?? DDataTable._columnSpacing;
final List<TableColumnWidth> tableColumns = List<TableColumnWidth>.filled(
widget.columns.length, const _NullTableColumnWidth());
final List<TableColumnWidth> tableColumns =
List<TableColumnWidth>.filled(widget.columns.length, const _NullTableColumnWidth());
final List<TableRow> tableRows = List<TableRow>.generate(
widget.rows.length + 1, // the +1 is for the header row
(int index) {
@ -1007,7 +1005,7 @@ class _DDataTableState extends State<DDataTable> {
colors: [
_headerBackgroundHSLColor
.withLightness(
_headerBackgroundHSLColor.lightness - 0.1 < 0 ? 0 : _headerBackgroundHSLColor.lightness - 0.1)
_headerBackgroundHSLColor.lightness - 0.1 < 0 ? 0 : _headerBackgroundHSLColor.lightness - 0.1)
.toColor(),
widget.headerBackgroundColor,
],
@ -1067,8 +1065,7 @@ class _DDataTableState extends State<DDataTable> {
_headersRect = _rects;
});
}
if (_rects == null || _rects.isEmpty || _rects.first == null)
Future.microtask(() => _buildHeaderStack(tableRows));
if (_rects == null || _rects.isEmpty || _rects.first == null) Future.microtask(() => _buildHeaderStack(tableRows));
}
}

@ -2,13 +2,12 @@ import 'package:dde_gesture_manager/constants/sp_keys.dart';
import 'package:dde_gesture_manager/constants/supported_locales.dart';
import 'package:dde_gesture_manager/extensions.dart';
import 'package:dde_gesture_manager/generated/codegen_loader.g.dart';
import 'package:dde_gesture_manager/generated/locale_keys.g.dart';
import 'package:dde_gesture_manager/models/local_schemes_provider.dart';
import 'package:dde_gesture_manager/utils/helper.dart';
import 'package:easy_localization/src/translations.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:window_manager/window_manager.dart';
import 'package:easy_localization/src/translations.dart';
class LanguageSwitcher extends StatelessWidget {
const LanguageSwitcher({Key? key}) : super(key: key);

@ -1,8 +1,6 @@
import 'package:dde_gesture_manager/extensions.dart';
import 'package:dde_gesture_manager/generated/locale_keys.g.dart';
import 'package:dde_gesture_manager/models/configs.dart';
import 'package:dde_gesture_manager/models/configs.provider.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class ThemeSwitcher extends StatelessWidget {

@ -1,7 +1,6 @@
import 'package:dde_gesture_manager/extensions.dart';
import 'package:flutter/material.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:dde_gesture_manager/generated/locale_keys.g.dart';
class VersionChecker extends StatelessWidget {
const VersionChecker({Key? key}) : super(key: key);

Loading…
Cancel
Save