feat: settings version display, complete shortcut list, Ctrl fine zoom (v1.7.0)
This commit is contained in:
1 parent
5f4d4ffe1a
commit
57fa3d92dd
9 files changed
+17
-10
No files matched your search
@@ -12,7 +12,8 @@ Ultra-lightweight image viewer written in Flutter — Linux & Windows.
|
|||||||
|
|
||||||
- **Formats:** PNG, JPEG, JFIF, WebP, BMP, GIF, WBMP
|
- **Formats:** PNG, JPEG, JFIF, WebP, BMP, GIF, WBMP
|
||||||
- **Pan:** Left drag
|
- **Pan:** Left drag
|
||||||
- **Zoom:** Mouse wheel (cursor-centered; viewport-centered in rotate mode)
|
- **Zoom:** Mouse wheel — 10% per step, cursor-centered (viewport-centered in rotate mode);
|
||||||
|
hold `Ctrl` for fine zoom (1% per step)
|
||||||
- **Fill/Fit toggle:** Double left click
|
- **Fill/Fit toggle:** Double left click
|
||||||
- **Contrast:** Right drag + vertical move
|
- **Contrast:** Right drag + vertical move
|
||||||
- **Saturation:** Ctrl + Right drag + vertical move
|
- **Saturation:** Ctrl + Right drag + vertical move
|
||||||
@@ -83,7 +84,8 @@ folder including `imajviewer.exe` and all DLLs).
|
|||||||
| Interaction | Action |
|
| Interaction | Action |
|
||||||
|---|---|
|
|---|---|
|
||||||
| Left drag | Pan |
|
| Left drag | Pan |
|
||||||
| Mouse wheel | Zoom (cursor-centered) |
|
| Mouse wheel | Zoom (cursor-centered, 10% per step) |
|
||||||
|
| Ctrl + Mouse wheel | Fine zoom (1% per step) |
|
||||||
| Double left click | Fill / Fit toggle |
|
| Double left click | Fill / Fit toggle |
|
||||||
| Right drag + vertical | Contrast (0.0 – 2.0) |
|
| Right drag + vertical | Contrast (0.0 – 2.0) |
|
||||||
| Ctrl + Right drag + vertical | Saturation (0.0 – 2.0) |
|
| Ctrl + Right drag + vertical | Saturation (0.0 – 2.0) |
|
||||||
@@ -92,7 +94,9 @@ folder including `imajviewer.exe` and all DLLs).
|
|||||||
| Ctrl + R | Flip horizontally (clears effects; press again to undo) |
|
| Ctrl + R | Flip horizontally (clears effects; press again to undo) |
|
||||||
| Double right click | Reset (all effects) |
|
| Double right click | Reset (all effects) |
|
||||||
| Left / Right arrow | Previous / next image |
|
| Left / Right arrow | Previous / next image |
|
||||||
|
| Ctrl + O | Open file |
|
||||||
| Ctrl + S | Save visible area (JPEG 95, original resolution) |
|
| Ctrl + S | Save visible area (JPEG 95, original resolution) |
|
||||||
|
| Esc | Exit fullscreen |
|
||||||
| Ctrl + Q | Close window |
|
| Ctrl + Q | Close window |
|
||||||
| Ctrl + Shift + Q | Close all windows |
|
| Ctrl + Shift + Q | Close all windows |
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -6,7 +6,7 @@
|
|||||||
"sortByName": "By name",
|
"sortByName": "By name",
|
||||||
"appDescription": "Ultra-lightweight and fast image viewer. Open images and use arrows or keyboard keys to navigate.",
|
"appDescription": "Ultra-lightweight and fast image viewer. Open images and use arrows or keyboard keys to navigate.",
|
||||||
"shortcuts": "Shortcuts",
|
"shortcuts": "Shortcuts",
|
||||||
"shortcutsList": "• Left/Right arrow — previous/next image\n• Ctrl+S — save visible area (JPEG 95)\n• Ctrl+R — flip horizontally (clears effects, press again to undo)\n• Ctrl+Q — close window\n• Ctrl+Shift+Q — close all windows\n• Double click — toggle fill/fit\n• Right-drag — contrast\n• Shift+right-drag — rotate\n• Ctrl+right-drag — saturation\n• Ctrl+Shift+right-drag — brightness",
|
"shortcutsList": "• Left/Right arrow — previous/next image\n• Ctrl+O — open file\n• Ctrl+S — save visible area (JPEG 95)\n• Ctrl+R — flip horizontally (clears effects, press again to undo)\n• Ctrl+Q — close window\n• Ctrl+Shift+Q — close all windows\n• Esc — exit fullscreen\n• Scroll — zoom (10% per step)\n• Ctrl+scroll — fine zoom (1% per step)\n• Left-drag — pan\n• Double click — toggle fill/fit\n• Right double click — reset effects\n• Right-drag — contrast\n• Shift+right-drag — rotate\n• Ctrl+right-drag — saturation\n• Ctrl+Shift+right-drag — brightness",
|
||||||
"print": "Print",
|
"print": "Print",
|
||||||
"close": "Close",
|
"close": "Close",
|
||||||
"saveCrop": "Save visible area (JPEG 95)",
|
"saveCrop": "Save visible area (JPEG 95)",
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ abstract class AppLocalizations {
|
|||||||
/// No description provided for @shortcutsList.
|
/// No description provided for @shortcutsList.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'• Left/Right arrow — previous/next image\n• Ctrl+S — save visible area (JPEG 95)\n• Ctrl+R — flip horizontally (clears effects, press again to undo)\n• Ctrl+Q — close window\n• Ctrl+Shift+Q — close all windows\n• Double click — toggle fill/fit\n• Right-drag — contrast\n• Shift+right-drag — rotate\n• Ctrl+right-drag — saturation\n• Ctrl+Shift+right-drag — brightness'**
|
/// **'• Left/Right arrow — previous/next image\n• Ctrl+O — open file\n• Ctrl+S — save visible area (JPEG 95)\n• Ctrl+R — flip horizontally (clears effects, press again to undo)\n• Ctrl+Q — close window\n• Ctrl+Shift+Q — close all windows\n• Esc — exit fullscreen\n• Scroll — zoom (10% per step)\n• Ctrl+scroll — fine zoom (1% per step)\n• Left-drag — pan\n• Double click — toggle fill/fit\n• Right double click — reset effects\n• Right-drag — contrast\n• Shift+right-drag — rotate\n• Ctrl+right-drag — saturation\n• Ctrl+Shift+right-drag — brightness'**
|
||||||
String get shortcutsList;
|
String get shortcutsList;
|
||||||
|
|
||||||
/// No description provided for @print.
|
/// No description provided for @print.
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get shortcutsList =>
|
String get shortcutsList =>
|
||||||
'• Left/Right arrow — previous/next image\n• Ctrl+S — save visible area (JPEG 95)\n• Ctrl+R — flip horizontally (clears effects, press again to undo)\n• Ctrl+Q — close window\n• Ctrl+Shift+Q — close all windows\n• Double click — toggle fill/fit\n• Right-drag — contrast\n• Shift+right-drag — rotate\n• Ctrl+right-drag — saturation\n• Ctrl+Shift+right-drag — brightness';
|
'• Left/Right arrow — previous/next image\n• Ctrl+O — open file\n• Ctrl+S — save visible area (JPEG 95)\n• Ctrl+R — flip horizontally (clears effects, press again to undo)\n• Ctrl+Q — close window\n• Ctrl+Shift+Q — close all windows\n• Esc — exit fullscreen\n• Scroll — zoom (10% per step)\n• Ctrl+scroll — fine zoom (1% per step)\n• Left-drag — pan\n• Double click — toggle fill/fit\n• Right double click — reset effects\n• Right-drag — contrast\n• Shift+right-drag — rotate\n• Ctrl+right-drag — saturation\n• Ctrl+Shift+right-drag — brightness';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get print => 'Print';
|
String get print => 'Print';
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ class AppLocalizationsTr extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get shortcutsList =>
|
String get shortcutsList =>
|
||||||
'• Sol/Sağ ok — önceki/sonraki resim\n• Ctrl+S — görünen alanı kaydet (JPEG 95)\n• Ctrl+R — yatay aynala (efektleri sıfırlar, tekrar basınca geri alır)\n• Ctrl+Q — pencereyi kapat\n• Ctrl+Shift+Q — tüm pencereleri kapat\n• Çift tık — doldur/sığdır geçişi\n• Sağ tık sürükle — kontrast\n• Shift+sağ tık — döndür\n• Ctrl+sağ tık — doygunluk\n• Ctrl+Shift+sağ tık — parlaklık';
|
'• Sol/Sağ ok — önceki/sonraki resim\n• Ctrl+O — dosya aç\n• Ctrl+S — görünen alanı kaydet (JPEG 95)\n• Ctrl+R — yatay aynala (efektleri sıfırlar, tekrar basınca geri alır)\n• Ctrl+Q — pencereyi kapat\n• Ctrl+Shift+Q — tüm pencereleri kapat\n• Esc — tam ekrandan çık\n• Kaydırma — yakınlaştır (tık başına %10)\n• Ctrl+kaydırma — ince yakınlaştırma (tık başına %1)\n• Sol tık sürükle — kaydır\n• Çift tık — doldur/sığdır geçişi\n• Sağ çift tık — efektleri sıfırla\n• Sağ tık sürükle — kontrast\n• Shift+sağ tık — döndür\n• Ctrl+sağ tık — doygunluk\n• Ctrl+Shift+sağ tık — parlaklık';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get print => 'Yazdır';
|
String get print => 'Yazdır';
|
||||||
|
|||||||
+1
-1
@@ -6,7 +6,7 @@
|
|||||||
"sortByName": "İsme göre",
|
"sortByName": "İsme göre",
|
||||||
"appDescription": "Ultra hafif ve hızlı resim görüntüleyici. Görselleri açın, gezinti için okları veya klavye tuşlarını kullanın.",
|
"appDescription": "Ultra hafif ve hızlı resim görüntüleyici. Görselleri açın, gezinti için okları veya klavye tuşlarını kullanın.",
|
||||||
"shortcuts": "Kısayollar",
|
"shortcuts": "Kısayollar",
|
||||||
"shortcutsList": "• Sol/Sağ ok — önceki/sonraki resim\n• Ctrl+S — görünen alanı kaydet (JPEG 95)\n• Ctrl+R — yatay aynala (efektleri sıfırlar, tekrar basınca geri alır)\n• Ctrl+Q — pencereyi kapat\n• Ctrl+Shift+Q — tüm pencereleri kapat\n• Çift tık — doldur/sığdır geçişi\n• Sağ tık sürükle — kontrast\n• Shift+sağ tık — döndür\n• Ctrl+sağ tık — doygunluk\n• Ctrl+Shift+sağ tık — parlaklık",
|
"shortcutsList": "• Sol/Sağ ok — önceki/sonraki resim\n• Ctrl+O — dosya aç\n• Ctrl+S — görünen alanı kaydet (JPEG 95)\n• Ctrl+R — yatay aynala (efektleri sıfırlar, tekrar basınca geri alır)\n• Ctrl+Q — pencereyi kapat\n• Ctrl+Shift+Q — tüm pencereleri kapat\n• Esc — tam ekrandan çık\n• Kaydırma — yakınlaştır (tık başına %10)\n• Ctrl+kaydırma — ince yakınlaştırma (tık başına %1)\n• Sol tık sürükle — kaydır\n• Çift tık — doldur/sığdır geçişi\n• Sağ çift tık — efektleri sıfırla\n• Sağ tık sürükle — kontrast\n• Shift+sağ tık — döndür\n• Ctrl+sağ tık — doygunluk\n• Ctrl+Shift+sağ tık — parlaklık",
|
||||||
"print": "Yazdır",
|
"print": "Yazdır",
|
||||||
"close": "Kapat",
|
"close": "Kapat",
|
||||||
"saveCrop": "Görünen alanı kaydet (JPEG 95)",
|
"saveCrop": "Görünen alanı kaydet (JPEG 95)",
|
||||||
|
|||||||
@@ -16,6 +16,8 @@ import '../shortcuts/app_shortcuts.dart';
|
|||||||
import '../services/window_persistence.dart';
|
import '../services/window_persistence.dart';
|
||||||
import '../l10n/app_localizations.dart';
|
import '../l10n/app_localizations.dart';
|
||||||
|
|
||||||
|
const appVersion = '1.7.0';
|
||||||
|
|
||||||
class ViewerScreen extends StatefulWidget {
|
class ViewerScreen extends StatefulWidget {
|
||||||
final List<String> initialFiles;
|
final List<String> initialFiles;
|
||||||
const ViewerScreen({super.key, this.initialFiles = const []});
|
const ViewerScreen({super.key, this.initialFiles = const []});
|
||||||
@@ -132,7 +134,8 @@ class _ViewerScreenState extends State<ViewerScreen> with WindowListener {
|
|||||||
},
|
},
|
||||||
),
|
),
|
||||||
const Divider(color: Colors.white24, height: 24),
|
const Divider(color: Colors.white24, height: 24),
|
||||||
const Text('imajViewer', style: TextStyle(color: Colors.white, fontSize: 15)),
|
Text('imajViewer $appVersion',
|
||||||
|
style: const TextStyle(color: Colors.white, fontSize: 15)),
|
||||||
const SizedBox(height: 4),
|
const SizedBox(height: 4),
|
||||||
Text(
|
Text(
|
||||||
AppLocalizations.of(context)!.appDescription,
|
AppLocalizations.of(context)!.appDescription,
|
||||||
|
|||||||
@@ -233,7 +233,7 @@ class ImageCanvasState extends State<ImageCanvas> {
|
|||||||
final double vy = _angle == 0 ? e.localPosition.dy : _vpSize.height / 2;
|
final double vy = _angle == 0 ? e.localPosition.dy : _vpSize.height / 2;
|
||||||
final double cx = (vx - _tx) / _sc;
|
final double cx = (vx - _tx) / _sc;
|
||||||
final double cy = (vy - _ty) / _sc;
|
final double cy = (vy - _ty) / _sc;
|
||||||
const double factor = 1.1;
|
final double factor = _ctrlPressed ? 1.01 : 1.1;
|
||||||
final double rawSc = _sc * (e.scrollDelta.dy < 0 ? factor : 1.0 / factor);
|
final double rawSc = _sc * (e.scrollDelta.dy < 0 ? factor : 1.0 / factor);
|
||||||
final double newSc = rawSc.clamp(1.0, 20.0);
|
final double newSc = rawSc.clamp(1.0, 20.0);
|
||||||
if (_angle == 0) {
|
if (_angle == 0) {
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
name: imajviewer
|
name: imajviewer
|
||||||
description: "Ultra-lightweight image viewer for Linux and Windows."
|
description: "Ultra-lightweight image viewer for Linux and Windows."
|
||||||
publish_to: 'none'
|
publish_to: 'none'
|
||||||
version: 1.6.3+15
|
version: 1.7.0+16
|
||||||
|
|
||||||
msix_config:
|
msix_config:
|
||||||
display_name: ImajViewer
|
display_name: ImajViewer
|
||||||
|
|||||||
Reference in new issue
Block a user