Ensure no pending operations before creating partition table (#583896)
This fixes a situation where GParted would crash if a user queued up some operations, created a new partition table, and then applied the operations.
This commit is contained in:
parent
0723c82f30
commit
83381f85f1
|
@ -1880,6 +1880,34 @@ void Win_GParted::activate_mount_partition( unsigned int index )
|
|||
|
||||
void Win_GParted::activate_disklabel()
|
||||
{
|
||||
//If there are pending operations then warn the user that these
|
||||
// operations must either be applied or cleared before creating
|
||||
// a new partition table.
|
||||
if ( operations .size() )
|
||||
{
|
||||
Glib::ustring tmp_msg =
|
||||
String::ucompose( ngettext( "%1 operation is currently pending."
|
||||
, "%1 operations are currently pending."
|
||||
, operations .size()
|
||||
)
|
||||
, operations .size()
|
||||
) ;
|
||||
Gtk::MessageDialog dialog( *this
|
||||
, tmp_msg
|
||||
, false
|
||||
, Gtk::MESSAGE_INFO
|
||||
, Gtk::BUTTONS_OK
|
||||
, true
|
||||
) ;
|
||||
tmp_msg = _( "A new partition table cannot be created when there are pending operations." ) ;
|
||||
tmp_msg += "\n" ;
|
||||
tmp_msg += _( "Use the Edit menu to either clear or apply all operations before creating a new partition table." ) ;
|
||||
dialog .set_secondary_text( tmp_msg ) ;
|
||||
dialog .run() ;
|
||||
return ;
|
||||
}
|
||||
|
||||
//Display dialog for creating a new partition table.
|
||||
Dialog_Disklabel dialog( devices[ current_device ] .get_path(), gparted_core .get_disklabeltypes() ) ;
|
||||
dialog .set_transient_for( *this );
|
||||
|
||||
|
|
Loading…
Reference in New Issue