fix(execution): kopyalama başlayınca "bekleyin" uyarısını gizle

Kullanıcı isteği: "kurulum başladığında kopyalanan dosyalar
gösterilmeye başladığında kurulum devam ediyor bekleyin uyarısını
kaldır."

`install_in_progress` ("Kurulum devam ediyor, lütfen bekleyin…") İKİ
yerde çiziliyordu:

  1. çubuğun yanında, `copy_active` DEĞİLSE
  2. altındaki "durum etiketi"nde, `running` olduğu sürece

`running = !finished && !error && (copy_active || install_progress
> 0.0)` olduğu için kopyalama sırasında ikisi de doğruydu: aynı
uyarı ekranda iki kez görünüyordu. Üstelik birinin yanında yüzde ve
kopyalanan dosyanın adı yazılıydı — "bekleyin" demek, ne olduğunu
söyleyen çok daha fazla bilginin üstüne gereksiz bir talimat.

## Değişiklik

`show_wait_notice(running, copy_active)` saf yardımcı; kopyalama
sırasında uyarıyı bastırır.

Kopyalama bitince `CopyFinished` ile `copy_active` false olur ve
uyarı GERİ GELİR: fstab, GRUB, temizlik gibi adımlarda ilerleme
çubuğu yoktur, orada kullanıcının beklemesi gerektiğini bilmesi
doğrudur. Kullanıcı "kopyalama sırasında" dediği için bu adımlar
kapsam dışı bırakıldı.

## Testler (102 → 105)

execution.rs'de test modülü yoktu; eklendi.
- kopyalama sırasında uyarı yok
- kopyalama bitince uyarı geri geliyor
- çalışmıyorken uyarı yok

Not: `execution_description` ("Lütfen bekleyin. Bu işlem birkaç
dakika sürebilir.") başlıkta sabit duruyor. O da "bekleyin" diyor
ama kopyalamanın uzun süreceğini baştan bildiği için anlamlı;
istenirse o da kaldırılabilir.

cargo check --all-targets : 0 hata, 0 uyarı
cargo test              : 105/105

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Erkan IŞIK
2026-09-27 17:00:43 +03:00
parent 948e1d548d
commit 7ff5c4b783
+49 -1
View File
@@ -16,6 +16,20 @@ use crate::jobs::{self, InstallMessage, UiSender};
use crate::ui::{ErrorScreen, Slideshow};
use crate::ui::theme;
/// "Kurulum devam ediyor, lütfen bekleyin…" uyarısı gösterilmeli mi?
///
/// `copy_active` iken GÖSTERİLMEZ: çubuğun yanında yüzde ve kopyalanan
/// dosyanın adı zaten yazılı, "bekleyin" demek yerine ne olduğunu
/// söyleyen çok daha fazla bilgi var. Ek olarak bu etiket çubuğun
/// altında ikinci kez görünüyordu.
///
/// Kopyalama bitince `copy_active` false olur ve uyarı geri gelir:
/// fstab, GRUB, temizlik gibi adımlarda ilerleme çubuğu yoktur, orada
/// kullanıcının beklemesi gerektiğini bilmesi doğrudur.
fn show_wait_notice(running: bool, copy_active: bool) -> bool {
running && !copy_active
}
#[derive(Default)]
pub struct ExecutionStep {
rx: Option<mpsc::Receiver<InstallMessage>>,
@@ -337,7 +351,7 @@ impl InstallerStep for ExecutionStep {
ui.add_space(8.0);
if self.finished {
theme::success_box(ui, &t!("install_done"));
} else if running {
} else if show_wait_notice(running, self.copy_active) {
ui.horizontal(|ui| {
ui.spinner();
ui.colored_label(theme::c_text_dim(), t!("install_in_progress"));
@@ -390,3 +404,37 @@ impl InstallerStep for ExecutionStep {
// egui::Color32::from_rgb(185, 185, 205)
// }
// }
#[cfg(test)]
mod tests {
use super::show_wait_notice;
/// Kopyalama başlayınca "bekleyin" uyarısı KAYBOLMALI.
///
/// Kullanıcı isteği: kopyalanan dosyalar gösterilmeye başladığında
/// uyarı gereksiz — çubuk zaten yüzde ve dosya adını gösteriyor.
#[test]
fn wait_notice_hidden_while_copying() {
assert!(
!show_wait_notice(true, true),
"kopyalama sırasında uyarı gösterilmemeli"
);
}
/// Çubuk olmayan adımlarda (fstab, GRUB, temizlik) uyarı kalmalı —
/// orada kullanıcının beklemesi gerektiğini bilmesi doğru.
#[test]
fn wait_notice_shown_after_copy_finishes() {
assert!(
show_wait_notice(true, false),
"kopyalama bitince uyarı geri gelmeli"
);
}
/// Kurulum başlamadan / bitince uyarı olmaz.
#[test]
fn wait_notice_absent_when_not_running() {
assert!(!show_wait_notice(false, false), "çalışmıyorken uyarı olmamalı");
assert!(!show_wait_notice(false, true), "çalışmıyorken uyarı olmamalı");
}
}