mirror of
https://github.com/lifegpc/eh_downloader_flutter.git
synced 2026-07-08 01:30:28 +08:00
Update context menu for image
This commit is contained in:
@@ -3,17 +3,20 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:super_context_menu/super_context_menu.dart';
|
||||
import '../globals.dart';
|
||||
import '../utils/clipboard.dart';
|
||||
|
||||
final _log = Logger("ImageWithContextMenu");
|
||||
|
||||
class ImageWithContextMenu extends StatelessWidget {
|
||||
const ImageWithContextMenu(this.data,
|
||||
{Key? key, this.uri, this.fmt = ImageFmt.jpg})
|
||||
{Key? key, this.uri, this.dir, this.fileName, this.fmt = ImageFmt.jpg})
|
||||
: super(key: key);
|
||||
final Uint8List data;
|
||||
final String? uri;
|
||||
final ImageFmt fmt;
|
||||
final String? fileName;
|
||||
final String? dir;
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return ContextMenuWidget(
|
||||
@@ -38,6 +41,18 @@ class ImageWithContextMenu extends StatelessWidget {
|
||||
});
|
||||
}));
|
||||
}
|
||||
if (fileName != null) {
|
||||
list.add(MenuAction(
|
||||
title: AppLocalizations.of(context)!.saveAs,
|
||||
callback: () {
|
||||
try {
|
||||
platformPath.saveFile(fileName!, fmt.toMimeType(), data,
|
||||
dir: dir ?? "");
|
||||
} catch (err) {
|
||||
_log.warning("Failed to save image:", err);
|
||||
}
|
||||
}));
|
||||
}
|
||||
return Menu(children: list);
|
||||
},
|
||||
child: Image.memory(data));
|
||||
|
||||
Reference in New Issue
Block a user