UI ve ikon güncellemesi

This commit is contained in:
hOLOlu
2026-05-06 15:59:53 +03:00
parent aaf30bcacc
commit 561a953b1f
1323 changed files with 24819 additions and 23980 deletions

View File

@@ -5,30 +5,31 @@ Modern, hızlı ve kullanıcı dostu, .NET 8 ve WPF tabanlıık kaynaklı bi
## 🚀 Öne Çıkan Özellikler
* **Segmentli İndirme:** Dosyaları parçalara bölerek maksimum bant genişliği ile indirme sağlar.
* **Tarayıcı Entegrasyonu:** Özel browser eklentisi (Chrome/Edge) ve `BrowserBridge` teknolojisi ile tarayıcıdaki linkleri otomatik yakalar.
* **Canlı Hız Grafiği:** Ana pencerenin üst kısmında, son 30 saniyelik toplam indirme hızını gösteren sağdan sola kayan interaktif grafik.
* **Hız Limitleme (Speed Throttling):** Kullanıcı tanımlı hız limiti (KB/s) belirleyerek ağ trafiğini kontrol etme imkanı.
* **Otomatik Yeniden Deneme (Auto-Retry):** Kopan bağlantılarda veya hata veren indirme parçalarında artan gecikme (exponential backoff) süreleriyle otomatik tekrar deneme.
* **Kesintiye Uğrayan İndirmelere Devam Etme (Resuming):** İndirmeyi duraklattığınızda ve daha sonra devam ettirdiğinizde, tam kaldığı yerden segment bazlı veya tekil devam edebilme.
* **Tarayıcı Entegrasyonu:** Özel browser eklentisi (Chrome/Edge) ve `BrowserBridge` teknolojisi ile tarayıcıdaki linkleri otomatik yakalama.
* **Site İncele (Site Grabber):** Bir web sitesindeki indirilebilir tüm dosyaları analiz edip listeleme ve seçilenleri tek tıkla indirme.
* **Canlı Hız Grafiği:** Ana pencerenin üst kısmında, son 30 saniyelik toplam indirme hızını gösteren interaktif grafik.
* **Akıllı Dosya Adı Algılama:** Karmaşık yönlendirmeler (redirect) ve dinamik URL'lerden gerçek dosya adını otomatik tespit eder.
* **Sistem Tepsisi (Systray) Desteği:** Uygulama kapandığında sistem tepsisine küçülür, arka planda çalışmaya devam eder.
* **Gelişmiş Sıralama ve Filtreleme:** İndirmeleri tarihe, boyuta, duruma veya isme göre akıllıca sıralar; kategori bazlı filtreleme yapar.
* **Kullanıcı Arayüzü Özelleştirme:**
*ık/Koyu tema desteği.
* Kategori panelini gizleme/gösterme seçeneği.
* Sütun genişliklerini otomatik kaydetme ve geri yükleme.
* **Detaylı İndirme Özellikleri:** Her indirme için özel özellikler formu üzerinden detaylı bilgi, kopyalanabilir linkler ve hızlı dosya erişimi.
* **Kullanıcı Arayüzü Özelleştirme:**ık/Koyu tema desteği, kategori panelini gizleme/gösterme ve sütun genişliklerini otomatik kaydetme.
* **Türkçe Arayüz ve Loglama:** İndirme durumları ve arka plan motor loglamaları Türkçeye çevrilmiş olup SQL logları minimize edilmiştir.
## 🛠 Teknik Mimari
Uygulama modern yazılım prensipleri (Clean Architecture) ve MVVM deseni üzerine inşa edilmiştir:
* **DownloadManager.Core:** İndirme motoru, HTTP protokol yönetimi, SQLite veritabanı katmanı ve temel modelleri içerir.
* **DownloadManager.WPF:** CommunityToolkit.Mvvm kullanılarak geliştirilmiş, ModernWpf UI kütüphanesi ile zenginleştirilmiş kullanıcı arayüzü.
* **DownloadManager.BrowserBridge:** Tarayıcı eklentisinden gelen verileri Named Pipe üzerinden ana uygulamaya aktaran hafif köprü uygulaması.
* **DownloadManager.Core:** İndirme motoru, Hız Sınırlayıcı (SpeedThrottler), HTTP protokol yönetimi, SQLite veritabanı katmanı ve temel modelleri içerir.
* **DownloadManager.WPF:** CommunityToolkit.Mvvm kullanılarak geliştirilmiş, ModernWpf UI kütüphanesi ile zenginleştirilmiş kullanıcı arayüzü.
* **DownloadManager.BrowserBridge:** Tarayıcı eklentisinden gelen verileri Named Pipe üzerinden ana (`hDM`) uygulamaya aktaran hafif köprü uygulaması.
* **Veritabanı:** Ayarlar ve indirme geçmişi SQLite üzerinde Entity Framework Core ile yönetilir.
## 📦 Kurulum ve Çalıştırma
### Gereksinimler
* .NET 8.0 SDK
* .NET 8.0 SDK (Eğer Self-Contained olarak derlenmediyse .NET Desktop Runtime 8.0 gereklidir)
* Windows 10/11
* Google Chrome veya Microsoft Edge (Eklenti için)
@@ -39,6 +40,8 @@ Proje kök dizininde aşağıdaki komutu kullanarak `Release` modunda derleme ya
dotnet build ./src/DownloadManager.sln -c Release
```
Daha gelişmiş dağıtım seçenekleri (Self-Contained veya Advanced Installer kullanımı) için lütfen [docs/DEPLOYMENT.md](docs/DEPLOYMENT.md) rehberini okuyun.
### 🧩 Tarayıcı Eklentisi Kurulumu
hDM'nin tarayıcı ile entegre çalışabilmesi için aşağıdaki iki adımı tamamlamanız gerekir:
@@ -56,19 +59,18 @@ Tarayıcının eklenti üzerinden ana uygulama ile konuşabilmesi için "Native
### 🖱 Kullanım
* **Otomatik Yakalama:** Eklenti yüklendikten sonra tarayıcıda bir indirme linkine tıkladığınızda hDM otomatik olarak açılır ve linki "Ekle" penceresine taşır.
* **Otomatik Yakalama:** Eklenti yüklendikten sonra tarayıcıda sağ tık menüsünden **"hDM ile indir"** diyerek veya desteklenen uzantılara tıklayarak otomatik yakalama sağlayabilirsiniz.
* **Site İncele:** Sayfa içindeyken sağ tıklayıp **"Siteyi hDM ile incele"** diyerek sayfadaki tüm dosyaları topluca analiz edebilirsiniz.
* **Pano Desteği:** Herhangi bir linki kopyalayıp hDM içindeki "Ekle" butonuna bastığınızda link otomatik olarak yapıştırılır.
* **Sistem Tepsisi:** Uygulamayı kapattığınızda saat yanındaki simgeden sağ tıklayarak "Göster" diyebilir veya "Çıkış" ile tamamen kapatabilirsiniz.
## 📈 Son Durum ve İyileştirmeler
Son yapılan güncellemeler ile:
- [x] SVG tabanlı ikon desteği ve modern Systray entegrasyonu tamamlandı.
- [x] "Kalan Süre" (ETA) hesaplama algoritması eklendi.
- [x] "Ekle" penceresine Pano (Clipboard) otomatik yapıştırma özelliği getirildi.
- [x] Dinamik/Redirect linklerdeki "0 B" boyutu ve hatalı dosya adı sorunları giderildi.
- [x] StatusBar üzerinden anlık disk alanı ve toplam hız takibi eklendi.
- [x] Üst başlık alanına canlı hız dalgalanma grafiği eklendi.
- [x] Derleme adı `hDM.exe` olarak güncellendi. Özel ikonlar (`Down_nb-02`) eklendi.
- [x] İndirme hızı limitleme (`SpeedThrottler`) ve otomatik yeniden deneme (`Auto-Retry`) motoru yazıldı.
- [x] İndirme duraklatma ve devam ettirme mekanizmasındaki ilerleme (progress) sıfırlanma hataları giderildi.
- [x] UI Durum bildirimleri ve arka plan logları Türkçeleştirildi. EF Core SQL logları temizlendi.
- [x] Tarayıcı eklentisinden bağlam menüsü entegrasyonu (Context Menu) ile URL'nin doğrudan Site İncele paneline aktarılması sağlandı.
## 🛡 Güvenlik ve Gizlilik
hDM, kullanıcı verilerini sadece yerel SQLite veritabanında saklar. Şifreler ve kimlik bilgileri `ProtectedData` (DPAPI) ile Windows seviyesinde şifrelenerek korunur.