feat: jfif/jpe/wbmp format destegi, pencere cascade yerlesimi, konum kaydi duzeltmesi
- file_handler/image_manager: jfif, jpe, wbmp uzantilari - .desktop + install.sh MimeType: image/vnd.wap.wbmp eklendi - main.dart: yeni pencere oncekinin saginda acilir (screen_retriever ile ekran tespiti) - viewer_screen: 2sn polling kaldirildi, konum kaydi tek akisa oturtuldu (acilis + move/resize debounce + close senkron) - dist/rebuild-deb.sh: .desktop kaynaktan kopyalanir (MimeType/StartupWMClass guncel kalir) - .deb guncellendi, docs: session-2026-08-03 + plan dokumanlari
This commit is contained in:
1 parent
d09351feef
commit
a65bdc152c
17 files changed
+272
-38
No files matched your search
@@ -0,0 +1,33 @@
|
||||
# Session Özeti — 2026-08-03
|
||||
|
||||
## Yapılanlar
|
||||
|
||||
### 1. Ek Görüntü Formatları (jfif / jpe / wbmp)
|
||||
- TIFF değerlendirildi, **vazgeçildi** (kullanıcı kararı — image paketi/decode katmanı istenmedi)
|
||||
- AVIF değerlendirildi, **eklenmedi** (Flutter'da yerleşik decoder yok — native libavif gerekir, "ultra hafif" felsefeye aykırı)
|
||||
- Eklendi: `.jfif`, `.jpe` (JPEG içerikli, Skia zaten açıyor), `.wbmp` (Skia WBMP codec)
|
||||
- Değişen yerler: file_handler (seçici), image_manager (filtre), 2× .desktop + install.sh (MimeType)
|
||||
|
||||
### 2. Pencere Cascade Yerleşimi
|
||||
- Yeni pencere artık öncekinin **x + width** kadar sağında açılıyor
|
||||
- Ekrandan taşarsa → alt satıra, satır başından
|
||||
- O da taşarsa → ekran sol-üst köşesine
|
||||
- Ekran bilgisi: `screen_retriever` paketi (window_manager'ın zaten transitive bağımlısıydı, doğrudan bağımlılık yapıldı)
|
||||
- Yeni: `WindowPersistence.cascadePosition()` — getPrimaryDisplay → visibleSize/visiblePosition
|
||||
|
||||
### 3. Pencere Konum Kaydı Düzeltmesi (kök neden)
|
||||
- **Sorun:** Konum kaydedilemiyordu → çözüm olarak 5 yere kayıt koyulmuştu (initState + 2sn polling + move/resize debounce + close + main). Birden fazla pencere açıkken polling konum yarışı yaratıyordu → yeni pencere eski konuma göre hesaplanıp üstüne düşüyordu.
|
||||
- **Çözüm:** Polling kaldırıldı. Tek akış:
|
||||
1. `main.dart` — pencere açılışında konum anında saveSync (sıradaki pencere güncel referans okur)
|
||||
2. `viewer_screen` move/resize — son bilinen bounds hemen `_lastBounds`'a, 300ms debounce ile saveSync
|
||||
3. `viewer_screen` close — `_lastBounds` **senkron** saveSync (async çağrı kapanışta tamamlanmıyordu)
|
||||
|
||||
## Doğrulama
|
||||
- `flutter analyze` — 18 info uyarı (mevcut kod stil/deprecated), hata yok
|
||||
- `flutter build linux --release` ✓
|
||||
- Kurulum: release bundle `~/.local/lib/imajviewer/` (install.sh debug bundle'ı önceliklendirdiği için elle kopyalandı)
|
||||
- Kullanıcı manuel test: WebP açılıyor ✓, cascade düzgün çalışıyor ✓
|
||||
|
||||
## Not
|
||||
- `docs/session-windows-ci.md` bozuk encoding (mojibake) — içerik git log'dan biliniyor, düzeltilmedi
|
||||
- Windows setup.exe **yeniden derlenmedi** — sadece Linux build + .deb güncellendi (Windows CI zaten Gitea Actions'ta)
|
||||
Reference in new issue
Block a user