fix: manuel girilen bölüm boyutunun mountpoint değişiminde ezilmesi

This commit is contained in:
Erkan IŞIK
2026-08-22 15:11:24 +03:00
parent 91acde5317
commit 379d32ac38
+29 -22
View File
@@ -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
};
}
}
});