Removed the ugly Get_Highest_Logical_Busy() from Device and added a
* include/Device.h, src/Device.cc, src/GParted_Core.cc, src/Win_GParted.cc: Removed the ugly Get_Highest_Logical_Busy() from Device and added a classvariable instead. This one is set in GParted_Core and used wherever needed. I also removed Device::busy, and used the new variable to check if a device is busy.
This commit is contained in:
parent
174f0cff77
commit
e5d2cb0eb7
|
@ -1,3 +1,11 @@
|
||||||
|
2004-12-27 Bart Hakvoort <hakvoort@cvs.gnome.org>
|
||||||
|
|
||||||
|
* include/Device.h,
|
||||||
|
src/Device.cc,
|
||||||
|
src/GParted_Core.cc,
|
||||||
|
src/Win_GParted.cc: Removed the ugly Get_Highest_Logical_Busy() from Device and added a classvariable instead. This one is set in
|
||||||
|
GParted_Core and used wherever needed. I also removed Device::busy, and used the new variable to check if a device is busy.
|
||||||
|
|
||||||
2004-12-27 Bart Hakvoort <gparted@users.sf.net>
|
2004-12-27 Bart Hakvoort <gparted@users.sf.net>
|
||||||
|
|
||||||
* Added cylsize to Device and made Operation contain a Device instead of only the path and lenght.
|
* Added cylsize to Device and made Operation contain a Device instead of only the path and lenght.
|
||||||
|
|
|
@ -31,8 +31,7 @@ public:
|
||||||
~Device( ) ;
|
~Device( ) ;
|
||||||
|
|
||||||
void Reset( ) ;
|
void Reset( ) ;
|
||||||
int Get_Highest_Logical_Busy( ) ;
|
|
||||||
|
|
||||||
std::vector<Partition> device_partitions ;
|
std::vector<Partition> device_partitions ;
|
||||||
Sector length;
|
Sector length;
|
||||||
long heads ;
|
long heads ;
|
||||||
|
@ -44,7 +43,7 @@ public:
|
||||||
Glib::ustring realpath;
|
Glib::ustring realpath;
|
||||||
Glib::ustring disktype;
|
Glib::ustring disktype;
|
||||||
int max_prims ;
|
int max_prims ;
|
||||||
bool busy ;
|
int highest_busy ;
|
||||||
bool readonly ;
|
bool readonly ;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -31,25 +31,8 @@ void Device::Reset( )
|
||||||
length = 0 ;
|
length = 0 ;
|
||||||
heads = sectors = cylinders = cylsize = 0 ;
|
heads = sectors = cylinders = cylsize = 0 ;
|
||||||
model = path = realpath = disktype = "" ;
|
model = path = realpath = disktype = "" ;
|
||||||
max_prims = 0 ;
|
max_prims = highest_busy = 0 ;
|
||||||
busy = readonly = false ;
|
readonly = false ;
|
||||||
}
|
|
||||||
|
|
||||||
int Device::Get_Highest_Logical_Busy( )
|
|
||||||
{
|
|
||||||
int highest_logic_busy = -1 ;
|
|
||||||
|
|
||||||
for ( unsigned int t = 0 ; t < device_partitions .size( ) ; t++ )
|
|
||||||
if ( device_partitions [ t ] .type == GParted::EXTENDED )
|
|
||||||
{
|
|
||||||
for ( unsigned int i = 0 ; i < device_partitions[ t ] .logicals .size( ) ; i++ )
|
|
||||||
if ( device_partitions[ t ] .logicals[ i ] .busy && device_partitions[ t ] .logicals[ i ] .partition_number > highest_logic_busy )
|
|
||||||
highest_logic_busy = device_partitions[ t ] .logicals[ i ] .partition_number ;
|
|
||||||
|
|
||||||
break ;
|
|
||||||
}
|
|
||||||
|
|
||||||
return highest_logic_busy ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Device::~Device( )
|
Device::~Device( )
|
||||||
|
|
|
@ -107,7 +107,7 @@ void GParted_Core::get_devices( std::vector<Device> & devices )
|
||||||
|
|
||||||
set_device_partitions( temp_device ) ;
|
set_device_partitions( temp_device ) ;
|
||||||
|
|
||||||
if ( temp_device .busy )
|
if ( temp_device .highest_busy )
|
||||||
{
|
{
|
||||||
temp_device .readonly = ! ped_disk_commit_to_os( disk ) ;
|
temp_device .readonly = ! ped_disk_commit_to_os( disk ) ;
|
||||||
sleep( 1 ) ;//this sucks, but it seems that after the commit test, the paths are removed and added again (which takes time..)
|
sleep( 1 ) ;//this sucks, but it seems that after the commit test, the paths are removed and added again (which takes time..)
|
||||||
|
@ -184,9 +184,9 @@ void GParted_Core::set_device_partitions( Device & device )
|
||||||
|
|
||||||
partition_temp .flags = Get_Flags( c_partition ) ;
|
partition_temp .flags = Get_Flags( c_partition ) ;
|
||||||
|
|
||||||
if ( partition_temp .busy )
|
if ( partition_temp .busy && partition_temp .partition_number > device .highest_busy )
|
||||||
device .busy = true ;
|
device .highest_busy = partition_temp .partition_number ;
|
||||||
|
|
||||||
break ;
|
break ;
|
||||||
|
|
||||||
case PED_PARTITION_EXTENDED:
|
case PED_PARTITION_EXTENDED:
|
||||||
|
|
|
@ -940,7 +940,7 @@ void Win_GParted::activate_new()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Win_GParted::activate_delete()
|
void Win_GParted::activate_delete( )
|
||||||
{
|
{
|
||||||
//since logicals are *always* numbered from 5 to <last logical> there can be a shift in numbers after deletion.
|
//since logicals are *always* numbered from 5 to <last logical> there can be a shift in numbers after deletion.
|
||||||
//e.g. consider /dev/hda5 /dev/hda6 /dev/hda7. Now after removal of /dev/hda6, /dev/hda7 is renumbered to /dev/hda6
|
//e.g. consider /dev/hda5 /dev/hda6 /dev/hda7. Now after removal of /dev/hda6, /dev/hda7 is renumbered to /dev/hda6
|
||||||
|
@ -948,7 +948,7 @@ void Win_GParted::activate_delete()
|
||||||
//it seems best to check for this and prohibit deletion with some explanation to the user.
|
//it seems best to check for this and prohibit deletion with some explanation to the user.
|
||||||
if ( selected_partition .type == GParted::LOGICAL &&
|
if ( selected_partition .type == GParted::LOGICAL &&
|
||||||
selected_partition .status != GParted::STAT_NEW &&
|
selected_partition .status != GParted::STAT_NEW &&
|
||||||
selected_partition .partition_number < devices [ current_device ] .Get_Highest_Logical_Busy( ) )
|
selected_partition .partition_number < devices [ current_device ] .highest_busy )
|
||||||
{
|
{
|
||||||
str_temp = "<span weight=\"bold\" size=\"larger\">" ;
|
str_temp = "<span weight=\"bold\" size=\"larger\">" ;
|
||||||
str_temp += _( "Unable to delete partition!") ;
|
str_temp += _( "Unable to delete partition!") ;
|
||||||
|
@ -1156,7 +1156,7 @@ void Win_GParted::activate_apply( )
|
||||||
//find out if any of the involved devices is busy
|
//find out if any of the involved devices is busy
|
||||||
bool any_busy = false ;
|
bool any_busy = false ;
|
||||||
for ( unsigned int t = 0; t < devices .size( ) && ! any_busy; t++ )
|
for ( unsigned int t = 0; t < devices .size( ) && ! any_busy; t++ )
|
||||||
if ( devices[ t ] .busy )
|
if ( devices[ t ] .highest_busy )
|
||||||
for (unsigned int i = 0; i < operations .size( ) && ! any_busy; i++ )
|
for (unsigned int i = 0; i < operations .size( ) && ! any_busy; i++ )
|
||||||
if ( operations[ i ] .device .path == devices[ t ] .path )
|
if ( operations[ i ] .device .path == devices[ t ] .path )
|
||||||
any_busy = true ;
|
any_busy = true ;
|
||||||
|
|
Loading…
Reference in New Issue