feat: use 'fromMarket' and 'uploaded' flag instead of 'readOnly'; code cleanup.
This commit is contained in:
@@ -1,5 +1,4 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/widgets.dart';
|
|
||||||
|
|
||||||
extension ContextExtension on BuildContext {
|
extension ContextExtension on BuildContext {
|
||||||
ThemeData get t => Theme.of(this);
|
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/constants/supported_locales.dart';
|
||||||
import 'package:dde_gesture_manager/extensions.dart';
|
import 'package:dde_gesture_manager/extensions.dart';
|
||||||
import 'package:dde_gesture_manager/generated/codegen_loader.g.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.dart';
|
||||||
import 'package:dde_gesture_manager/models/configs.provider.dart';
|
import 'package:dde_gesture_manager/models/configs.provider.dart';
|
||||||
import 'package:dde_gesture_manager/models/settings.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/themes/light.dart';
|
||||||
import 'package:dde_gesture_manager/utils/helper.dart';
|
import 'package:dde_gesture_manager/utils/helper.dart';
|
||||||
import 'package:dde_gesture_manager/utils/init.dart';
|
import 'package:dde_gesture_manager/utils/init.dart';
|
||||||
import 'package:easy_localization/easy_localization.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/widgets.dart';
|
|
||||||
|
|
||||||
import 'pages/home.dart';
|
import 'pages/home.dart';
|
||||||
|
|
||||||
|
|||||||
@@ -117,7 +117,10 @@ class Scheme {
|
|||||||
String? id;
|
String? id;
|
||||||
|
|
||||||
@ProviderModelProp()
|
@ProviderModelProp()
|
||||||
bool? readOnly;
|
bool? fromMarket;
|
||||||
|
|
||||||
|
@ProviderModelProp()
|
||||||
|
bool? uploaded;
|
||||||
|
|
||||||
@ProviderModelProp()
|
@ProviderModelProp()
|
||||||
String? name;
|
String? name;
|
||||||
@@ -128,11 +131,14 @@ class Scheme {
|
|||||||
@ProviderModelProp()
|
@ProviderModelProp()
|
||||||
List<GestureProp>? gestures;
|
List<GestureProp>? gestures;
|
||||||
|
|
||||||
|
bool get readOnly => uploaded == true || fromMarket == true || id == Uuid.NAMESPACE_NIL;
|
||||||
|
|
||||||
Scheme.parse(scheme) {
|
Scheme.parse(scheme) {
|
||||||
if (scheme is String) scheme = json.decode(scheme);
|
if (scheme is String) scheme = json.decode(scheme);
|
||||||
assert(scheme is Map);
|
assert(scheme is Map);
|
||||||
id = scheme['id'] ?? Uuid().v1();
|
id = scheme['id'] ?? Uuid().v1();
|
||||||
readOnly = scheme['readOnly'] ?? false;
|
fromMarket = scheme['fromMarket'] ?? false;
|
||||||
|
uploaded = scheme['uploaded'] ?? false;
|
||||||
name = scheme['name'];
|
name = scheme['name'];
|
||||||
description = scheme['desc'];
|
description = scheme['desc'];
|
||||||
gestures = (scheme['gestures'] as List? ?? []).map<GestureProp>((ele) => GestureProp.parse(ele)).toList()..sort();
|
gestures = (scheme['gestures'] as List? ?? []).map<GestureProp>((ele) => GestureProp.parse(ele)).toList()..sort();
|
||||||
@@ -140,7 +146,6 @@ class Scheme {
|
|||||||
|
|
||||||
Scheme.systemDefault() {
|
Scheme.systemDefault() {
|
||||||
this.id = Uuid.NAMESPACE_NIL;
|
this.id = Uuid.NAMESPACE_NIL;
|
||||||
this.readOnly = true;
|
|
||||||
this.name = LocaleKeys.local_manager_default_scheme_label.tr();
|
this.name = LocaleKeys.local_manager_default_scheme_label.tr();
|
||||||
this.description = LocaleKeys.local_manager_default_scheme_description.tr();
|
this.description = LocaleKeys.local_manager_default_scheme_description.tr();
|
||||||
this.gestures = [];
|
this.gestures = [];
|
||||||
@@ -149,7 +154,8 @@ class Scheme {
|
|||||||
Scheme.create({this.name, this.description, this.gestures}) {
|
Scheme.create({this.name, this.description, this.gestures}) {
|
||||||
this.id = Uuid().v1();
|
this.id = Uuid().v1();
|
||||||
this.gestures = [];
|
this.gestures = [];
|
||||||
this.readOnly = false;
|
this.fromMarket = false;
|
||||||
|
this.uploaded = false;
|
||||||
this.name = 'new xxx';
|
this.name = 'new xxx';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -165,7 +171,8 @@ class Scheme {
|
|||||||
|
|
||||||
Map toJson() => {
|
Map toJson() => {
|
||||||
'id': id,
|
'id': id,
|
||||||
'readOnly': readOnly,
|
'fromMarket': fromMarket,
|
||||||
|
'uploaded': uploaded,
|
||||||
'name': name,
|
'name': name,
|
||||||
'desc': description,
|
'desc': description,
|
||||||
'gestures': gestures,
|
'gestures': gestures,
|
||||||
|
|||||||
@@ -127,7 +127,7 @@ class GestureEditor extends StatelessWidget {
|
|||||||
child: ConstrainedBox(
|
child: ConstrainedBox(
|
||||||
constraints: BoxConstraints(minWidth: constraints.maxWidth),
|
constraints: BoxConstraints(minWidth: constraints.maxWidth),
|
||||||
child: IgnorePointer(
|
child: IgnorePointer(
|
||||||
ignoring: schemeProvider.readOnly ?? false,
|
ignoring: schemeProvider.readOnly,
|
||||||
child: DDataTable(
|
child: DDataTable(
|
||||||
showBottomBorder: true,
|
showBottomBorder: true,
|
||||||
headingRowHeight: _headingRowHeight,
|
headingRowHeight: _headingRowHeight,
|
||||||
@@ -169,7 +169,7 @@ class GestureEditor extends StatelessWidget {
|
|||||||
mainAxisAlignment: MainAxisAlignment.end,
|
mainAxisAlignment: MainAxisAlignment.end,
|
||||||
children: [
|
children: [
|
||||||
DButton.add(
|
DButton.add(
|
||||||
enabled: !(schemeProvider.readOnly ?? false) &&
|
enabled: !schemeProvider.readOnly &&
|
||||||
!gesturePropProvider.editMode! &&
|
!gesturePropProvider.editMode! &&
|
||||||
!schemeTree.fullFiled,
|
!schemeTree.fullFiled,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
@@ -183,7 +183,7 @@ class GestureEditor extends StatelessWidget {
|
|||||||
},
|
},
|
||||||
),
|
),
|
||||||
DButton.delete(
|
DButton.delete(
|
||||||
enabled: !(schemeProvider.readOnly ?? false) &&
|
enabled: !schemeProvider.readOnly &&
|
||||||
gesturePropProvider != GestureProp.empty() &&
|
gesturePropProvider != GestureProp.empty() &&
|
||||||
!gesturePropProvider.editMode!,
|
!gesturePropProvider.editMode!,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
@@ -201,7 +201,7 @@ class GestureEditor extends StatelessWidget {
|
|||||||
},
|
},
|
||||||
),
|
),
|
||||||
DButton.duplicate(
|
DButton.duplicate(
|
||||||
enabled: !(schemeProvider.readOnly ?? false) &&
|
enabled: !schemeProvider.readOnly &&
|
||||||
gesturePropProvider != GestureProp.empty() &&
|
gesturePropProvider != GestureProp.empty() &&
|
||||||
!gesturePropProvider.editMode!,
|
!gesturePropProvider.editMode!,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
@@ -213,7 +213,7 @@ class GestureEditor extends StatelessWidget {
|
|||||||
},
|
},
|
||||||
),
|
),
|
||||||
DButton.paste(
|
DButton.paste(
|
||||||
enabled: !(schemeProvider.readOnly ?? false) &&
|
enabled: !schemeProvider.readOnly &&
|
||||||
copiedGesturePropProvider != CopiedGesturePropProvider.empty() &&
|
copiedGesturePropProvider != CopiedGesturePropProvider.empty() &&
|
||||||
!gesturePropProvider.editMode! &&
|
!gesturePropProvider.editMode! &&
|
||||||
!schemeTree.fullFiled,
|
!schemeTree.fullFiled,
|
||||||
@@ -273,7 +273,7 @@ class GestureEditor extends StatelessWidget {
|
|||||||
Expanded(
|
Expanded(
|
||||||
child: DTextField(
|
child: DTextField(
|
||||||
initText: schemeProvider.name,
|
initText: schemeProvider.name,
|
||||||
readOnly: schemeProvider.readOnly ?? false,
|
readOnly: schemeProvider.readOnly,
|
||||||
onComplete: (val) {
|
onComplete: (val) {
|
||||||
val = val.trim();
|
val = val.trim();
|
||||||
schemeProvider.setProps(name: val);
|
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/scheme.provider.dart';
|
||||||
import 'package:dde_gesture_manager/models/settings.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/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/foundation.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/painting.dart';
|
|
||||||
import 'package:uuid/uuid.dart';
|
|
||||||
|
|
||||||
class LocalManager extends StatefulWidget {
|
class LocalManager extends StatefulWidget {
|
||||||
const LocalManager({
|
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/constants/supported_locales.dart';
|
||||||
import 'package:dde_gesture_manager/extensions.dart';
|
import 'package:dde_gesture_manager/extensions.dart';
|
||||||
import 'package:dde_gesture_manager/generated/codegen_loader.g.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/models/settings.provider.dart';
|
||||||
import 'package:dde_gesture_manager/utils/helper.dart';
|
import 'package:dde_gesture_manager/utils/helper.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:gsettings/gsettings.dart';
|
import 'package:gsettings/gsettings.dart';
|
||||||
import 'package:provider/provider.dart';
|
|
||||||
import 'package:window_manager/window_manager.dart';
|
import 'package:window_manager/window_manager.dart';
|
||||||
|
|
||||||
Future<void> initEvents(BuildContext context) async {
|
Future<void> initEvents(BuildContext context) async {
|
||||||
|
|||||||
@@ -6,10 +6,8 @@
|
|||||||
import 'dart:math' as math;
|
import 'dart:math' as math;
|
||||||
|
|
||||||
import 'package:flutter/foundation.dart';
|
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/material.dart';
|
||||||
|
import 'package:flutter/rendering.dart';
|
||||||
import 'package:rect_getter/rect_getter.dart';
|
import 'package:rect_getter/rect_getter.dart';
|
||||||
|
|
||||||
/// Signature for [DataColumn.onSort] callback.
|
/// Signature for [DataColumn.onSort] callback.
|
||||||
@@ -885,8 +883,8 @@ class _DDataTableState extends State<DDataTable> {
|
|||||||
final double effectiveColumnSpacing =
|
final double effectiveColumnSpacing =
|
||||||
widget.columnSpacing ?? theme.dataTableTheme.columnSpacing ?? DDataTable._columnSpacing;
|
widget.columnSpacing ?? theme.dataTableTheme.columnSpacing ?? DDataTable._columnSpacing;
|
||||||
|
|
||||||
final List<TableColumnWidth> tableColumns = List<TableColumnWidth>.filled(
|
final List<TableColumnWidth> tableColumns =
|
||||||
widget.columns.length, const _NullTableColumnWidth());
|
List<TableColumnWidth>.filled(widget.columns.length, const _NullTableColumnWidth());
|
||||||
final List<TableRow> tableRows = List<TableRow>.generate(
|
final List<TableRow> tableRows = List<TableRow>.generate(
|
||||||
widget.rows.length + 1, // the +1 is for the header row
|
widget.rows.length + 1, // the +1 is for the header row
|
||||||
(int index) {
|
(int index) {
|
||||||
@@ -1067,8 +1065,7 @@ class _DDataTableState extends State<DDataTable> {
|
|||||||
_headersRect = _rects;
|
_headersRect = _rects;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (_rects == null || _rects.isEmpty || _rects.first == null)
|
if (_rects == null || _rects.isEmpty || _rects.first == null) Future.microtask(() => _buildHeaderStack(tableRows));
|
||||||
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/constants/supported_locales.dart';
|
||||||
import 'package:dde_gesture_manager/extensions.dart';
|
import 'package:dde_gesture_manager/extensions.dart';
|
||||||
import 'package:dde_gesture_manager/generated/codegen_loader.g.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/models/local_schemes_provider.dart';
|
||||||
import 'package:dde_gesture_manager/utils/helper.dart';
|
import 'package:dde_gesture_manager/utils/helper.dart';
|
||||||
|
import 'package:easy_localization/src/translations.dart';
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:window_manager/window_manager.dart';
|
import 'package:window_manager/window_manager.dart';
|
||||||
import 'package:easy_localization/src/translations.dart';
|
|
||||||
|
|
||||||
class LanguageSwitcher extends StatelessWidget {
|
class LanguageSwitcher extends StatelessWidget {
|
||||||
const LanguageSwitcher({Key? key}) : super(key: key);
|
const LanguageSwitcher({Key? key}) : super(key: key);
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
import 'package:dde_gesture_manager/extensions.dart';
|
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.dart';
|
||||||
import 'package:dde_gesture_manager/models/configs.provider.dart';
|
import 'package:dde_gesture_manager/models/configs.provider.dart';
|
||||||
import 'package:flutter/cupertino.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
class ThemeSwitcher extends StatelessWidget {
|
class ThemeSwitcher extends StatelessWidget {
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
import 'package:dde_gesture_manager/extensions.dart';
|
import 'package:dde_gesture_manager/extensions.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:package_info_plus/package_info_plus.dart';
|
import 'package:package_info_plus/package_info_plus.dart';
|
||||||
import 'package:dde_gesture_manager/generated/locale_keys.g.dart';
|
|
||||||
|
|
||||||
class VersionChecker extends StatelessWidget {
|
class VersionChecker extends StatelessWidget {
|
||||||
const VersionChecker({Key? key}) : super(key: key);
|
const VersionChecker({Key? key}) : super(key: key);
|
||||||
|
|||||||
Reference in New Issue
Block a user