Select unallocated partition by default (#667365)

After a refresh, instead of having no partition selected, default to the
largest unallocated partition.  This allows immediate creation of a new
partition in the unallocated space.

Closes Bug 667365 - Free space should be selected by default
This commit is contained in:
Phillip Susi 2013-01-20 22:54:02 -05:00 committed by Curtis Gedak
parent 9ad53d94a0
commit 3dd769d955
1 changed files with 13 additions and 1 deletions

View File

@ -820,6 +820,7 @@ bool Win_GParted::Merge_Operations( unsigned int first, unsigned int second )
void Win_GParted::Refresh_Visual()
{
std::vector<Partition> partitions = devices[ current_device ] .partitions ;
int largest_unallocated = -1;
//make all operations visible
for ( unsigned int t = 0 ; t < operations .size(); t++ )
@ -859,7 +860,12 @@ void Win_GParted::Refresh_Visual()
index_extended = t ;
primary_count++;
break;
case GParted::TYPE_UNALLOCATED :
if (largest_unallocated == -1)
largest_unallocated = t;
else if( (partitions[t].sector_end - partitions[t].sector_start) >
(partitions[largest_unallocated].sector_end - partitions[largest_unallocated].sector_start))
largest_unallocated = t;
default :
break;
}
@ -873,6 +879,12 @@ void Win_GParted::Refresh_Visual()
//no partition can be selected after a refresh..
selected_partition .Reset() ;
if( largest_unallocated != -1 )
{
selected_partition = partitions[largest_unallocated];
treeview_detail.set_selected( selected_partition );
drawingarea_visualdisk.set_selected( selected_partition );
}
set_valid_operations() ;
while ( Gtk::Main::events_pending() )