change tag color

Signed-off-by: 21pages <pages21@163.com>
This commit is contained in:
21pages
2023-08-22 19:07:01 +08:00
parent 115221098a
commit b27c3ff169
40 changed files with 152 additions and 50 deletions

View File

@@ -7,6 +7,7 @@ import 'package:flutter_hbb/models/ab_model.dart';
import 'package:flutter_hbb/models/platform_model.dart';
import '../../desktop/widgets/material_mod_popup_menu.dart' as mod_menu;
import 'package:get/get.dart';
import 'package:flex_color_picker/flex_color_picker.dart';
import '../../common.dart';
import 'dialog.dart';
@@ -513,7 +514,7 @@ class AddressBookTag extends StatelessWidget {
child: Obx(() => Container(
decoration: BoxDecoration(
color: tags.contains(name)
? str2color2(name, 0xFF)
? gFFI.abModel.getTagColor(name)
: Theme.of(context).colorScheme.background,
borderRadius: BorderRadius.circular(4)),
margin: const EdgeInsets.symmetric(horizontal: 4.0, vertical: 4.0),
@@ -528,7 +529,7 @@ class AddressBookTag extends StatelessWidget {
shape: BoxShape.circle,
color: tags.contains(name)
? Colors.white
: str2color2(name)),
: gFFI.abModel.getTagColor(name)),
).marginOnly(right: radius / 2),
Expanded(
child: Text(name,
@@ -568,6 +569,23 @@ class AddressBookTag extends StatelessWidget {
Future.delayed(Duration.zero, () => Get.back());
});
}),
getEntry(translate(translate('Change Color')), () async {
final model = gFFI.abModel;
Color oldColor = model.getTagColor(name);
Color newColor = await showColorPickerDialog(
context,
oldColor,
pickersEnabled: {
ColorPickerType.accent: false,
ColorPickerType.wheel: true,
},
showColorCode: true,
);
if (oldColor != newColor) {
model.setTagColor(name, newColor);
model.pushAb();
}
}),
getEntry(translate("Delete"), () {
gFFI.abModel.deleteTag(name);
gFFI.abModel.pushAb();

View File

@@ -201,7 +201,8 @@ class _PeerCardState extends State<_PeerCard>
)
],
);
final colors = _frontN(peer.tags, 25).map((e) => str2color2(e)).toList();
final colors =
_frontN(peer.tags, 25).map((e) => gFFI.abModel.getTagColor(e)).toList();
return Tooltip(
message: isMobile
? ''
@@ -311,7 +312,8 @@ class _PeerCardState extends State<_PeerCard>
),
);
final colors = _frontN(peer.tags, 25).map((e) => str2color2(e)).toList();
final colors =
_frontN(peer.tags, 25).map((e) => gFFI.abModel.getTagColor(e)).toList();
return Tooltip(
message: peer.tags.isNotEmpty
? '${translate('Tags')}: ${peer.tags.join(', ')}'