feat: gezinme oklari (hover), ayarlar penceresi (zaman/isme gore siralama), yazdirma (printing paketi), title hover saydamligi; .deb guncellendi
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
| Tarih | Dosya | Konu |
|
||||
|---|---|---|
|
||||
| 2026-08-06 | [rapor-gezinme-ayarlar-print.md](rapor-gezinme-ayarlar-print.md) | **Rapor** — gezinme okları (hover), ayarlar/gear (sıralama), yazdırma (printing paketi) |
|
||||
| 2026-08-06 | [rapor-sag-tik-donma-analizi.md](rapor-sag-tik-donma-analizi.md) | **Rapor** — sağ tuş efektlerinde donma analizi + slider UI değerlendirmesi |
|
||||
| 2026-08-03 | [zoom-clamp-mekanizmasi.md](zoom-clamp-mekanizmasi.md) | **Düzeltme** — `_vpSize` sıfırlama bug'ı: çift tıklama sonrası zoom ölümü/pan serbestliği |
|
||||
| 2026-08-03 | [performance_llvmpipe_issue.md](performance_llvmpipe_issue.md) | **Rapor** — llvmpipe donma analizi, kare hızı throttle, ölçüm sonuçları |
|
||||
|
||||
80
docs/rapor-gezinme-ayarlar-print.md
Normal file
80
docs/rapor-gezinme-ayarlar-print.md
Normal file
@@ -0,0 +1,80 @@
|
||||
# Rapor — Gezinme Okları, Ayarlar (Sıralama) ve Yazdırma
|
||||
|
||||
Tarih: 2026-08-06
|
||||
Durum: Uygulandı
|
||||
|
||||
## Amaç
|
||||
|
||||
Klavyede zaten çalışan sol/sağ ok tuşu gezinmesine görsel karşılık eklemek;
|
||||
ayarlar (gear) penceresiyle klasör sıralamasını kullanıcıya bırakmak; resmi
|
||||
yazıcıya göndermek.
|
||||
|
||||
## Yapılan Değişiklikler
|
||||
|
||||
### 1. Gezinme okları (görsel arayüz)
|
||||
|
||||
- Sol/sağ alt köşeye sade yuvarlak ok butonları eklendi (`_NavButton`,
|
||||
`lib/screens/viewer_screen.dart`).
|
||||
- Normalde görünmez; mouse görüntü alanına girince belirir
|
||||
(`MouseRegion` → `_controlsVisible`).
|
||||
- Hover'da kırmızı arka plan (kapatma butonuyla aynı stil).
|
||||
- Tooltip yok (kullanıcı istemedi).
|
||||
- `ImageManager.instance.previousImage()/nextImage()` çağırır — klavye
|
||||
kısayoluyla aynı yolu kullanır.
|
||||
|
||||
### 2. PITFALL — MouseRegion flicker döngüsü (çözüldü)
|
||||
|
||||
İlk uygulamada MouseRegion yalnızca resim alanını sarıyordu, butonlar
|
||||
Stack'te üstte ayrı duruyordu. Mouse butonun üzerine gelince hit-test
|
||||
butona gidiyor → MouseRegion `onExit` → butonlar kayboluyor → mouse tekrar
|
||||
resim alanına düşüyor → `onEnter` → sonsuz yanıp sönme ve tıklanamama.
|
||||
|
||||
Çözüm: `MouseRegion`'ı **tüm Stack'in** üzerine taşı (DropTarget'ın
|
||||
çocuğu). Butonlar da Stack içinde kaldığı için onların üzerindeyken
|
||||
bölgeden çıkılmaz; `onExit` yalnızca pencere alanı terk edilince tetiklenir.
|
||||
|
||||
### 3. Gear (Ayarlar) butonu
|
||||
|
||||
- İlk olarak görüntü alanının sol üstüne kondu; kullanıcı "title yüzünden
|
||||
aşağıda çıkıyor" deyince **title bar'ın soluna** taşındı
|
||||
(`CustomTitleBar(onSettings: ...)`, `lib/widgets/custom_title_bar.dart`).
|
||||
- Title bar `visible` parametresiyle `_controlsVisible`'a bağlandı: mouse
|
||||
resmin dışındayken title (gear dahil) saydam (AnimatedOpacity 0), mouse
|
||||
girince görünür.
|
||||
- Hover arka planı kırmızı (`_BarButton` varsayılanı).
|
||||
|
||||
### 4. Ayarlar penceresi (`_showSettings`)
|
||||
|
||||
Gear'a tıklayınca açılan AlertDialog:
|
||||
- **Sıralama**: Zamana göre / İsme göre (RadioListTile).
|
||||
`ImageManager.sortByName` — `setGalleryFromPaths` içinde sıralama
|
||||
karşılaştırıcısı buna göre değişir; isim sıralaması `toLowerCase`
|
||||
karşılaştırma ile (büyük/küçük harf duyarsız). Mod değişince mevcut
|
||||
galeri `setGalleryFromPaths([_images[_currentIndex]])` ile yeniden
|
||||
kurulur (açık resim korunur).
|
||||
- Uygulamanın amacı (kısa paragraf).
|
||||
- Kısayollar listesi (F11 satırı kaldırıldı — tam ekran özelliği yok).
|
||||
|
||||
### 5. Yazdırma (`_printImage`)
|
||||
|
||||
- Yeni bağımlılıklar: `printing: ^5.13.4`, `pdf: ^3.11.1` (Linux dahil
|
||||
masaüstü destekli).
|
||||
- Buton ayarlar penceresinin actions kısmında ("Yazdır"); ayrı köşe butonu
|
||||
değil (kullanıcı istediği yerleşim).
|
||||
- Akış: `File.readAsBytes` → `pw.MemoryImage` → `pw.Document` A4 sayfa,
|
||||
`BoxFit.contain` → `Printing.layoutPdf` (sistem yazıcı dialogu).
|
||||
|
||||
### 6. `_BarButton.hoverColor` kaldırıldı
|
||||
|
||||
Gear title'a taşınıp tek hover rengi (kırmızı) kaldığı için opsiyonel
|
||||
parametre gereksizleşti; analyze uyarısı (unused_element_parameter)
|
||||
temizlendi.
|
||||
|
||||
## Doğrulama
|
||||
|
||||
- `flutter analyze`: 21 info (pre-existing baseline; yeni hata yok).
|
||||
- `flutter build linux --release`: ✓ Built.
|
||||
- `./install.sh` (debug bundle silinip release kuruldu): exit 0.
|
||||
- `bash dist/rebuild-deb.sh`: `dist/imajviewer_1.0.1_amd64.deb` (11M) üretildi.
|
||||
- Görsel davranış kullanıcı tarafından manuel test edildi (oklar,
|
||||
gear/title saydamlığı, hover renkleri, sıralama, print dialogu).
|
||||
Reference in New Issue
Block a user