feat: Implement mouse select chat list items

This commit is contained in:
Christian Pauly 2020-10-17 09:28:33 +00:00
commit 380e09489f
5 changed files with 82 additions and 38 deletions

View file

@ -1,4 +1,5 @@
import 'package:bot_toast/bot_toast.dart';
import 'package:circular_check_box/circular_check_box.dart';
import 'package:famedlysdk/famedlysdk.dart';
import 'package:fluffychat/utils/matrix_locals.dart';
import 'package:fluffychat/views/chat.dart';
@ -13,6 +14,7 @@ import '../avatar.dart';
import '../dialogs/send_file_dialog.dart';
import '../dialogs/simple_dialogs.dart';
import '../matrix.dart';
import '../mouse_over_builder.dart';
import '../theme_switcher.dart';
class ChatListItem extends StatelessWidget {
@ -128,7 +130,20 @@ class ChatListItem extends StatelessWidget {
color: chatListItemColor(context, activeChat, selected),
child: ListTile(
onLongPress: onLongPress,
leading: Avatar(room.avatar, room.displayname),
leading: MouseOverBuilder(
builder: (context, hover) =>
onLongPress != null && (hover || selected)
? Container(
width: Avatar.defaultSize,
height: Avatar.defaultSize,
alignment: Alignment.center,
child: CircularCheckBox(
value: selected,
onChanged: (_) => onLongPress(),
),
)
: Avatar(room.avatar, room.displayname),
),
title: Row(
children: <Widget>[
Expanded(