diff --git a/src/steps/partition.rs b/src/steps/partition.rs index efd46c7..5d1db87 100644 --- a/src/steps/partition.rs +++ b/src/steps/partition.rs @@ -1095,33 +1095,40 @@ impl PartitionStep { .vertical_align(egui::Align::Center) ); - // Mountpoint değiştiğinde boyutu otomatik güncelle + // Mountpoint değiştiğinde boyutu otomatik güncelle (eğer değer boşsa veya varsayılansa) if prev_mp != self.manual.add_mountpoint { let mp = self.manual.add_mountpoint.trim().to_lowercase(); - self.manual.add_size_str = match mp.as_str() { - "/boot/efi" => "1024".to_string(), // 1GB - "swap" => { - // Swap için minimum 1GB, varsa RAM boyutu kadar - if let Ok(mem) = std::fs::read_to_string("/proc/meminfo") { - if let Some(line) = mem.lines().find(|l| l.starts_with("MemTotal:")) { - let kb: u64 = line.split_whitespace() - .nth(1) - .and_then(|s| s.parse().ok()) - .unwrap_or(4194304); // 4GB varsayılan - let mb = kb / 1024; - // Minimum 1GB, RAM boyutu ile karşılaştır - let swap_size = if mb < 1024 { 1024 } else { mb }; - swap_size.to_string() + let current_size = self.manual.add_size_str.trim(); + let is_empty_or_default = current_size.is_empty() + || current_size == "0" + || current_size == "remaining"; + + if is_empty_or_default { + self.manual.add_size_str = match mp.as_str() { + "/boot/efi" => "1024".to_string(), // 1GB + "swap" => { + // Swap için minimum 1GB, varsa RAM boyutu kadar + if let Ok(mem) = std::fs::read_to_string("/proc/meminfo") { + if let Some(line) = mem.lines().find(|l| l.starts_with("MemTotal:")) { + let kb: u64 = line.split_whitespace() + .nth(1) + .and_then(|s| s.parse().ok()) + .unwrap_or(4194304); // 4GB varsayılan + let mb = kb / 1024; + // Minimum 1GB, RAM boyutu ile karşılaştır + let swap_size = if mb < 1024 { 1024 } else { mb }; + swap_size.to_string() + } else { + "1024".to_string() // 1GB varsayılan + } } else { "1024".to_string() // 1GB varsayılan } - } else { - "1024".to_string() // 1GB varsayılan - } - }, - "/" => "remaining".to_string(), // Geri kalan alan - _ => self.manual.add_size_str.clone(), // Diğerleri için mevcut değeri koru - }; + }, + "/" => "remaining".to_string(), // Geri kalan alan + _ => self.manual.add_size_str.clone(), // Diğerleri için mevcut değeri koru + }; + } } });