mirror of
https://github.com/lifegpc/eh_downloader_flutter.git
synced 2026-07-08 01:30:28 +08:00
Add context menu for image
This commit is contained in:
26
lib/components/image.dart
Normal file
26
lib/components/image.dart
Normal file
@@ -0,0 +1,26 @@
|
||||
import 'dart:typed_data';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
import 'package:super_clipboard/super_clipboard.dart';
|
||||
import 'package:super_context_menu/super_context_menu.dart';
|
||||
|
||||
class ImageWithContextMenu extends StatelessWidget {
|
||||
const ImageWithContextMenu(this.data, {Key? key}) : super(key: key);
|
||||
final Uint8List data;
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return ContextMenuWidget(
|
||||
menuProvider: (_) {
|
||||
return Menu(children: [
|
||||
MenuAction(
|
||||
title: AppLocalizations.of(context)!.copyImage,
|
||||
callback: () {
|
||||
final item = DataWriterItem();
|
||||
item.add(Formats.jpeg(data));
|
||||
ClipboardWriter.instance.write([item]);
|
||||
}),
|
||||
]);
|
||||
},
|
||||
child: Image.memory(data));
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,7 @@ import 'package:logging/logging.dart';
|
||||
import '../api/client.dart';
|
||||
import '../api/gallery.dart';
|
||||
import '../globals.dart';
|
||||
import 'image.dart';
|
||||
|
||||
final _log = Logger("Thumbnail");
|
||||
|
||||
@@ -110,7 +111,7 @@ class _Thumbnail extends State<Thumbnail> {
|
||||
sigmaX: 10,
|
||||
sigmaY: 10,
|
||||
tileMode: TileMode.decal),
|
||||
child: Image.memory(_data!))),
|
||||
child: ImageWithContextMenu(_data!))),
|
||||
SizedBox(
|
||||
width: widget.width.toDouble(),
|
||||
height: widget.height.toDouble(),
|
||||
@@ -126,7 +127,7 @@ class _Thumbnail extends State<Thumbnail> {
|
||||
))
|
||||
],
|
||||
)
|
||||
: Image.memory(_data!)
|
||||
: ImageWithContextMenu(_data!)
|
||||
: Text("Error $_error"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,5 +26,6 @@
|
||||
"showNsfw": "Show NSFW image by default",
|
||||
"read": "Read",
|
||||
"download": "Download",
|
||||
"colon": ":"
|
||||
"colon": ":",
|
||||
"copyImage": "Copy image to clipboard"
|
||||
}
|
||||
|
||||
@@ -26,5 +26,6 @@
|
||||
"showNsfw": "默认显示NSFW图片",
|
||||
"read": "阅读",
|
||||
"download": "下载",
|
||||
"colon": ":"
|
||||
"colon": ":",
|
||||
"copyImage": "复制图片到剪贴板"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user