diff options
-rw-r--r-- | TODO | 2 | ||||
-rw-r--r-- | src/format-window-operation.c | 111 | ||||
-rw-r--r-- | src/format-window.c | 121 | ||||
-rw-r--r-- | src/format-window.h | 2 | ||||
-rw-r--r-- | src/gdu-utils.c | 120 | ||||
-rw-r--r-- | src/gnome-disk-utility-format.c | 1 | ||||
-rw-r--r-- | src/nautilus-gdu.c | 12 |
7 files changed, 103 insertions, 266 deletions
@@ -26,7 +26,7 @@ Standalone mode: - handle LUKS encrypted volumes -- creating new encrypted media works fine, but reverting back to non-encrypted doesn't (device /dev/sdb1 vs. /dev/dm-0) DONE, NEEDS_TESTING - monitor device/presentable events like eject, umount etc. (try to pull the USB key out and window should disappear) - show custom icon if user has set it in Nautilus -- is firmware needed for some devices? +REMOVED- is firmware needed for some devices? DONE - different partition tables? DONE - what to do if device is blank (zeroed, no MBR)? DONE - handle read only device - gdu_device_is_read_only() - test with DVD-RAM media diff --git a/src/format-window-operation.c b/src/format-window-operation.c index 40ea754..0d0a8f1 100644 --- a/src/format-window-operation.c +++ b/src/format-window-operation.c @@ -36,6 +36,7 @@ +/* TODO: find a better way for this */ #define DEVICE_SETTLE_TIMEOUT 3000 @@ -58,7 +59,7 @@ device_needs_partition_table (GduDevice *device) } } // g_strfreev (media_compat); /* so, is this const then? */ - g_print ("device_needs_partition_table = %d\n", needs); + g_debug ("device_needs_partition_table = %d", needs); return needs; } @@ -71,7 +72,7 @@ job_progress_pulse_timeout_handler (gpointer user_data) g_return_val_if_fail (data != NULL, TRUE); - g_print ("job_progress_pulse_timeout_handler\n"); +/* g_print ("job_progress_pulse_timeout_handler\n"); */ gtk_progress_bar_pulse (GTK_PROGRESS_BAR (data->priv->progress_bar)); return TRUE; @@ -87,7 +88,7 @@ do_progress_bar_update (FormatProcessData *data, const char *label, double perce gtk_progress_bar_set_pulse_step (GTK_PROGRESS_BAR (data->priv->progress_bar), 2.0 / 50); gtk_progress_bar_pulse (GTK_PROGRESS_BAR (data->priv->progress_bar)); if (data->job_progress_pulse_timer_id == 0) { - g_print ("activating progress bounce...\n"); +/* g_print ("activating progress bounce...\n"); */ data->job_progress_pulse_timer_id = g_timeout_add ( 1000 / 50, job_progress_pulse_timeout_handler, @@ -119,8 +120,6 @@ presentable_job_changed (GduPresentable *presentable, gpointer user_data) char *task_description; double percentage; - g_print ("presentable_job_changed\n"); - g_return_if_fail (data != NULL); if (data->device != NULL && gdu_device_job_in_progress (data->device)) { @@ -165,8 +164,6 @@ update_ui_progress (FormatDialogPrivate *priv, { g_return_if_fail (priv != NULL); -// g_print ("update_ui_progress\n"); - priv->job_running = working; if (working) { @@ -252,14 +249,10 @@ free_format_action_data (FormatProcessData *data) g_object_unref (data->presentable); if (data->device != NULL) g_object_unref (data->device); - if (data->encrypt_passphrase != NULL) - g_free (data->encrypt_passphrase); - if (data->fstype != NULL) - g_free (data->fstype); - if (data->fslabel != NULL) - g_free (data->fslabel); - if (data->secure_erase != NULL) - g_free (data->secure_erase); + g_free (data->encrypt_passphrase); + g_free (data->fstype); + g_free (data->fslabel); + g_free (data->secure_erase); g_free (data); } } @@ -273,7 +266,7 @@ action_finished (FormatProcessData *data, char *new_device_path) GduDevice *new_device; GduPresentable *new_presentable = NULL; - /* we don't want to destroy objects at this point, don't pass data */ + /* we don't want to destroy objects at this point, don't pass data in */ update_ui_progress (data->priv, NULL, FALSE); /* change to the new device */ @@ -285,10 +278,10 @@ action_finished (FormatProcessData *data, char *new_device_path) new_presentable = gdu_pool_get_volume_by_device (data->priv->pool, new_device); if (new_presentable) { /* switch to new presentable */ - g_print ("setting new presentable...\n"); + g_debug ("setting new presentable..."); } } else { - g_warning ("action_finished: cannot find device for the %s device path\n", new_device_path); + g_warning ("action_finished: cannot find device for the %s device path", new_device_path); } g_free (new_device_path); } @@ -346,8 +339,8 @@ nautilus_gdu_show_error (GtkWidget *parent_window, gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), "%s", error->message); gtk_window_set_title (GTK_WINDOW (dialog), window_title); - // TODO: no support for GIcon in GtkWindow - //gtk_window_set_icon_name (GTK_WINDOW (dialog), window_icon_name); + /* TODO: no support for GIcon in GtkWindow */ + /* gtk_window_set_icon_name (GTK_WINDOW (dialog), window_icon_name); */ g_signal_connect_swapped (dialog, "response", @@ -370,7 +363,7 @@ modify_partition_completed (GduDevice *device, { FormatProcessData *data = user_data; - g_print ("modify_partition_completed\n"); + g_debug ("modify_partition_completed"); g_return_if_fail (data != NULL); if (error != NULL) { @@ -396,7 +389,7 @@ part_modify_action_callback (GtkAction *action, gpointer user_data) FormatProcessData *data = user_data; g_return_if_fail (data != NULL); - g_print ("part_modify_action_callback\n"); + g_debug ("part_modify_action_callback"); if (data->priv->job_cancelled) return; @@ -413,7 +406,7 @@ part_modify_auth_end_callback (PolKitGnomeAction *action, FormatProcessData *data = user_data; g_return_if_fail (data != NULL); - g_print ("part_modify_auth_end_callback\n"); + g_debug ("part_modify_auth_end_callback"); if (! gained_privilege) { /* cancel the whole operation */ @@ -436,7 +429,7 @@ format_action_completed (GduDevice *device, GduPresentable *toplevel_presentable; GduDevice *toplevel_device; - g_print ("format_action_completed\n"); + g_debug ("format_action_completed"); g_return_if_fail (data != NULL); if (error != NULL) { @@ -465,11 +458,11 @@ format_action_completed (GduDevice *device, if (! data->priv->job_cancelled && data->scheme && strlen (data->scheme) > 0) { part_type = gdu_device_partition_get_type (device); data->recommended_part_type = gdu_util_get_default_part_type_for_scheme_and_fstype (data->scheme, data->fstype, gdu_device_partition_get_size (device)); - g_print ("format_action_completed: part_type = %s, recommended_part_type = %s\n", part_type, data->recommended_part_type); + g_debug ("format_action_completed: part_type = %s, recommended_part_type = %s", part_type, data->recommended_part_type); /* Change partition type if necessary */ if (strcasecmp (part_type, data->recommended_part_type) != 0) { - g_print ("changing part type to %s, device = %s\n", data->recommended_part_type, gdu_device_get_device_file (device)); + g_debug ("changing part type to %s, device = %s", data->recommended_part_type, gdu_device_get_device_file (device)); gtk_action_activate (GTK_ACTION (data->part_modify_action)); return; /* don't change the UI yet */ } @@ -487,7 +480,7 @@ format_action_callback (GtkAction *action, gpointer user_data) FormatProcessData *data = user_data; g_return_if_fail (data != NULL); - g_print ("format_action_callback\n"); + g_debug ("format_action_callback"); if (data->priv->job_cancelled) return; @@ -510,7 +503,7 @@ format_auth_end_callback (PolKitGnomeAction *action, FormatProcessData *data = user_data; g_return_if_fail (data != NULL); - g_print ("format_auth_end_callback\n"); + g_debug ("format_auth_end_callback"); if (! gained_privilege) { /* cancel the whole operation */ @@ -552,7 +545,7 @@ unmount_action_completed (GduDevice *device, g_return_if_fail (data != NULL); - g_print ("unmount_action_completed\n"); + g_debug ("unmount_action_completed"); update_ui_controls (data->priv); if (error != NULL) { @@ -573,7 +566,7 @@ unmount_action_completed (GduDevice *device, else { /* TODO: maybe perform a refresh? */ - g_print (" formatting...\n"); + g_debug (" formatting..."); if (data->priv->job_cancelled) return; gtk_action_activate (GTK_ACTION (data->format_action)); @@ -586,7 +579,7 @@ unmount_action_callback (GtkAction *action, gpointer user_data) FormatProcessData *data = user_data; g_return_if_fail (data != NULL); - g_print ("unmount_action_callback\n"); + g_debug ("unmount_action_callback"); if (data->priv->job_cancelled) return; @@ -602,7 +595,7 @@ unmount_auth_end_callback (PolKitGnomeAction *action, FormatProcessData *data = user_data; g_return_if_fail (data != NULL); - g_print ("unmount_auth_end_callback\n"); + g_debug ("unmount_auth_end_callback"); if (! gained_privilege) { /* cancel the whole operation */ @@ -621,7 +614,7 @@ part_table_new_timeout_handler (gpointer user_data) FormatProcessData *data = user_data; g_return_val_if_fail (data != NULL, FALSE); - g_print ("part_table_new_timeout_handler\n"); + g_debug ("part_table_new_timeout_handler"); gtk_action_activate (GTK_ACTION (data->part_new_action)); @@ -638,7 +631,7 @@ part_table_new_completed (GduDevice *device, /* BUG: callback shouldn't be spawned until all changes are reflected in pool */ g_return_if_fail (data != NULL); - g_print ("part_table_new_completed\n"); + g_debug ("part_table_new_completed"); update_ui_controls (data->priv); if (error != NULL) { @@ -651,13 +644,13 @@ part_table_new_completed (GduDevice *device, } else { - g_print (" creating partition...\n"); + g_debug (" creating partition..."); if (data->priv->job_cancelled) return; /* TODO: we should wait here for proper refresh */ g_timeout_add (DEVICE_SETTLE_TIMEOUT, part_table_new_timeout_handler, data); do_progress_bar_update (data, _("Waiting for device to settle..."), -1, TRUE); -// gtk_action_activate (GTK_ACTION (data->part_new_action)); + /* gtk_action_activate (GTK_ACTION (data->part_new_action)); -- disabled */ } } @@ -667,7 +660,7 @@ part_table_new_action_callback (GtkAction *action, gpointer user_data) FormatProcessData *data = user_data; g_return_if_fail (data != NULL); - g_print ("part_table_new_action_callback\n"); + g_debug ("part_table_new_action_callback"); if (data->priv->job_cancelled) return; @@ -686,7 +679,7 @@ part_table_new_auth_end_callback (PolKitGnomeAction *action, FormatProcessData *data = user_data; g_return_if_fail (data != NULL); - g_print ("part_table_new_auth_end_callback\n"); + g_debug ("part_table_new_auth_end_callback"); if (! gained_privilege) { /* cancel the whole operation */ @@ -710,7 +703,7 @@ part_new_completed (GduDevice *device, /* BUG: callback shouldn't be spawned until all changes are reflected in pool */ g_return_if_fail (data != NULL); - g_print ("part_new_completed, created_device_object_path = %s\n", error == NULL ? created_device_object_path : NULL); + g_debug ("part_new_completed, created_device_object_path = %s", error == NULL ? created_device_object_path : NULL); if (error != NULL) { nautilus_gdu_show_error (GTK_WIDGET (data->priv->dialog), @@ -737,7 +730,7 @@ part_new_action_callback (GtkAction *action, gpointer user_data) char *type; g_return_if_fail (data != NULL); - g_print ("part_new_action_callback, device = %s\n", gdu_device_get_device_file (data->device)); + g_debug ("part_new_action_callback, device = %s", gdu_device_get_device_file (data->device)); if (data->priv->job_cancelled) return; @@ -752,7 +745,7 @@ part_new_action_callback (GtkAction *action, gpointer user_data) type = gdu_util_get_default_part_type_for_scheme_and_fstype (data->scheme, data->fstype, size); - g_print ("creating new partition, offset = %lu, size = %lu, scheme = %s, type = %s\n", offset, size, data->scheme, type); + g_debug ("creating new partition, offset = %lu, size = %lu, scheme = %s, type = %s", offset, size, data->scheme, type); gdu_device_op_partition_create (data->device, offset, size, type, NULL, NULL, data->fstype, data->fslabel, data->secure_erase, data->encrypt_passphrase, data->take_ownership, @@ -768,7 +761,7 @@ part_new_auth_end_callback (PolKitGnomeAction *action, FormatProcessData *data = user_data; g_return_if_fail (data != NULL); - g_print ("part_new_auth_end_callback\n"); + g_debug ("part_new_auth_end_callback"); if (! gained_privilege) { /* cancel the whole operation */ @@ -810,13 +803,13 @@ do_format (FormatDialogPrivate *priv) data->presentable = g_object_ref (priv->presentable); toplevel_presentable = gdu_presentable_get_toplevel (data->presentable); if (toplevel_presentable == NULL) { - g_warning ("%s: no toplevel presentable", __FUNCTION__); + g_warning ("%s: no toplevel presentable", __FUNCTION__); } toplevel_device = gdu_presentable_get_device (toplevel_presentable); if (toplevel_device == NULL) { - g_warning ("%s: no device for toplevel presentable", __FUNCTION__); - free_format_action_data (data); - goto out; + g_warning ("%s: no device for toplevel presentable", __FUNCTION__); + free_format_action_data (data); + goto out; } data->device = gdu_presentable_get_device (data->presentable); @@ -825,33 +818,33 @@ do_format (FormatDialogPrivate *priv) data->device = g_object_ref (toplevel_device); create_new_part_table = FALSE; create_new_partition = TRUE; - g_print ("Partition table exists but has no partition for the selected device.\n"); + g_debug ("Partition table exists but has no partition for the selected device."); } else if (toplevel_device != NULL && ! gdu_device_is_partition_table (toplevel_device)) { /* no partition table on the device, create partition table first. */ /* also empty (zeroed) device */ create_new_part_table = TRUE; create_new_partition = TRUE; - g_print ("Device is known but doesn't have partition table, we need to create it first.\n"); + g_debug ("Device is known but doesn't have partition table, we need to create it first."); } else if (toplevel_device != NULL && data->device != NULL && toplevel_device == data->device && device_needs_partition_table (data->device)) { /* device is toplevel, check if we need new partitions */ create_new_partition = TRUE; - g_print ("Device is known but requires partitioning, we'll create new one.\n"); + g_debug ("Device is known but requires partitioning, we'll create new one."); } if (data->device == NULL) { - g_warning ("%s: device is not supposed to be NULL", __FUNCTION__); - free_format_action_data (data); - goto out; + g_warning ("%s: device is not supposed to be NULL", __FUNCTION__); + free_format_action_data (data); + goto out; } drive_name = gdu_presentable_get_name (toplevel_presentable); data->fstype = gdu_util_fstype_combo_box_get_selected (priv->part_type_combo_box); if (data->fstype == NULL) { - g_warning ("%s: no valid filesystem type specified", __FUNCTION__); - free_format_action_data (data); - goto out; + g_warning ("%s: no valid filesystem type specified", __FUNCTION__); + free_format_action_data (data); + goto out; } data->fslabel = g_strdup (GTK_WIDGET_IS_SENSITIVE (priv->label_entry) ? gtk_entry_get_text (GTK_ENTRY (priv->label_entry)) : ""); @@ -859,10 +852,9 @@ do_format (FormatDialogPrivate *priv) data->take_ownership = FALSE; kfs = gdu_pool_get_known_filesystem_by_id (priv->pool, data->fstype); if (kfs != NULL) { - if (gdu_known_filesystem_get_supports_unix_owners (kfs) && gtk_toggle_button_get_active ( - GTK_TOGGLE_BUTTON (priv->take_ownership_of_fs_check_button))) - data->take_ownership = TRUE; - g_object_unref (kfs); + if (gdu_known_filesystem_get_supports_unix_owners (kfs) && gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->take_ownership_of_fs_check_button))) + data->take_ownership = TRUE; + g_object_unref (kfs); } primary = g_strdup (_("<b><big>Are you sure you want to create a new file system, deleting existing data?</big></b>")); @@ -897,7 +889,6 @@ do_format (FormatDialogPrivate *priv) } } - update_ui_progress (priv, data, TRUE); data->secure_erase = gdu_util_delete_confirmation_dialog (GTK_WIDGET (priv->dialog), diff --git a/src/format-window.c b/src/format-window.c index f652afb..1f227a5 100644 --- a/src/format-window.c +++ b/src/format-window.c @@ -41,21 +41,6 @@ static void set_new_presentable (FormatDialogPrivate *priv, GduPresentable *pres /* ---------------------------------------------------------------------------------------------------- */ -/* taken from palimpsest/gdu-section-partition.c */ -static gboolean -has_flag (char **flags, const char *flag) -{ - int n = 0; - while (flags != NULL && flags[n] != NULL) { - if (strcmp (flags[n], flag) == 0) - return TRUE; - n++; - } - return FALSE; -} - -/* ---------------------------------------------------------------------------------------------------- */ - /* taken from palimpsest/gdu-section-unrecognized.c */ static void type_combo_box_changed (GtkWidget *combo_box, FormatDialogPrivate *priv) @@ -63,28 +48,23 @@ type_combo_box_changed (GtkWidget *combo_box, FormatDialogPrivate *priv) char *fstype; GduKnownFilesystem *kfs; gboolean label_entry_sensitive; -// gboolean can_erase; gboolean have_owners; int max_label_len; fstype = NULL; label_entry_sensitive = FALSE; -// can_erase = FALSE; max_label_len = 0; have_owners = FALSE; fstype = gdu_util_fstype_combo_box_get_selected (combo_box); - g_print ("type_combo_box_changed: fstype = '%s'\n", fstype); if (fstype != NULL && priv->presentable) { kfs = gdu_pool_get_known_filesystem_by_id (priv->pool, fstype); if (kfs != NULL) { - g_print (" kfs ID = '%s', name = %s\n", gdu_known_filesystem_get_id (kfs), gdu_known_filesystem_get_name (kfs)); max_label_len = gdu_known_filesystem_get_max_label_len (kfs); have_owners = gdu_known_filesystem_get_supports_unix_owners (kfs); g_object_unref (kfs); } -// can_erase = TRUE; } if (max_label_len > 0) @@ -92,7 +72,6 @@ type_combo_box_changed (GtkWidget *combo_box, FormatDialogPrivate *priv) gtk_entry_set_max_length (GTK_ENTRY (priv->label_entry), max_label_len); gtk_widget_set_sensitive (priv->label_entry, label_entry_sensitive); -// polkit_gnome_action_set_sensitive (priv->erase_action, can_erase); if (have_owners) gtk_widget_show (priv->take_ownership_of_fs_check_button); @@ -144,8 +123,6 @@ update_ui_controls (FormatDialogPrivate *priv) if (priv->volume_selector) gtk_widget_set_sensitive (priv->volume_selector, ! priv->job_running); gtk_dialog_set_response_sensitive (priv->dialog, GTK_RESPONSE_OK, sensitive && gtk_combo_box_get_active (GTK_COMBO_BOX (priv->part_type_combo_box)) >= 0); -/* gtk_dialog_set_response_sensitive (priv->dialog, GTK_RESPONSE_REJECT, sensitive); - gtk_dialog_set_response_sensitive (priv->dialog, GTK_RESPONSE_CLOSE, sensitive); */ if (device != NULL) g_object_unref (device); @@ -169,12 +146,7 @@ update_ui (FormatDialogPrivate *priv) GduDevice *device = NULL; GduPresentable *toplevel_presentable = NULL; GduDevice *toplevel_device = NULL; - gboolean show_flag_boot; - gboolean show_flag_required; -// gboolean can_edit_part_label; gboolean known_fs; - const char *scheme; - char **flags; GPtrArray *details; guint n; @@ -402,13 +374,11 @@ update_ui (FormatDialogPrivate *priv) if (device) - g_print ("gdu_device_id_get_type (device) = '%s', gdu_device_partition_get_type (device) = '%s'\n", + g_debug ("gdu_device_id_get_type = '%s', gdu_device_partition_get_type = '%s'", gdu_device_id_get_type (device), gdu_device_partition_get_type (device)); - if (name) - g_free (name); - if (strsize_long) - g_free (strsize_long); + g_free (name); + g_free (strsize_long); for (n = 0; n < 4; n++) { @@ -460,54 +430,6 @@ update_ui (FormatDialogPrivate *priv) gtk_widget_show (priv->encrypted_check_button); } - - - /* TODO: is this really valid for a formatter? -- disabled */ - scheme = device ? gdu_device_partition_get_scheme (device) : NULL; -// can_edit_part_label = FALSE; - show_flag_boot = FALSE; - show_flag_required = FALSE; - -#if 0 /* -- disabled */ - if (strcmp (scheme, "mbr") == 0) { -// can_edit_part_label = TRUE; - show_flag_boot = TRUE; - } - - if (strcmp (scheme, "gpt") == 0) { -// can_edit_part_label = TRUE; - show_flag_required = TRUE; - } - - if (strcmp (scheme, "apm") == 0) { -// can_edit_part_label = TRUE; - show_flag_boot = TRUE; - } -#endif - - if (show_flag_boot) - gtk_widget_show (priv->part_flag_boot_check_button); - else - gtk_widget_hide (priv->part_flag_boot_check_button); - - if (show_flag_required) - gtk_widget_show (priv->part_flag_required_check_button); - else - gtk_widget_hide (priv->part_flag_required_check_button); - - flags = device ? gdu_device_partition_get_flags (device) : NULL; - if (! priv->job_running) { - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->part_flag_boot_check_button), - has_flag (flags, "boot")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->part_flag_required_check_button), - has_flag (flags, "required")); - } - -/* - gtk_widget_set_sensitive (priv->label_entry, can_edit_part_label); - gtk_entry_set_text (GTK_ENTRY (priv->label_entry), - gdu_device_partition_get_label (device)); -*/ /* Volume label */ if (! priv->job_running) { gtk_entry_set_text (GTK_ENTRY (priv->label_entry), device ? gdu_device_id_get_label (device) : ""); @@ -546,7 +468,6 @@ nautilus_gdu_destroy (FormatDialogPrivate *priv) gboolean standalone; g_return_if_fail (priv != NULL); -// g_print ("...destroying...\n"); standalone = priv->standalone_mode; /* disconnect our handlers, since the presentable (resp. the pool) refence counter doesn't really need to be zero */ @@ -566,7 +487,7 @@ static void presentable_removed (GduPresentable *presentable, FormatDialogPrivate *priv) { g_return_if_fail (priv != NULL); - g_warning ("Presentable removed event.\n"); + g_warning ("Presentable removed event."); if (priv->standalone_mode) { /* we want to clear the UI, selecting another presentable might lead to accident */ @@ -582,7 +503,7 @@ static void presentable_changed (GduPresentable *presentable, FormatDialogPrivate *priv) { g_return_if_fail (priv != NULL); - g_warning ("Presentable changed event.\n"); + g_warning ("Presentable changed event."); /* TODO: shall we preserve label or any other settings? */ update_ui (priv); @@ -609,14 +530,14 @@ set_new_presentable (FormatDialogPrivate *priv, GduPresentable *presentable) if (priv->presentable) { /* first of all, disconnect handlers from the old presentable */ g_signal_handlers_disconnect_matched (priv->presentable, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, priv); - g_print ("before unreffing presentable, count = %d [%p]\n", ((GObject*)priv->presentable)->ref_count, priv->presentable); +/* g_debug ("before unreffing presentable, count = %d [%p]", ((GObject*)priv->presentable)->ref_count, priv->presentable); */ g_object_unref (priv->presentable); priv->presentable = NULL; } if (presentable) { priv->presentable = g_object_ref (presentable); - g_print ("set_new_presentable: after reffing presentable, count = %d [%p]\n", ((GObject*)priv->presentable)->ref_count, priv->presentable); +/* g_debug ("set_new_presentable: after reffing presentable, count = %d [%p]", ((GObject*)priv->presentable)->ref_count, priv->presentable); */ /* catch Presentable events */ g_signal_connect (G_OBJECT (priv->presentable), "removed", @@ -633,7 +554,7 @@ pool_presentable_changed (GduPool *pool, GduPresentable *presentable, FormatDial g_return_if_fail (priv->volume_selector != NULL); if (! priv->job_running) { - g_warning ("Pool presentable changed event.\n"); + g_warning ("Pool presentable changed event."); gdu_util_presentable_combo_box_rebuild (priv->volume_selector, pool); } } @@ -668,7 +589,7 @@ cancel_operation (FormatDialogPrivate *priv) g_return_if_fail (priv->job_running == TRUE); /* TODO: check for valid device */ g_return_if_fail (priv->presentable != NULL); - g_warning ("Cancelling...\n"); + g_warning ("Cancelling..."); priv->job_cancelled = TRUE; device = gdu_presentable_get_device (priv->presentable); @@ -699,11 +620,6 @@ format_dialog_got_response (GtkDialog *dialog, if (response_id == GTK_RESPONSE_OK) { do_format (priv); } - else - if (response_id == GTK_RESPONSE_REJECT) { - /* revert changes */ - update_ui (priv); - } else { if (priv->job_running) { cancel_operation (priv); @@ -753,12 +669,10 @@ nautilus_gdu_spawn_dialog (GduPresentable *presentable, gtk_dialog_add_buttons (dialog, _("_Format"), GTK_RESPONSE_OK, -/* _("_Revert"), GTK_RESPONSE_REJECT, */ NULL); priv->close_button = gtk_dialog_add_button (dialog, GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE); gtk_dialog_set_default_response (dialog, GTK_RESPONSE_CLOSE); -// gtk_window_set_default_size (GTK_WINDOW (dialog), 300, 400); content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); gtk_container_set_border_width (GTK_CONTAINER (content_area), 10); @@ -893,20 +807,6 @@ nautilus_gdu_spawn_dialog (GduPresentable *presentable, gdu_util_fstype_combo_box_set_desc_label (combo_box, label); row++; - /* flags: used by mbr, apm */ - check_button = gtk_check_button_new_with_mnemonic (_("_Bootable")); - gtk_table_attach (GTK_TABLE (table), check_button, 1, 2, row, row +1, - GTK_FILL, GTK_EXPAND | GTK_FILL, 2, 2); - priv->part_flag_boot_check_button = check_button; - row++; - - /* flags: used by gpt */ - check_button = gtk_check_button_new_with_mnemonic (_("Required / Firm_ware")); - gtk_table_attach (GTK_TABLE (table), check_button, 1, 2, row, row +1, - GTK_FILL, GTK_EXPAND | GTK_FILL, 2, 2); - priv->part_flag_required_check_button = check_button; - row++; - /* whether to chown fs root for user */ check_button = gtk_check_button_new_with_mnemonic (_("T_ake ownership of file system")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button), TRUE); @@ -952,7 +852,6 @@ nautilus_gdu_spawn_dialog (GduPresentable *presentable, image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_WARNING, GTK_ICON_SIZE_LARGE_TOOLBAR); gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, TRUE, 0); label = gtk_label_new (_("The volume is currently mounted. Please make sure to close all open files before formatting.")); -// gtk_label_set_width_chars (GTK_LABEL (label), 50); gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0); @@ -988,8 +887,6 @@ nautilus_gdu_spawn_dialog (GduPresentable *presentable, gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0); - // gtk_dialog_set_response_sensitive (dialog, GTK_RESPONSE_OK, FALSE); - g_signal_connect (priv->dialog, "delete-event", G_CALLBACK (window_delete_event), priv); /* update sensivity and length of fs label + entry */ diff --git a/src/format-window.h b/src/format-window.h index f3c993e..92efbae 100644 --- a/src/format-window.h +++ b/src/format-window.h @@ -45,8 +45,6 @@ typedef struct { GtkWidget *no_media_warning; GtkWidget *label_entry; GtkWidget *part_type_combo_box; - GtkWidget *part_flag_boot_check_button; - GtkWidget *part_flag_required_check_button; GtkWidget *encrypted_check_button; GtkWidget *take_ownership_of_fs_check_button; GtkWidget *progress_bar; diff --git a/src/gdu-utils.c b/src/gdu-utils.c index 0d01aef..8f72144 100644 --- a/src/gdu-utils.c +++ b/src/gdu-utils.c @@ -33,8 +33,8 @@ -GduPresentable * -find_presentable_from_mount_path (char *mount_path) +static GduPresentable * +_find_presentable (char *mount_path, char *device_path) { GduPool *pool; GList *presentables, *presentables_w; @@ -42,35 +42,43 @@ find_presentable_from_mount_path (char *mount_path) GduPresentable *pres_w; GduDevice *device; const char *device_mount; + const char *device_file; GFile *file1, *file2; - g_return_val_if_fail (mount_path != NULL, NULL); - g_return_val_if_fail (strlen (mount_path) > 1, NULL); - pool = gdu_pool_new (); presentables = gdu_pool_get_presentables (pool); presentables_w = presentables; while (presentables_w != NULL) { pres_w = presentables_w->data; +#if 0 if (pres_w) g_print ("presentable '%s', ref count = %d [%p]\n", gdu_presentable_get_name (pres_w), ((GObject*)pres_w)->ref_count, pres_w); +#endif if (! presentable && pres_w) { device = gdu_presentable_get_device (pres_w); if (device) { device_mount = gdu_device_get_mount_path (device); - if (device_mount && strlen (device_mount) > 1) { -// g_print ("find_presentable_from_path: found mount '%s', matching with '%s'\n", device_mount, mount_path); + device_file = gdu_device_get_device_file (device); + + /* match mount_path */ + if (mount_path && device_mount && strlen (device_mount) > 1) { /* compare via GFile routines */ file1 = g_file_new_for_commandline_arg (mount_path); file2 = g_file_new_for_path (device_mount); - if (g_file_equal (file1, file2)) { + if (g_file_equal (file1, file2)) presentable = g_object_ref (pres_w); - g_print (" reffing presentable, count = %d [%p]\n", ((GObject*)presentable)->ref_count, presentable); - break; - } g_object_unref (file1); g_object_unref (file2); + if (presentable) + break; + } + /* match device_path */ + if (device_path && device_file && strlen (device_file) > 1) { + if (strcmp (device_file, device_path) == 0) { + presentable = g_object_ref (pres_w); + break; + } } g_object_unref (device); } @@ -82,68 +90,26 @@ find_presentable_from_mount_path (char *mount_path) g_list_free (presentables); g_object_unref (pool); - if (presentable) - g_print ("find_presentable_from_path: found presentable '%s'\n", gdu_presentable_get_name (presentable)); - else - g_print ("find_presentable_from_path: no presentable found\n"); - return presentable; } +GduPresentable * +find_presentable_from_mount_path (char *mount_path) +{ + g_return_val_if_fail (mount_path != NULL, NULL); + g_return_val_if_fail (strlen (mount_path) > 1, NULL); + return _find_presentable (mount_path, NULL); +} GduPresentable * find_presentable_from_device_path (char *device_path) { - GduPool *pool; - GList *presentables, *presentables_w; - GduPresentable *presentable = NULL; - GduPresentable *pres_w; - GduDevice *device; - const char *device_file; - g_return_val_if_fail (device_path != NULL, NULL); g_return_val_if_fail (strlen (device_path) > 1, NULL); - - pool = gdu_pool_new (); - presentables = gdu_pool_get_presentables (pool); - - presentables_w = presentables; - while (presentables_w != NULL) { - pres_w = presentables_w->data; - if (pres_w) - g_print ("presentable '%s', ref count = %d [%p]\n", gdu_presentable_get_name (pres_w), ((GObject*)pres_w)->ref_count, pres_w); - if (! presentable) { - device = gdu_presentable_get_device (pres_w); - if (device) { - device_file = gdu_device_get_device_file (device); - if (device_file && strlen (device_file) > 1) { - g_print ("find_presentable_from_device_path: found device '%s', matching with '%s'\n", device_file, device_path); - if (strcmp (device_file, device_path) == 0) { - presentable = g_object_ref (pres_w); - g_print (" reffing presentable, count = %d [%p]\n", ((GObject*)presentable)->ref_count, presentable); - break; - } - } - g_object_unref (device); - } - } - presentables_w = g_list_next (presentables_w); - } - - g_list_foreach (presentables, (GFunc) g_object_unref, NULL); - g_list_free (presentables); - g_object_unref (pool); - - if (presentable) - g_print ("find_presentable_from_device_path: found presentable '%s'\n", gdu_presentable_get_name (presentable)); - else - g_print ("find_presentable_from_device_path: no presentable found\n"); - - return presentable; + return _find_presentable (NULL, device_path); } - /* ---------------------------------------------------------------------------------------------------- */ /* Volume selector widget */ @@ -202,8 +168,7 @@ gdu_util_presentable_combo_box_add_item (GtkListStore *store, GduPresentable *pr g_object_unref (toplevel_presentable); if (toplevel_device) g_object_unref (toplevel_device); - if (name) - g_free (name); + g_free (name); if (pixbuf) g_object_unref (pixbuf); } @@ -240,24 +205,15 @@ gdu_util_presentable_combo_box_create_store (GduPool *pool) if (toplevel_presentable) toplevel_device = gdu_presentable_get_device (toplevel_presentable); /* First eliminate all non-toplevel presentables */ - if (/* device != NULL && */ - toplevel_device != NULL && + if (toplevel_device != NULL && toplevel_presentable == presentable && - gdu_device_is_removable (toplevel_device) - /* && ! gdu_device_is_system_internal (device) */) { - + gdu_device_is_removable (toplevel_device)) + { /* determine parent presentables (in case of toplevel drive) */ enclosed_presentables = gdu_pool_get_enclosed_presentables (pool, presentable); g_print ("presentable %s [%s], enclosed_presentables = %d, toplevel_presentable = %p vs. %p, gdu_device_is_partition_table = %d, gdu_device_is_optical_disc = %d, gdu_device_drive_get_media = '%s'\n", gdu_presentable_get_name (presentable), device ? gdu_device_get_device_file (device) : "no device.", g_list_length (enclosed_presentables), toplevel_presentable, presentable, gdu_device_is_partition_table (device), gdu_device_is_optical_disc (device), gdu_device_drive_get_media (device)); -#if 0 - char **media_compat = gdu_device_drive_get_media_compatibility (device); - for (; *media_compat; media_compat++) { - g_print (" compat '%s'\n", *media_compat); - } -#endif - GList *enclosed_presentables_l; for (enclosed_presentables_l = enclosed_presentables; enclosed_presentables_l != NULL; enclosed_presentables_l = enclosed_presentables_l->next) { @@ -270,12 +226,6 @@ gdu_util_presentable_combo_box_create_store (GduPool *pool) g_object_unref (device_e); } -#if 0 - if (/* toplevel_device != NULL && gdu_device_is_removable (toplevel_device) && */ g_list_length (enclosed_presentables) == 0) { - gdu_util_presentable_combo_box_add_item (store, presentable); - } -#endif - g_list_foreach (enclosed_presentables, (GFunc) g_object_unref, NULL); g_list_free (enclosed_presentables); } @@ -337,15 +287,13 @@ gdu_util_presentable_combo_box_text_renderer_func (GtkCellLayout *cell_layout, display_name = g_strdup_printf ("<span font_desc='18'><b> %s</b></span>", name); } - g_object_set (cell, "sensitive", sensitive, /* "visible", visible, */ NULL); + g_object_set (cell, "sensitive", sensitive, NULL); if (GTK_IS_CELL_RENDERER_TEXT (cell)) g_object_set (cell, "markup", display_name, NULL); g_free (display_name); - if (name) - g_free (name); - if (device_path) - g_free (device_path); + g_free (name); + g_free (device_path); gtk_tree_path_free (path); } diff --git a/src/gnome-disk-utility-format.c b/src/gnome-disk-utility-format.c index b5b807c..5ce8373 100644 --- a/src/gnome-disk-utility-format.c +++ b/src/gnome-disk-utility-format.c @@ -89,7 +89,6 @@ main (int argc, char *argv[]) g_set_prgname ("gnome-disk-utility-format"); context = g_option_context_new ("[device_file] - simple disk formatter"); -// g_option_context_set_summary (context, _("Copyright (c) 2009 Tomas Bzatek <tbzatek@redhat.com>")); g_option_context_add_main_entries (context, entries, NULL); g_option_context_add_group (context, gtk_get_option_group (TRUE)); diff --git a/src/nautilus-gdu.c b/src/nautilus-gdu.c index 39c396b..a7a06cd 100644 --- a/src/nautilus-gdu.c +++ b/src/nautilus-gdu.c @@ -111,6 +111,7 @@ find_presentable_from_file (NautilusFileInfo *nautilus_file) } } + g_print ("nautilus-gdu: matching device_file = '%s', mount_path = '%s'\n", device_file, mount_path); if (device_file) presentable = find_presentable_from_device_path (device_file); @@ -118,12 +119,15 @@ find_presentable_from_file (NautilusFileInfo *nautilus_file) if (mount_path) presentable = find_presentable_from_mount_path (mount_path); - if (device_file) - g_free (device_file); - if (mount_path) - g_free (mount_path); + g_free (device_file); + g_free (mount_path); g_object_unref (file); + if (presentable) + g_print ("nautilus-gdu: find_presentable_from_file: found presentable '%s'\n", gdu_presentable_get_name (presentable)); + else + g_print ("nautilus-gdu: find_presentable_from_file: no presentable found\n"); + return presentable; } |