Initial commit: imajViewer Flutter Linux image viewer
This commit is contained in:
commit
8369ec2a5d
33 files changed
+2165
No files matched your search
@@ -0,0 +1,60 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:window_manager/window_manager.dart';
|
||||
import '../services/image_manager.dart';
|
||||
import '../services/file_handler.dart';
|
||||
|
||||
class AppShortcuts extends StatelessWidget {
|
||||
final Widget child;
|
||||
|
||||
const AppShortcuts({super.key, required this.child});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return CallbackShortcuts(
|
||||
bindings: {
|
||||
// Navigate images
|
||||
const SingleActivator(LogicalKeyboardKey.arrowLeft): () {
|
||||
ImageManager.instance.previousImage();
|
||||
},
|
||||
const SingleActivator(LogicalKeyboardKey.arrowRight): () {
|
||||
ImageManager.instance.nextImage();
|
||||
},
|
||||
|
||||
// Open file dialog
|
||||
const SingleActivator(
|
||||
LogicalKeyboardKey.keyO,
|
||||
control: true,
|
||||
): () {
|
||||
FileHandler.openFileDialog();
|
||||
},
|
||||
|
||||
// Fullscreen toggle
|
||||
const SingleActivator(LogicalKeyboardKey.f11): () async {
|
||||
final isFullscreen = await windowManager.isFullScreen();
|
||||
await windowManager.setFullScreen(!isFullscreen);
|
||||
},
|
||||
|
||||
// Exit fullscreen
|
||||
const SingleActivator(LogicalKeyboardKey.escape): () async {
|
||||
final isFullscreen = await windowManager.isFullScreen();
|
||||
if (isFullscreen) {
|
||||
await windowManager.setFullScreen(false);
|
||||
}
|
||||
},
|
||||
|
||||
// Quit
|
||||
const SingleActivator(
|
||||
LogicalKeyboardKey.keyQ,
|
||||
control: true,
|
||||
): () {
|
||||
windowManager.close();
|
||||
},
|
||||
},
|
||||
child: Focus(
|
||||
autofocus: true,
|
||||
child: child,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user