feat: crop save (save visible area at original resolution) v1.4.0
- Save visible area at original resolution as JPEG q90 (title bar button or Ctrl+S) - Output name: original name + _HHmmss suffix; no overwrite, warning shown - Active color effects baked in; rotation saves bounding box - New: crop_save_service, l10n strings TR/EN, docs/plan-crop-save.md
This commit is contained in:
1 parent
73c1ff51d6
commit
168e087c8b
16 files changed
+399
-14
No files matched your search
@@ -7,8 +7,9 @@ import '../services/file_handler.dart';
|
||||
|
||||
class AppShortcuts extends StatelessWidget {
|
||||
final Widget child;
|
||||
final VoidCallback? onCropSave;
|
||||
|
||||
const AppShortcuts({super.key, required this.child});
|
||||
const AppShortcuts({super.key, required this.child, this.onCropSave});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
@@ -35,6 +36,14 @@ class AppShortcuts extends StatelessWidget {
|
||||
return KeyEventResult.handled;
|
||||
}
|
||||
|
||||
// Ctrl+S: görünen alanı kaydet (crop save)
|
||||
if (ctrl && !shift && event.logicalKey == LogicalKeyboardKey.keyS) {
|
||||
if (onCropSave != null) {
|
||||
onCropSave!();
|
||||
return KeyEventResult.handled;
|
||||
}
|
||||
}
|
||||
|
||||
switch (event.logicalKey) {
|
||||
case LogicalKeyboardKey.arrowLeft:
|
||||
ImageManager.instance.previousImage();
|
||||
|
||||
Reference in new issue
Block a user