Fix bugs when deleting logical partition.
modified: new_partition/interface_partition.py
This commit is contained in:
@@ -533,7 +533,7 @@ def del_msdos_partition(partition,dev):
|
||||
res3 = g3.runOnce()
|
||||
|
||||
if bb3.buttonPressed(res3) == "delete":
|
||||
pre_partition_name = clb.current().split(":")[8]
|
||||
pre_partition_name = clb.current().split(":")[8]
|
||||
list_partition_all_sorted = p_d.sort_partitions(p_d.Partition.dict, dev, "all")
|
||||
partition_sn = p_d.Partition.dict[dev]['partition'][partition]['sn']
|
||||
partition_num = p_d.Partition.dict[dev]['partition'][partition]['num']
|
||||
@@ -583,7 +583,7 @@ def del_msdos_partition(partition,dev):
|
||||
list_partition_all_sorted = p_d.sort_partitions(p_d.Partition.dict, dev, "all")
|
||||
for p in list_partition_all_sorted:
|
||||
p_sn = p_d.Partition.dict[dev]['partition'][p]['sn']
|
||||
if p_sn == partition_sn -1:
|
||||
if p_sn == partition_sn - 1:
|
||||
pre_partition = p
|
||||
elif p_sn == partition_sn + 1:
|
||||
next_partition = p
|
||||
@@ -607,7 +607,6 @@ def del_msdos_partition(partition,dev):
|
||||
float(get_num(p_d.Partition.dict[dev]['partition'][pre_partition]['start'])))+\
|
||||
base_unit
|
||||
p_d.delete_one_partition(p_d.Partition.dict, dev, next_partition)
|
||||
p_d.delete_one_partition(p_d.Partition.dict, dev,partition)
|
||||
for p in p_d.sort_partitions(p_d.Partition.dict, dev, "all"):
|
||||
p_num = p_d.Partition.dict[dev]['partition'][p]['num']
|
||||
if p_d.Partition.dict[dev]['partition'][p]['sn'] > partition_sn + 1:
|
||||
@@ -672,11 +671,14 @@ def del_msdos_partition(partition,dev):
|
||||
if p_d.Partition.dict[dev]['partition'][f]['num'] > f_num_max:
|
||||
f_num_max = p_d.Partition.dict[dev]['partition'][f]['num']
|
||||
if f_num_max > p_d.Partition.dict[dev]['partition'][next_partition]['num']:
|
||||
p_d.delete_one_partition(p_d.Partition.dict, dev, pre_partition_name+str(p_num_max))
|
||||
p_d.delete_one_partition(p_d.Partition.dict, dev, 'free '+str(f_num_max))
|
||||
|
||||
else:
|
||||
p_d.Partition.dict[dev]['partition'][next_partition]['start'] = partition_start
|
||||
p_d.Partition.dict[dev]['partition'][next_partition]['sn'] = partition_sn
|
||||
p_d.Partition.dict[dev]['partition'][next_partition]['size'] = \
|
||||
str(float(get_num(p_d.Partition.dict[dev]['partition'][next_partition]['end']))-\
|
||||
float(get_num(partition_start))) + base_unit
|
||||
for p in p_d.sort_partitions(p_d.Partition.dict, dev, "all"):
|
||||
p_num = p_d.Partition.dict[dev]['partition'][p]['num']
|
||||
if p_d.Partition.dict[dev]['partition'][p]['sn'] > partition_sn:
|
||||
@@ -717,6 +719,41 @@ def del_msdos_partition(partition,dev):
|
||||
p_d.Partition.dict[dev]['partition'][pre_partition]['size'] = \
|
||||
str(float(get_num(partition_end)) - \
|
||||
float(get_num(p_d.Partition.dict[dev]['partition'][pre_partition]['start'])))+base_unit
|
||||
for p in p_d.sort_partitions(p_d.Partition.dict, dev, "all"):
|
||||
p_num = p_d.Partition.dict[dev]['partition'][p]['num']
|
||||
if p_d.Partition.dict[dev]['partition'][p]['sn'] > partition_sn:
|
||||
p_d.Partition.dict[dev]['partition'][p]['sn'] -= 1
|
||||
if p_num > partition_num and not re.search('free', p):
|
||||
p_num -= 1
|
||||
p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num)]['num'] = \
|
||||
p_num
|
||||
p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num)]['sn'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['sn']
|
||||
p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num)]['start'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['start']
|
||||
p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num)]['end'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['end']
|
||||
p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num)]['size'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['size']
|
||||
p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num)]['filesystem'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['filesystem']
|
||||
p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num)]['type'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['type']
|
||||
p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num)]['flags'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['flags']
|
||||
p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num)]['from_os'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['from_os']
|
||||
p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num)]['mount_point'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['mount_point']
|
||||
p_d.Partition.dict[dev]['partition'][pre_partition_name+str(p_num)]['format'] = \
|
||||
p_d.Partition.dict[dev]['partition'][p]['format']
|
||||
p_num_max = 1
|
||||
for p in p_d.sort_partitions(p_d.Partition.dict, dev, "partition"):
|
||||
if p_d.Partition.dict[dev]['partition'][p]['num'] > p_num_max:
|
||||
p_num_max = p_d.Partition.dict[dev]['partition'][p]['num']
|
||||
if p_num_max > partition_num:
|
||||
p_d.delete_one_partition(p_d.Partition.dict, dev, pre_partition_name+str(p_num_max))
|
||||
|
||||
else:
|
||||
free_num = 0
|
||||
list_free_sorted = p_d.sort_partitions(p_d.Partition.dict, dev, "free")
|
||||
|
||||
Reference in New Issue
Block a user