removed libparted messagesdialog. instead, show them on the console. They

* src/Device.cc: removed libparted messagesdialog. instead, show them on the console. They proved to be pretty useless.
* src/Win_GParted.cc: fixed crasher when loading gparted (or refresh devices) while there's a (audio) cd in the cdrom-drive.
This commit is contained in:
Bart Hakvoort 2004-10-22 21:08:43 +00:00
parent 445c252441
commit 3528ee71f5
3 changed files with 21 additions and 63 deletions

View File

@ -1,3 +1,8 @@
2004-10-22 Bart Hakvoort <gparted@users.sf.net>
* src/Device.cc: removed libparted messagesdialog. instead, show them on the console. They proved to be pretty useless.
* src/Win_GParted.cc: fixed crasher when loading gparted (or refresh devices) while there's a (audio) cd in the cdrom-drive.
2004-10-21 Bart Hakvoort <gparted@users.sf.net> 2004-10-21 Bart Hakvoort <gparted@users.sf.net>
* configure.in: modernized use of AM_INIT_AUTOMAKE a bit (according to * configure.in: modernized use of AM_INIT_AUTOMAKE a bit (according to

View File

@ -54,47 +54,10 @@ Glib::ustring get_sym_path( const Glib::ustring & real_path )
//AFAIK it's not possible to use a C++ memberfunction as a callback for a C libary function (if you know otherwise, PLEASE contact me) //AFAIK it's not possible to use a C++ memberfunction as a callback for a C libary function (if you know otherwise, PLEASE contact me)
Glib::ustring error_message; Glib::ustring error_message;
bool show_libparted_message = true ;
PedExceptionOption PedException_Handler (PedException* ex) PedExceptionOption PedException_Handler (PedException* ex)
{ {
error_message = ex ->message ; error_message = ex ->message ;
std::cout << error_message << "\n---------------------------\n" ;
if ( show_libparted_message )
{
Gtk::HBox *hbox_filler;
Glib::ustring message = "<span weight=\"bold\" size=\"larger\">" + (Glib::ustring) _( "Libparted message" ) + "</span>\n\n" ;
message += (Glib::ustring) _( "This message directly comes from libparted and has little to do with GParted. However, the message might contain useful information, so you might decide to read it.") + "\n";
message += _( "If you don't want to see these messages any longer, it's safe to disable them.") ;
Gtk::MessageDialog dialog( message, true, Gtk::MESSAGE_WARNING, Gtk::BUTTONS_OK, true);
Gtk::Frame frame_libparted_message ;
frame_libparted_message .set_size_request( 400, -1 );
frame_libparted_message .set_label_widget( * mk_label("<b>" + (Glib::ustring) _( "Libparted message") + ": </b>" ) ) ;
frame_libparted_message .set_border_width( 5 ) ;
hbox_filler = manage( new Gtk::HBox() ) ;
hbox_filler ->pack_start ( * mk_label( "\t\t" ), Gtk::PACK_SHRINK ) ; //filler
hbox_filler ->pack_start ( frame_libparted_message, Gtk::PACK_SHRINK ) ;
dialog .get_vbox() ->pack_start( *hbox_filler, Gtk::PACK_SHRINK ) ;
frame_libparted_message.add ( * mk_label( "<i>" + error_message + "</i>", true, false, true ) ) ;
Gtk::CheckButton checkbutton_message( _( "Hide libparted messages for this session" ) ) ;
checkbutton_message .set_border_width( 5 ) ;
hbox_filler = manage( new Gtk::HBox() ) ;
hbox_filler ->pack_start ( * mk_label( "\t\t" ), Gtk::PACK_SHRINK ) ;
hbox_filler ->pack_start ( checkbutton_message, Gtk::PACK_SHRINK ) ;
dialog .get_vbox() ->pack_start( *hbox_filler, Gtk::PACK_SHRINK ) ;
dialog .show_all_children() ;
dialog .run();
show_libparted_message = ! checkbutton_message .get_active() ;
}
return PED_EXCEPTION_UNHANDLED ; return PED_EXCEPTION_UNHANDLED ;
} }
@ -416,10 +379,7 @@ bool Device::Commit()
{ {
bool return_value = ped_disk_commit_to_dev( disk ) ; bool return_value = ped_disk_commit_to_dev( disk ) ;
//i don't want this annoying "warning couldn't reread blabla" message all the time. (I throw one myself if necessary)
ped_exception_fetch_all() ;
ped_disk_commit_to_os( disk ) ; ped_disk_commit_to_os( disk ) ;
ped_exception_leave_all() ;
return return_value ; return return_value ;
} }
@ -514,16 +474,7 @@ Sector Device::Get_Used_Sectors( PedPartition *c_partition, const Glib::ustring
PedFileSystem *fs = NULL; PedFileSystem *fs = NULL;
PedConstraint *constraint = NULL; PedConstraint *constraint = NULL;
//prevent messagebox from showing up (the error wil be stored in the infodialog)
if ( show_libparted_message )
{
show_libparted_message = false ;
fs = ped_file_system_open( & c_partition ->geom ); fs = ped_file_system_open( & c_partition ->geom );
show_libparted_message = true ;
}
else
fs = ped_file_system_open( & c_partition ->geom );
if ( fs ) if ( fs )
{ {

View File

@ -379,7 +379,10 @@ void Win_GParted::Find_Devices( bool deep_scan )
ped_device_probe_all( ); ped_device_probe_all( );
PedDevice *device = ped_device_get_next ( NULL ); PedDevice *device = ped_device_get_next ( NULL );
while ( device )
//in certain cases (e.g. when there's a cd in the cdrom-drive) ped_device_probe_all will find a 'ghost' device that has no name or contains
//random garbage. Those 2 checks try to prevent such a ghostdevice from being initialized.. (tested over a 1000 times with and without cd)
while ( device && strlen( device ->path ) > 6 && ( (Glib::ustring) device ->path ). is_ascii( ) )
{ {
temp_device = new GParted::Device( device ->path, &FILESYSTEMS ); temp_device = new GParted::Device( device ->path, &FILESYSTEMS );
if ( temp_device ->Get_Length() > 0 ) if ( temp_device ->Get_Length() > 0 )
@ -392,7 +395,6 @@ void Win_GParted::Find_Devices( bool deep_scan )
device = ped_device_get_next ( device ) ; device = ped_device_get_next ( device ) ;
} }
} }
void Win_GParted::Refresh_OptionMenu( ) void Win_GParted::Refresh_OptionMenu( )