diff options
-rw-r--r-- | drivemount/drive-button.c | 698 | ||||
-rw-r--r-- | drivemount/drive-button.h | 4 | ||||
-rw-r--r-- | drivemount/drive-list.c | 384 | ||||
-rw-r--r-- | drivemount/drive-list.h | 6 | ||||
-rw-r--r-- | drivemount/drivemount.c | 203 |
5 files changed, 653 insertions, 642 deletions
diff --git a/drivemount/drive-button.c b/drivemount/drive-button.c index 59d8c86d..f64f38c4 100644 --- a/drivemount/drive-button.c +++ b/drivemount/drive-button.c @@ -41,12 +41,12 @@ enum { }; /* type registration boilerplate code */ -G_DEFINE_TYPE(DriveButton, drive_button, GTK_TYPE_BUTTON) +G_DEFINE_TYPE (DriveButton, drive_button, GTK_TYPE_BUTTON) static void drive_button_set_volume (DriveButton *self, - GVolume *volume); + GVolume *volume); static void drive_button_set_mount (DriveButton *self, - GMount *mount); + GMount *mount); static void drive_button_reset_popup (DriveButton *self); static void drive_button_ensure_popup (DriveButton *self); @@ -55,18 +55,18 @@ static void drive_button_dispose (GObject *object); static void drive_button_unrealize (GtkWidget *widget); #endif /* 0 */ static gboolean drive_button_button_press (GtkWidget *widget, - GdkEventButton *event); + GdkEventButton *event); static gboolean drive_button_key_press (GtkWidget *widget, - GdkEventKey *event); + GdkEventKey *event); static void drive_button_theme_change (GtkIconTheme *icon_theme, - gpointer data); + gpointer data); static void drive_button_class_init (DriveButtonClass *class) { - G_OBJECT_CLASS(class)->dispose = drive_button_dispose; - GTK_WIDGET_CLASS(class)->button_press_event = drive_button_button_press; - GTK_WIDGET_CLASS(class)->key_press_event = drive_button_key_press; + G_OBJECT_CLASS (class)->dispose = drive_button_dispose; + GTK_WIDGET_CLASS (class)->button_press_event = drive_button_button_press; + GTK_WIDGET_CLASS (class)->key_press_event = drive_button_key_press; GtkCssProvider *provider; @@ -80,7 +80,7 @@ drive_button_class_init (DriveButtonClass *class) "}", -1, NULL); - gtk_style_context_add_provider_for_screen (gdk_screen_get_default(), + gtk_style_context_add_provider_for_screen (gdk_screen_get_default (), GTK_STYLE_PROVIDER (provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); g_object_unref (provider); @@ -93,7 +93,7 @@ drive_button_init (DriveButton *self) image = gtk_image_new (); gtk_container_add (GTK_CONTAINER (self), image); - gtk_widget_show(image); + gtk_widget_show (image); self->volume = NULL; self->mount = NULL; @@ -144,39 +144,39 @@ drive_button_dispose (GObject *object) drive_button_set_volume (self, NULL); if (self->update_tag) - g_source_remove (self->update_tag); + g_source_remove (self->update_tag); self->update_tag = 0; drive_button_reset_popup (self); if (G_OBJECT_CLASS (drive_button_parent_class)->dispose) - (* G_OBJECT_CLASS (drive_button_parent_class)->dispose) (object); + (* G_OBJECT_CLASS (drive_button_parent_class)->dispose) (object); } static gboolean drive_button_button_press (GtkWidget *widget, - GdkEventButton *event) + GdkEventButton *event) { DriveButton *self = DRIVE_BUTTON (widget); /* don't consume non-button1 presses */ if (event->button == 1) { - drive_button_ensure_popup (self); - if (self->popup_menu) { - gtk_menu_popup_at_widget (GTK_MENU (self->popup_menu), - widget, - GDK_GRAVITY_SOUTH_WEST, - GDK_GRAVITY_NORTH_WEST, - (const GdkEvent*) event); - } - return TRUE; + drive_button_ensure_popup (self); + if (self->popup_menu) { + gtk_menu_popup_at_widget (GTK_MENU (self->popup_menu), + widget, + GDK_GRAVITY_SOUTH_WEST, + GDK_GRAVITY_NORTH_WEST, + (const GdkEvent*) event); + } + return TRUE; } return FALSE; } static gboolean drive_button_key_press (GtkWidget *widget, - GdkEventKey *event) + GdkEventKey *event) { DriveButton *self = DRIVE_BUTTON (widget); @@ -185,61 +185,64 @@ drive_button_key_press (GtkWidget *widget, case GDK_KEY_space: case GDK_KEY_KP_Enter: case GDK_KEY_Return: - drive_button_ensure_popup (self); - if (self->popup_menu) { - gtk_menu_popup_at_widget (GTK_MENU (self->popup_menu), - widget, - GDK_GRAVITY_SOUTH_WEST, - GDK_GRAVITY_NORTH_WEST, - (const GdkEvent*) event); - } - return TRUE; + drive_button_ensure_popup (self); + if (self->popup_menu) { + gtk_menu_popup_at_widget (GTK_MENU (self->popup_menu), + widget, + GDK_GRAVITY_SOUTH_WEST, + GDK_GRAVITY_NORTH_WEST, + (const GdkEvent*) event); + } + return TRUE; } return FALSE; } static void -drive_button_theme_change (GtkIconTheme *icon_theme, gpointer data) +drive_button_theme_change (GtkIconTheme *icon_theme, + gpointer data) { drive_button_queue_update (data); } static void -drive_button_set_volume (DriveButton *self, GVolume *volume) +drive_button_set_volume (DriveButton *self, + GVolume *volume) { g_return_if_fail (DRIVE_IS_BUTTON (self)); if (self->volume) { - g_object_unref (self->volume); + g_object_unref (self->volume); } self->volume = NULL; if (self->mount) { - g_object_unref (self->mount); + g_object_unref (self->mount); } self->mount = NULL; if (volume) { - self->volume = g_object_ref (volume); + self->volume = g_object_ref (volume); } drive_button_queue_update (self); } static void -drive_button_set_mount (DriveButton *self, GMount *mount) +drive_button_set_mount (DriveButton *self, + GMount *mount) { g_return_if_fail (DRIVE_IS_BUTTON (self)); if (self->volume) { - g_object_unref (self->volume); + g_object_unref (self->volume); } self->volume = NULL; if (self->mount) { - g_object_unref (self->mount); + g_object_unref (self->mount); } self->mount = NULL; if (mount) { - self->mount = g_object_ref (mount); + self->mount = g_object_ref (mount); } drive_button_queue_update (self); } @@ -418,64 +421,66 @@ void drive_button_queue_update (DriveButton *self) { if (!self->update_tag) { - self->update_tag = g_idle_add (drive_button_update, self); + self->update_tag = g_idle_add (drive_button_update, self); } } void -drive_button_set_size (DriveButton *self, int icon_size) +drive_button_set_size (DriveButton *self, + int icon_size) { g_return_if_fail (DRIVE_IS_BUTTON (self)); if (self->icon_size != icon_size) { - self->icon_size = icon_size; - drive_button_queue_update (self); + self->icon_size = icon_size; + drive_button_queue_update (self); } } void -drive_button_redraw (gpointer key, gpointer value, gpointer user_data) +drive_button_redraw (gpointer key, + gpointer value, + gpointer user_data) { DriveButton *button = value; drive_button_queue_update (button); } int -drive_button_compare (DriveButton *button, DriveButton *other_button) +drive_button_compare (DriveButton *button, + DriveButton *other_button) { /* sort drives before driveless volumes volumes */ if (button->volume) { - if (other_button->volume) - { - int cmp; - gchar *str1, *str2; - - str1 = g_volume_get_name (button->volume); - str2 = g_volume_get_name (other_button->volume); - cmp = g_utf8_collate (str1, str2); - g_free (str2); - g_free (str1); - - return cmp; - } else { - return -1; - } + if (other_button->volume) { + int cmp; + gchar *str1, *str2; + + str1 = g_volume_get_name (button->volume); + str2 = g_volume_get_name (other_button->volume); + cmp = g_utf8_collate (str1, str2); + g_free (str2); + g_free (str1); + + return cmp; + } else { + return -1; + } } else { - if (other_button->volume) - { - return 1; - } else { - int cmp; - gchar *str1, *str2; - - str1 = g_mount_get_name (button->mount); - str2 = g_mount_get_name (other_button->mount); - cmp = g_utf8_collate (str1, str2); - g_free (str2); - g_free (str1); - - return cmp; - } + if (other_button->volume) { + return 1; + } else { + int cmp; + gchar *str1, *str2; + + str1 = g_mount_get_name (button->mount); + str2 = g_mount_get_name (other_button->mount); + cmp = g_utf8_collate (str1, str2); + g_free (str2); + g_free (str1); + + return cmp; + } } } @@ -483,7 +488,7 @@ static void drive_button_reset_popup (DriveButton *self) { if (self->popup_menu) - gtk_widget_destroy (GTK_WIDGET (self->popup_menu)); + gtk_widget_destroy (GTK_WIDGET (self->popup_menu)); self->popup_menu = NULL; } @@ -504,42 +509,45 @@ escape_underscores (const char *str) /* count up how many underscores are in the string */ count = 0; for (i = 0; str[i] != '\0'; i++) { - if (str[i] == '_') - count++; + if (str[i] == '_') + count++; } /* copy to new string, doubling up underscores */ new_str = g_new (char, i + count + 1); for (i = j = 0; str[i] != '\0'; i++, j++) { - new_str[j] = str[i]; - if (str[i] == '_') - new_str[++j] = '_'; + new_str[j] = str[i]; + if (str[i] == '_') + new_str[++j] = '_'; } new_str[j] = '\0'; return new_str; } static GtkWidget * -create_menu_item (DriveButton *self, const gchar *icon_name, - const gchar *label, GCallback callback, - gboolean sensitive) +create_menu_item (DriveButton *self, + const gchar *icon_name, + const gchar *label, + GCallback callback, + gboolean sensitive) { GtkWidget *item, *image; item = gtk_image_menu_item_new_with_mnemonic (label); if (icon_name) { - image = gtk_image_new_from_icon_name (icon_name, GTK_ICON_SIZE_MENU); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); - gtk_widget_show (image); + image = gtk_image_new_from_icon_name (icon_name, GTK_ICON_SIZE_MENU); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); + gtk_widget_show (image); } if (callback) - g_signal_connect_object (item, "activate", callback, self, - G_CONNECT_SWAPPED); + g_signal_connect_object (item, "activate", callback, self, + G_CONNECT_SWAPPED); gtk_widget_set_sensitive (item, sensitive); gtk_widget_show (item); return item; } static void -open_drive (DriveButton *self, GtkWidget *item) +open_drive (DriveButton *self, + GtkWidget *item) { GdkScreen *screen; GtkWidget *dialog; @@ -550,54 +558,54 @@ open_drive (DriveButton *self, GtkWidget *item) GAppInfo *app_info; if (self->volume) { - GMount *mount; + GMount *mount; - mount = g_volume_get_mount (self->volume); - if (mount) { - file = g_mount_get_root (mount); - g_object_unref(mount); - } + mount = g_volume_get_mount (self->volume); + if (mount) { + file = g_mount_get_root (mount); + g_object_unref (mount); + } } else if (self->mount) { - file = g_mount_get_root (self->mount); + file = g_mount_get_root (self->mount); } else - g_return_if_reached(); + g_return_if_reached (); - app_info = g_app_info_get_default_for_type("inode/directory", FALSE); + app_info = g_app_info_get_default_for_type ("inode/directory", FALSE); if (!app_info) app_info = G_APP_INFO (g_desktop_app_info_new ("caja.desktop")); if (app_info) { - GdkDisplay *display = gtk_widget_get_display (item); - launch_context = gdk_display_get_app_launch_context (display); - screen = gtk_widget_get_screen (GTK_WIDGET (self)); - gdk_app_launch_context_set_screen (launch_context, screen); - files = g_list_prepend (files, file); - g_app_info_launch (app_info, - files, - G_APP_LAUNCH_CONTEXT (launch_context), - &error); - - g_object_unref (launch_context); - g_list_free (files); + GdkDisplay *display = gtk_widget_get_display (item); + launch_context = gdk_display_get_app_launch_context (display); + screen = gtk_widget_get_screen (GTK_WIDGET (self)); + gdk_app_launch_context_set_screen (launch_context, screen); + files = g_list_prepend (files, file); + g_app_info_launch (app_info, + files, + G_APP_LAUNCH_CONTEXT (launch_context), + &error); + + g_object_unref (launch_context); + g_list_free (files); } if (!app_info || error) { - dialog = gtk_message_dialog_new (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (self))), - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_ERROR, - GTK_BUTTONS_OK, - _("Cannot execute Caja")); - if (error) - gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), "%s", error->message); - else - gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), "Could not find Caja"); - g_signal_connect (dialog, "response", - G_CALLBACK (gtk_widget_destroy), NULL); - gtk_widget_show (dialog); - g_error_free (error); + dialog = gtk_message_dialog_new (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (self))), + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_ERROR, + GTK_BUTTONS_OK, + _("Cannot execute Caja")); + if (error) + gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), "%s", error->message); + else + gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), "Could not find Caja"); + g_signal_connect (dialog, "response", + G_CALLBACK (gtk_widget_destroy), NULL); + gtk_widget_show (dialog); + g_error_free (error); } - g_object_unref(file); + g_object_unref (file); } /* copied from mate-volume-manager/src/manager.c maybe there is a better way than @@ -608,52 +616,54 @@ open_drive (DriveButton *self, GtkWidget *item) * and %m with the given path */ static void -gvm_run_command (const char *device, const char *command, const char *path) -{ - char *argv[4]; - gchar *new_command; - GError *error = NULL; - GString *exec = g_string_new (NULL); - char *p, *q; - - /* perform s/%d/device/ and s/%m/path/ */ - new_command = g_strdup (command); - q = new_command; - p = new_command; - while ((p = strchr (p, '%')) != NULL) { - if (*(p + 1) == 'd') { - *p = '\0'; - g_string_append (exec, q); - g_string_append (exec, device); - q = p + 2; - p = p + 2; - } else if (*(p + 1) == 'm') { - *p = '\0'; - g_string_append (exec, q); - g_string_append (exec, path); - q = p + 2; - p = p + 2; - } else { - /* Ignore anything else. */ - p++; - } - } - g_string_append (exec, q); - - argv[0] = "/bin/sh"; - argv[1] = "-c"; - argv[2] = exec->str; - argv[3] = NULL; - - g_spawn_async (g_get_home_dir (), argv, NULL, 0, NULL, NULL, - NULL, &error); - if (error) { - g_warning ("failed to exec %s: %s\n", exec->str, error->message); - g_error_free (error); - } - - g_string_free (exec, TRUE); - g_free (new_command); +gvm_run_command (const char *device, + const char *command, + const char *path) +{ + char *argv[4]; + gchar *new_command; + GError *error = NULL; + GString *exec = g_string_new (NULL); + char *p, *q; + + /* perform s/%d/device/ and s/%m/path/ */ + new_command = g_strdup (command); + q = new_command; + p = new_command; + while ((p = strchr (p, '%')) != NULL) { + if (*(p + 1) == 'd') { + *p = '\0'; + g_string_append (exec, q); + g_string_append (exec, device); + q = p + 2; + p = p + 2; + } else if (*(p + 1) == 'm') { + *p = '\0'; + g_string_append (exec, q); + g_string_append (exec, path); + q = p + 2; + p = p + 2; + } else { + /* Ignore anything else. */ + p++; + } + } + g_string_append (exec, q); + + argv[0] = "/bin/sh"; + argv[1] = "-c"; + argv[2] = exec->str; + argv[3] = NULL; + + g_spawn_async (g_get_home_dir (), argv, NULL, 0, NULL, NULL, + NULL, &error); + if (error) { + g_warning ("failed to exec %s: %s\n", exec->str, error->message); + g_error_free (error); + } + + g_string_free (exec, TRUE); + g_free (new_command); } /* @@ -665,208 +675,220 @@ gvm_run_command (const char *device, const char *command, const char *path) * gvm_check_dvd_only) */ static gboolean -gvm_check_dvd_only (const char *udi, const char *device, const char *mount_point) -{ - char *path; - gboolean retval; - - path = g_build_path (G_DIR_SEPARATOR_S, mount_point, "video_ts", NULL); - retval = g_file_test (path, G_FILE_TEST_IS_DIR); - g_free (path); - - /* try the other name, if needed */ - if (retval == FALSE) { - path = g_build_path (G_DIR_SEPARATOR_S, mount_point, - "VIDEO_TS", NULL); - retval = g_file_test (path, G_FILE_TEST_IS_DIR); - g_free (path); - } +gvm_check_dvd_only (const char *udi, + const char *device, + const char *mount_point) +{ + char *path; + gboolean retval; + + path = g_build_path (G_DIR_SEPARATOR_S, mount_point, "video_ts", NULL); + retval = g_file_test (path, G_FILE_TEST_IS_DIR); + g_free (path); + + /* try the other name, if needed */ + if (retval == FALSE) { + path = g_build_path (G_DIR_SEPARATOR_S, mount_point, + "VIDEO_TS", NULL); + retval = g_file_test (path, G_FILE_TEST_IS_DIR); + g_free (path); + } - return retval; + return retval; } /* END copied from mate-volume-manager/src/manager.c */ static gboolean check_dvd_video (DriveButton *self) { - GFile *file; - char *udi, *device_path, *mount_path; - gboolean result; - GMount *mount; + GFile *file; + char *udi, *device_path, *mount_path; + gboolean result; + GMount *mount; - if (!self->volume) - return FALSE; + if (!self->volume) + return FALSE; - mount = g_volume_get_mount (self->volume); - if (!mount) - return FALSE; + mount = g_volume_get_mount (self->volume); + if (!mount) + return FALSE; - file = g_mount_get_root (mount); - g_object_unref (mount); + file = g_mount_get_root (mount); + g_object_unref (mount); - if (!file) - return FALSE; + if (!file) + return FALSE; - mount_path = g_file_get_path (file); + mount_path = g_file_get_path (file); - g_object_unref (file); + g_object_unref (file); - device_path = g_volume_get_identifier (self->volume, - G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE); - udi = g_volume_get_identifier (self->volume, - G_VOLUME_IDENTIFIER_KIND_HAL_UDI); + device_path = g_volume_get_identifier (self->volume, + G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE); + udi = g_volume_get_identifier (self->volume, + G_VOLUME_IDENTIFIER_KIND_HAL_UDI); - result = gvm_check_dvd_only (udi, device_path, mount_path); + result = gvm_check_dvd_only (udi, device_path, mount_path); - g_free (device_path); - g_free (udi); - g_free (mount_path); + g_free (device_path); + g_free (udi); + g_free (mount_path); - return result; + return result; } static gboolean check_audio_cd (DriveButton *self) { - GFile *file; - char *activation_uri; - GMount *mount; + GFile *file; + char *activation_uri; + GMount *mount; - if (!self->volume) - return FALSE; + if (!self->volume) + return FALSE; - mount = g_volume_get_mount (self->volume); - if (!mount) - return FALSE; + mount = g_volume_get_mount (self->volume); + if (!mount) + return FALSE; - file = g_mount_get_root (mount); - g_object_unref (mount); + file = g_mount_get_root (mount); + g_object_unref (mount); - if (!file) - return FALSE; + if (!file) + return FALSE; - activation_uri = g_file_get_uri (file); + activation_uri = g_file_get_uri (file); - g_object_unref (file); + g_object_unref (file); - /* we have an audioCD if the activation URI starts by 'cdda://' */ - gboolean result = (strncmp ("cdda://", activation_uri, 7) == 0); - g_free (activation_uri); - return result; + /* we have an audioCD if the activation URI starts by 'cdda://' */ + gboolean result = (strncmp ("cdda://", activation_uri, 7) == 0); + g_free (activation_uri); + return result; } static void -run_command (DriveButton *self, const char *command) +run_command (DriveButton *self, + const char *command) { - GFile *file; - char *mount_path, *device_path; - GMount *mount; + GFile *file; + char *mount_path, *device_path; + GMount *mount; - if (!self->volume) - return; + if (!self->volume) + return; - mount = g_volume_get_mount (self->volume); - if (!mount) - return; + mount = g_volume_get_mount (self->volume); + if (!mount) + return; - file = g_mount_get_root (mount); - g_object_unref (mount); + file = g_mount_get_root (mount); + g_object_unref (mount); - g_assert (file); + g_assert (file); - mount_path = g_file_get_path (file); + mount_path = g_file_get_path (file); - g_object_unref (file); + g_object_unref (file); - device_path = g_volume_get_identifier (self->volume, - G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE); + device_path = g_volume_get_identifier (self->volume, + G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE); - gvm_run_command (device_path, command, mount_path); + gvm_run_command (device_path, command, mount_path); - g_free (mount_path); - g_free (device_path); + g_free (mount_path); + g_free (device_path); } -static void dummy_async_ready_callback(GObject *source_object, GAsyncResult *res, gpointer user_data) { - /* do nothing */ +static void dummy_async_ready_callback (GObject *source_object, + GAsyncResult *res, + gpointer user_data) +{ + /* do nothing */ } static void -mount_drive (DriveButton *self, GtkWidget *item) +mount_drive (DriveButton *self, + GtkWidget *item) { if (self->volume) { GMountOperation *mount_op = gtk_mount_operation_new (NULL); - g_volume_mount (self->volume, G_MOUNT_MOUNT_NONE, - mount_op, NULL, dummy_async_ready_callback, NULL); + g_volume_mount (self->volume, G_MOUNT_MOUNT_NONE, + mount_op, NULL, dummy_async_ready_callback, NULL); g_object_unref (mount_op); } else { - g_return_if_reached(); + g_return_if_reached (); } } static void -unmount_drive (DriveButton *self, GtkWidget *item) +unmount_drive (DriveButton *self, + GtkWidget *item) { if (self->volume) { - GMount *mount; - - mount = g_volume_get_mount (self->volume); - if (mount) - { - g_mount_unmount_with_operation (mount, G_MOUNT_UNMOUNT_NONE, - NULL, NULL, dummy_async_ready_callback, NULL); - g_object_unref (mount); - } + GMount *mount; + + mount = g_volume_get_mount (self->volume); + if (mount) { + g_mount_unmount_with_operation (mount, G_MOUNT_UNMOUNT_NONE, + NULL, NULL, dummy_async_ready_callback, NULL); + g_object_unref (mount); + } } else if (self->mount) { - g_mount_unmount_with_operation (self->mount, G_MOUNT_UNMOUNT_NONE, - NULL, NULL, dummy_async_ready_callback, NULL); + g_mount_unmount_with_operation (self->mount, G_MOUNT_UNMOUNT_NONE, + NULL, NULL, dummy_async_ready_callback, NULL); } else { - g_return_if_reached(); + g_return_if_reached (); } } -static void eject_finish (DriveButton *self, GAsyncResult *res, - gpointer user_data) +static void eject_finish (DriveButton *self, + GAsyncResult *res, + gpointer user_data) { /* Do nothing. We shouldn't need this according to the GIO * docs, but the applet crashes without it using glib 2.18.0 */ } static void -eject_drive (DriveButton *self, GtkWidget *item) +eject_drive (DriveButton *self, + GtkWidget *item) { if (self->volume) { - g_volume_eject_with_operation (self->volume, G_MOUNT_UNMOUNT_NONE, - NULL, NULL, - (GAsyncReadyCallback) eject_finish, - NULL); + g_volume_eject_with_operation (self->volume, G_MOUNT_UNMOUNT_NONE, + NULL, NULL, + (GAsyncReadyCallback) eject_finish, + NULL); } else if (self->mount) { - g_mount_eject_with_operation (self->mount, G_MOUNT_UNMOUNT_NONE, - NULL, NULL, - (GAsyncReadyCallback) eject_finish, - NULL); + g_mount_eject_with_operation (self->mount, G_MOUNT_UNMOUNT_NONE, + NULL, NULL, + (GAsyncReadyCallback) eject_finish, + NULL); } else { - g_return_if_reached(); + g_return_if_reached (); } } static void -play_autoplay_media (DriveButton *self, const char *dflt) +play_autoplay_media (DriveButton *self, + const char *dflt) { - run_command (self, dflt); + run_command (self, dflt); } static void -play_dvd (DriveButton *self, GtkWidget *item) +play_dvd (DriveButton *self, + GtkWidget *item) { - /* FIXME add an option to set this */ - play_autoplay_media (self, "totem %d"); + /* FIXME add an option to set this */ + play_autoplay_media (self, "totem %d"); } static void -play_cda (DriveButton *self, GtkWidget *item) +play_cda (DriveButton *self, + GtkWidget *item) { - /* FIXME add an option to set this */ - play_autoplay_media (self, "sound-juicer -d %d"); + /* FIXME add an option to set this */ + play_autoplay_media (self, "sound-juicer -d %d"); } static void @@ -881,24 +903,24 @@ drive_button_ensure_popup (DriveButton *self) mounted = FALSE; if (self->volume) { - GMount *mount = NULL; + GMount *mount = NULL; - display_name = g_volume_get_name (self->volume); - ejectable = g_volume_can_eject (self->volume); + display_name = g_volume_get_name (self->volume); + ejectable = g_volume_can_eject (self->volume); - mount = g_volume_get_mount (self->volume); - if (mount) { - mounted = TRUE; - g_object_unref (mount); - } + mount = g_volume_get_mount (self->volume); + if (mount) { + mounted = TRUE; + g_object_unref (mount); + } } else { - if (!G_IS_MOUNT(self->volume)) - return; - else { - display_name = g_mount_get_name (self->mount); - ejectable = g_mount_can_eject (self->mount); - mounted = TRUE; - } + if (!G_IS_MOUNT (self->volume)) + return; + else { + display_name = g_mount_get_name (self->mount); + ejectable = g_mount_can_eject (self->mount); + mounted = TRUE; + } } self->popup_menu = gtk_menu_new (); @@ -909,52 +931,52 @@ drive_button_ensure_popup (DriveButton *self) display_name = tmp; if (check_dvd_video (self)) { - item = create_menu_item (self, "media-playback-start", - _("_Play DVD"), G_CALLBACK (play_dvd), - TRUE); + item = create_menu_item (self, "media-playback-start", + _("_Play DVD"), G_CALLBACK (play_dvd), + TRUE); } else if (check_audio_cd (self)) { - item = create_menu_item (self, "media-playback-start", - _("_Play CD"), G_CALLBACK (play_cda), - TRUE); + item = create_menu_item (self, "media-playback-start", + _("_Play CD"), G_CALLBACK (play_cda), + TRUE); } else { - label = g_strdup_printf (_("_Open %s"), display_name); - item = create_menu_item (self, "document-open", label, - G_CALLBACK (open_drive), mounted); - g_free (label); + label = g_strdup_printf (_("_Open %s"), display_name); + item = create_menu_item (self, "document-open", label, + G_CALLBACK (open_drive), mounted); + g_free (label); } gtk_container_add (GTK_CONTAINER (self->popup_menu), item); if (mounted) { label = g_strdup_printf (_("Un_mount %s"), display_name); item = create_menu_item (self, NULL, label, - G_CALLBACK (unmount_drive), TRUE); + G_CALLBACK (unmount_drive), TRUE); g_free (label); gtk_container_add (GTK_CONTAINER (self->popup_menu), item); } else { - label = g_strdup_printf (_("_Mount %s"), display_name); - item = create_menu_item (self, NULL, label, - G_CALLBACK (mount_drive), TRUE); - g_free (label); - gtk_container_add (GTK_CONTAINER (self->popup_menu), item); + label = g_strdup_printf (_("_Mount %s"), display_name); + item = create_menu_item (self, NULL, label, + G_CALLBACK (mount_drive), TRUE); + g_free (label); + gtk_container_add (GTK_CONTAINER (self->popup_menu), item); } if (ejectable) { - label = g_strdup_printf (_("_Eject %s"), display_name); - item = create_menu_item (self, "media-eject", label, - G_CALLBACK (eject_drive), TRUE); - g_free (label); - gtk_container_add (GTK_CONTAINER (self->popup_menu), item); + label = g_strdup_printf (_("_Eject %s"), display_name); + item = create_menu_item (self, "media-eject", label, + G_CALLBACK (eject_drive), TRUE); + g_free (label); + gtk_container_add (GTK_CONTAINER (self->popup_menu), item); } - /*Set up custom theme and transparency support */ - GtkWidget *toplevel = gtk_widget_get_toplevel (self->popup_menu); - /* Fix any failures of compiz/other wm's to communicate with gtk for transparency */ - GdkScreen *screen2 = gtk_widget_get_screen(GTK_WIDGET(toplevel)); - GdkVisual *visual = gdk_screen_get_rgba_visual(screen2); - gtk_widget_set_visual(GTK_WIDGET(toplevel), visual); - /*set menu and it's toplevel window to follow panel theme */ - GtkStyleContext *context; - context = gtk_widget_get_style_context (GTK_WIDGET(toplevel)); - gtk_style_context_add_class(context,"gnome-panel-menu-bar"); - gtk_style_context_add_class(context,"mate-panel-menu-bar"); + /*Set up custom theme and transparency support */ + GtkWidget *toplevel = gtk_widget_get_toplevel (self->popup_menu); + /* Fix any failures of compiz/other wm's to communicate with gtk for transparency */ + GdkScreen *screen2 = gtk_widget_get_screen (GTK_WIDGET (toplevel)); + GdkVisual *visual = gdk_screen_get_rgba_visual (screen2); + gtk_widget_set_visual (GTK_WIDGET (toplevel), visual); + /*set menu and it's toplevel window to follow panel theme */ + GtkStyleContext *context; + context = gtk_widget_get_style_context (GTK_WIDGET (toplevel)); + gtk_style_context_add_class (context,"gnome-panel-menu-bar"); + gtk_style_context_add_class (context,"mate-panel-menu-bar"); } diff --git a/drivemount/drive-button.h b/drivemount/drive-button.h index 010e65a0..fdab2f16 100644 --- a/drivemount/drive-button.h +++ b/drivemount/drive-button.h @@ -59,10 +59,10 @@ GtkWidget *drive_button_new (GVolume *volume); GtkWidget *drive_button_new_from_mount (GMount *mount); void drive_button_queue_update (DriveButton *button); void drive_button_set_size (DriveButton *button, - int icon_size); + int icon_size); int drive_button_compare (DriveButton *button, - DriveButton *other_button); + DriveButton *other_button); void drive_button_redraw (gpointer key, gpointer value, gpointer user_data); diff --git a/drivemount/drive-list.c b/drivemount/drive-list.c index 97e28573..b1840051 100644 --- a/drivemount/drive-list.c +++ b/drivemount/drive-list.c @@ -39,33 +39,18 @@ static void drive_list_dispose (GObject *object); static void drive_list_add (GtkContainer *container, GtkWidget *child); static void drive_list_remove (GtkContainer *container, GtkWidget *child); -static void mount_added (GVolumeMonitor *monitor, - GMount *mount, - DriveList *self); -static void mount_changed (GVolumeMonitor *monitor, - GMount *mount, - DriveList *self); -static void mount_removed (GVolumeMonitor *monitor, - GMount *mount, - DriveList *self); -static void volume_added (GVolumeMonitor *monitor, - GVolume *volume, - DriveList *self); -static void volume_changed (GVolumeMonitor *monitor, - GVolume *volume, - DriveList *self); -static void volume_removed (GVolumeMonitor *monitor, - GVolume *volume, - DriveList *self); -static void add_volume (DriveList *self, - GVolume *volume); -static void remove_volume (DriveList *self, - GVolume *volume); -static void add_mount (DriveList *self, - GMount *mount); -static void remove_mount (DriveList *self, - GMount *mount); -static void queue_relayout (DriveList *self); +static void mount_added (GVolumeMonitor *monitor, GMount *mount, DriveList *self); +static void mount_changed (GVolumeMonitor *monitor, GMount *mount, DriveList *self); +static void mount_removed (GVolumeMonitor *monitor, GMount *mount, DriveList *self); +static void volume_added (GVolumeMonitor *monitor, GVolume *volume, DriveList *self); +static void volume_changed (GVolumeMonitor *monitor, GVolume *volume, DriveList *self); +static void volume_removed (GVolumeMonitor *monitor, GVolume *volume, DriveList *self); +static void add_volume (DriveList *self, GVolume *volume); +static void remove_volume (DriveList *self, GVolume *volume); +static void add_mount (DriveList *self, GMount *mount); +static void remove_mount (DriveList *self, GMount *mount); +static void queue_relayout (DriveList *self); + static void drive_list_class_init (DriveListClass *class) { @@ -91,57 +76,54 @@ drive_list_init (DriveList *self) self->icon_size = 24; self->relief = GTK_RELIEF_NORMAL; - g_signal_connect(self->settings, - "changed::drivemount-checkmark-color", - G_CALLBACK (settings_color_changed), - self); + g_signal_connect (self->settings, + "changed::drivemount-checkmark-color", + G_CALLBACK (settings_color_changed), + self); /* listen for drive connects/disconnects, and add * currently connected drives. */ - self->count = 0; - if (!volume_monitor) - volume_monitor = g_volume_monitor_get (); + self->count = 0; + if (!volume_monitor) + volume_monitor = g_volume_monitor_get (); g_signal_connect_object (volume_monitor, "mount_added", - G_CALLBACK (mount_added), self, 0); + G_CALLBACK (mount_added), self, 0); g_signal_connect_object (volume_monitor, "mount_changed", - G_CALLBACK (mount_changed), self, 0); + G_CALLBACK (mount_changed), self, 0); g_signal_connect_object (volume_monitor, "mount_removed", - G_CALLBACK (mount_removed), self, 0); + G_CALLBACK (mount_removed), self, 0); g_signal_connect_object (volume_monitor, "volume_added", - G_CALLBACK (volume_added), self, 0); + G_CALLBACK (volume_added), self, 0); g_signal_connect_object (volume_monitor, "volume_changed", - G_CALLBACK (volume_changed), self, 0); + G_CALLBACK (volume_changed), self, 0); g_signal_connect_object (volume_monitor, "volume_removed", - G_CALLBACK (volume_removed), self, 0); - volumes = g_volume_monitor_get_volumes (volume_monitor); - for (tmp = volumes; tmp != NULL; tmp = tmp->next) - { - GVolume *volume = tmp->data; - add_volume (self, volume); - g_object_unref (volume); - self->count++; - } - g_list_free (volumes); - - mounts = g_volume_monitor_get_mounts (volume_monitor); - for (tmp = mounts; tmp != NULL; tmp = tmp->next) - { - GMount *mount = tmp->data; - add_mount (self, mount); - g_object_unref (mount); - self->count++; - } - self->dummy = drive_button_new (NULL); - gtk_button_set_relief (GTK_BUTTON (self->dummy), self->relief); - drive_button_set_size (DRIVE_BUTTON (self->dummy), self->icon_size); - - if (self->count == 0) - { - gtk_container_add (GTK_CONTAINER (self), self->dummy); - queue_relayout (self); - drive_button_queue_update (DRIVE_BUTTON (self->dummy)); - } + G_CALLBACK (volume_removed), self, 0); + volumes = g_volume_monitor_get_volumes (volume_monitor); + for (tmp = volumes; tmp != NULL; tmp = tmp->next) { + GVolume *volume = tmp->data; + add_volume (self, volume); + g_object_unref (volume); + self->count++; + } + g_list_free (volumes); + + mounts = g_volume_monitor_get_mounts (volume_monitor); + for (tmp = mounts; tmp != NULL; tmp = tmp->next) { + GMount *mount = tmp->data; + add_mount (self, mount); + g_object_unref (mount); + self->count++; + } + self->dummy = drive_button_new (NULL); + gtk_button_set_relief (GTK_BUTTON (self->dummy), self->relief); + drive_button_set_size (DRIVE_BUTTON (self->dummy), self->icon_size); + + if (self->count == 0) { + gtk_container_add (GTK_CONTAINER (self), self->dummy); + queue_relayout (self); + drive_button_queue_update (DRIVE_BUTTON (self->dummy)); + } g_list_free (mounts); } @@ -161,7 +143,7 @@ drive_list_finalize (GObject *object) g_object_unref (self->settings); if (G_OBJECT_CLASS (drive_list_parent_class)->finalize) - (* G_OBJECT_CLASS (drive_list_parent_class)->finalize) (object); + (* G_OBJECT_CLASS (drive_list_parent_class)->finalize) (object); } static void @@ -170,28 +152,29 @@ drive_list_dispose (GObject *object) DriveList *self = DRIVE_LIST (object); g_signal_handlers_disconnect_by_func (volume_monitor, - G_CALLBACK (mount_added), self); + G_CALLBACK (mount_added), self); g_signal_handlers_disconnect_by_func (volume_monitor, - G_CALLBACK (mount_changed), self); + G_CALLBACK (mount_changed), self); g_signal_handlers_disconnect_by_func (volume_monitor, - G_CALLBACK (mount_removed), self); + G_CALLBACK (mount_removed), self); g_signal_handlers_disconnect_by_func (volume_monitor, - G_CALLBACK (volume_added), self); + G_CALLBACK (volume_added), self); g_signal_handlers_disconnect_by_func (volume_monitor, - G_CALLBACK (volume_changed), self); + G_CALLBACK (volume_changed), self); g_signal_handlers_disconnect_by_func (volume_monitor, - G_CALLBACK (volume_removed), self); + G_CALLBACK (volume_removed), self); if (self->layout_tag) - g_source_remove (self->layout_tag); + g_source_remove (self->layout_tag); self->layout_tag = 0; if (G_OBJECT_CLASS (drive_list_parent_class)->dispose) - (* G_OBJECT_CLASS (drive_list_parent_class)->dispose) (object); + (* G_OBJECT_CLASS (drive_list_parent_class)->dispose) (object); } static void -drive_list_add (GtkContainer *container, GtkWidget *child) +drive_list_add (GtkContainer *container, + GtkWidget *child) { DriveList *self; DriveButton *button; @@ -200,19 +183,19 @@ drive_list_add (GtkContainer *container, GtkWidget *child) g_return_if_fail (DRIVE_IS_BUTTON (child)); if (GTK_CONTAINER_CLASS (drive_list_parent_class)->add) - (* GTK_CONTAINER_CLASS (drive_list_parent_class)->add) (container, - child); + (* GTK_CONTAINER_CLASS (drive_list_parent_class)->add) (container, child); self = DRIVE_LIST (container); button = DRIVE_BUTTON (child); if (button->volume) - g_hash_table_insert (self->volumes, button->volume, button); + g_hash_table_insert (self->volumes, button->volume, button); else - g_hash_table_insert (self->mounts, button->mount, button); + g_hash_table_insert (self->mounts, button->mount, button); } static void -drive_list_remove (GtkContainer *container, GtkWidget *child) +drive_list_remove (GtkContainer *container, + GtkWidget *child) { DriveList *self; DriveButton *button; @@ -223,177 +206,173 @@ drive_list_remove (GtkContainer *container, GtkWidget *child) self = DRIVE_LIST (container); button = DRIVE_BUTTON (child); if (button->volume) - g_hash_table_remove (self->volumes, button->volume); + g_hash_table_remove (self->volumes, button->volume); else - g_hash_table_remove (self->mounts, button->mount); + g_hash_table_remove (self->mounts, button->mount); if (GTK_CONTAINER_CLASS (drive_list_parent_class)->remove) - (* GTK_CONTAINER_CLASS (drive_list_parent_class)->remove) (container, - child); + (* GTK_CONTAINER_CLASS (drive_list_parent_class)->remove) (container, child); } static void -list_buttons (gpointer key, gpointer value, gpointer user_data) +list_buttons (gpointer key, + gpointer value, + gpointer user_data) { GtkWidget *button = value; GList **sorted_buttons = user_data; *sorted_buttons = g_list_insert_sorted (*sorted_buttons, button, - (GCompareFunc)drive_button_compare); + (GCompareFunc)drive_button_compare); } static gboolean relayout_buttons (gpointer data) { - DriveList *self = DRIVE_LIST (data); - GList *sorted_buttons = NULL, *tmp; - int i = 0; - - - self->layout_tag = 0; - if ( self->count > 0 ) - { - g_hash_table_foreach (self->volumes, list_buttons, &sorted_buttons); - g_hash_table_foreach (self->mounts, list_buttons, &sorted_buttons); - - /* position buttons in the table according to their sorted order */ - for (tmp = sorted_buttons, i = 0; tmp != NULL; tmp = tmp->next, i++) - { - GtkWidget *button = tmp->data; - - if (self->orientation == GTK_ORIENTATION_HORIZONTAL) { - gtk_container_child_set (GTK_CONTAINER (self), button, - "left-attach", i + 1, "top-attach", 0, - "width", 1, "height", 1, - NULL); - } - else - { - gtk_container_child_set (GTK_CONTAINER (self), button, - "left-attach", 0, "top-attach", i + 1, - "width", 1, "height", 1, - NULL); - } - } - } - else - { - gtk_widget_show (self->dummy); - if (self->orientation == GTK_ORIENTATION_HORIZONTAL) - { - gtk_container_child_set (GTK_CONTAINER (self), self->dummy, - "left-attach", i + 1, "top-attach", 0, - "width", 1, "height", 1, - NULL); - } - else - { - gtk_container_child_set (GTK_CONTAINER (self), self->dummy, - "left-attach", 0, "top-attach", i + 1, - "width", 1, "height", 1, - NULL); - } - } - return FALSE; + DriveList *self = DRIVE_LIST (data); + GList *sorted_buttons = NULL, *tmp; + int i = 0; + + self->layout_tag = 0; + if ( self->count > 0 ) { + g_hash_table_foreach (self->volumes, list_buttons, &sorted_buttons); + g_hash_table_foreach (self->mounts, list_buttons, &sorted_buttons); + + /* position buttons in the table according to their sorted order */ + for (tmp = sorted_buttons, i = 0; tmp != NULL; tmp = tmp->next, i++) { + GtkWidget *button = tmp->data; + + if (self->orientation == GTK_ORIENTATION_HORIZONTAL) { + gtk_container_child_set (GTK_CONTAINER (self), button, + "left-attach", i + 1, "top-attach", 0, + "width", 1, "height", 1, + NULL); + } + else { + gtk_container_child_set (GTK_CONTAINER (self), button, + "left-attach", 0, "top-attach", i + 1, + "width", 1, "height", 1, + NULL); + } + } + } + else { + gtk_widget_show (self->dummy); + if (self->orientation == GTK_ORIENTATION_HORIZONTAL) { + gtk_container_child_set (GTK_CONTAINER (self), self->dummy, + "left-attach", i + 1, "top-attach", 0, + "width", 1, "height", 1, + NULL); + } + else { + gtk_container_child_set (GTK_CONTAINER (self), self->dummy, + "left-attach", 0, "top-attach", i + 1, + "width", 1, "height", 1, + NULL); + } + } + return FALSE; } static void queue_relayout (DriveList *self) { if (!self->layout_tag) { - self->layout_tag = g_idle_add (relayout_buttons, self); + self->layout_tag = g_idle_add (relayout_buttons, self); } } static void mount_added (GVolumeMonitor *monitor, - GMount *mount, - DriveList *self) + GMount *mount, + DriveList *self) { add_mount (self, mount); - self->count++; - if (self->count == 1) - gtk_container_remove (GTK_CONTAINER (self), g_object_ref(self->dummy)); + self->count++; + if (self->count == 1) + gtk_container_remove (GTK_CONTAINER (self), g_object_ref (self->dummy)); + mount_changed (monitor, mount, self); } static void mount_changed (GVolumeMonitor *monitor, - GMount *mount, - DriveList *self) + GMount *mount, + DriveList *self) { GVolume *volume; DriveButton *button = NULL;; volume = g_mount_get_volume (mount); if (volume) { - button = g_hash_table_lookup (self->volumes, volume); - g_object_unref (volume); + button = g_hash_table_lookup (self->volumes, volume); + g_object_unref (volume); } else { - button = g_hash_table_lookup (self->mounts, mount); + button = g_hash_table_lookup (self->mounts, mount); } if (button) - drive_button_queue_update (button); + drive_button_queue_update (button); } static void mount_removed (GVolumeMonitor *monitor, - GMount *mount, - DriveList *self) + GMount *mount, + DriveList *self) { remove_mount (self, mount); mount_changed (monitor, mount, self); - self->count--; - if (self->count == 0) { - gtk_container_add (GTK_CONTAINER (self), self->dummy); - queue_relayout(self); - } + self->count--; + if (self->count == 0) { + gtk_container_add (GTK_CONTAINER (self), self->dummy); + queue_relayout (self); + } } static void volume_added (GVolumeMonitor *monitor, - GVolume *volume, - DriveList *self) + GVolume *volume, + DriveList *self) { add_volume (self, volume); - self->count++; - if (self->count == 1) - gtk_container_remove (GTK_CONTAINER (self), g_object_ref(self->dummy)); + self->count++; + if (self->count == 1) + gtk_container_remove (GTK_CONTAINER (self), g_object_ref (self->dummy)); } static void volume_changed (GVolumeMonitor *monitor, - GVolume *volume, - DriveList *self) + GVolume *volume, + DriveList *self) { DriveButton *button = NULL;; button = g_hash_table_lookup (self->volumes, volume); if (button) - drive_button_queue_update (button); + drive_button_queue_update (button); } static void volume_removed (GVolumeMonitor *monitor, - GVolume *volume, - DriveList *self) + GVolume *volume, + DriveList *self) { remove_volume (self, volume); - self->count--; - if (self->count == 0) { - gtk_container_add (GTK_CONTAINER (self), self->dummy); - queue_relayout(self); - } + self->count--; + if (self->count == 0) { + gtk_container_add (GTK_CONTAINER (self), self->dummy); + queue_relayout (self); + } } static void -add_volume (DriveList *self, GVolume *volume) +add_volume (DriveList *self, + GVolume *volume) { GtkWidget *button; /* if the volume has already been added, return */ if (g_hash_table_lookup (self->volumes, volume) != NULL) - return; + return; button = drive_button_new (volume); gtk_button_set_relief (GTK_BUTTON (button), self->relief); @@ -404,20 +383,22 @@ add_volume (DriveList *self, GVolume *volume) } static void -remove_volume (DriveList *self, GVolume *volume) +remove_volume (DriveList *self, + GVolume *volume) { GtkWidget *button; /* if the volume has already been added, return */ button = g_hash_table_lookup (self->volumes, volume); if (button) { - gtk_container_remove (GTK_CONTAINER (self), button); - queue_relayout (self); + gtk_container_remove (GTK_CONTAINER (self), button); + queue_relayout (self); } } static void -add_mount (DriveList *self, GMount *mount) +add_mount (DriveList *self, + GMount *mount) { GtkWidget *button; GVolume *volume; @@ -430,13 +411,13 @@ add_mount (DriveList *self, GMount *mount) /* ignore mounts attached to a volume */ volume = g_mount_get_volume (mount); if (volume) { - g_object_unref (volume); - return; + g_object_unref (volume); + return; } /* if the mount has already been added, return */ if (g_hash_table_lookup (self->mounts, mount) != NULL) - return; + return; button = drive_button_new_from_mount (mount); gtk_button_set_relief (GTK_BUTTON (button), self->relief); @@ -447,32 +428,35 @@ add_mount (DriveList *self, GMount *mount) } static void -remove_mount (DriveList *self, GMount *mount) +remove_mount (DriveList *self, + GMount *mount) { GtkWidget *button; /* if the mount has already been added, return */ button = g_hash_table_lookup (self->mounts, mount); if (button) { - gtk_container_remove (GTK_CONTAINER (self), button); - queue_relayout (self); + gtk_container_remove (GTK_CONTAINER (self), button); + queue_relayout (self); } } void -drive_list_set_orientation (DriveList *self, - GtkOrientation orientation) +drive_list_set_orientation (DriveList *self, + GtkOrientation orientation) { g_return_if_fail (DRIVE_IS_LIST (self)); if (orientation != self->orientation) { - self->orientation = orientation; - queue_relayout (self); + self->orientation = orientation; + queue_relayout (self); } } static void -set_icon_size (gpointer key, gpointer value, gpointer user_data) +set_icon_size (gpointer key, + gpointer value, + gpointer user_data) { DriveButton *button = value; DriveList *self = user_data; @@ -482,14 +466,15 @@ set_icon_size (gpointer key, gpointer value, gpointer user_data) void -drive_list_set_panel_size (DriveList *self, int panel_size) +drive_list_set_panel_size (DriveList *self, + int panel_size) { g_return_if_fail (DRIVE_IS_LIST (self)); if (self->icon_size != panel_size) { - self->icon_size = panel_size; - g_hash_table_foreach (self->volumes, set_icon_size, self); - g_hash_table_foreach (self->mounts, set_icon_size, self); + self->icon_size = panel_size; + g_hash_table_foreach (self->volumes, set_icon_size, self); + g_hash_table_foreach (self->mounts, set_icon_size, self); } } @@ -501,14 +486,18 @@ drive_list_redraw (DriveList *self) } void -settings_color_changed (GSettings *settings, gchar *key, DriveList *drive_list) +settings_color_changed (GSettings *settings, + gchar *key, + DriveList *drive_list) { g_return_if_fail (DRIVE_IS_LIST (drive_list)); drive_list_redraw (drive_list); } static void -set_button_relief (gpointer key, gpointer value, gpointer user_data) +set_button_relief (gpointer key, + gpointer value, + gpointer user_data) { GtkButton *button = value; DriveList *self = user_data; @@ -517,7 +506,8 @@ set_button_relief (gpointer key, gpointer value, gpointer user_data) } void -drive_list_set_transparent (DriveList *self, gboolean transparent) +drive_list_set_transparent (DriveList *self, + gboolean transparent) { GtkReliefStyle relief; diff --git a/drivemount/drive-list.h b/drivemount/drive-list.h index 96eb189a..e2da7333 100644 --- a/drivemount/drive-list.h +++ b/drivemount/drive-list.h @@ -62,11 +62,11 @@ struct _DriveListClass GType drive_list_get_type (void); GtkWidget *drive_list_new (void); void drive_list_set_orientation (DriveList *list, - GtkOrientation orientation); + GtkOrientation orientation); void drive_list_set_panel_size (DriveList *list, - int panel_size); + int panel_size); void drive_list_set_transparent (DriveList *self, - gboolean transparent); + gboolean transparent); void drive_list_redraw (DriveList *self); void settings_color_changed (GSettings *settings, gchar *key, DriveList *drive_list); diff --git a/drivemount/drivemount.c b/drivemount/drivemount.c index 450bce32..342ca623 100644 --- a/drivemount/drivemount.c +++ b/drivemount/drivemount.c @@ -36,78 +36,76 @@ static const char drivemount_iid[] = "DriveMountApplet"; static const char factory_iid[] = "DriveMountAppletFactory"; static void -change_orient (MatePanelApplet *applet, MatePanelAppletOrient o, DriveList *drive_list) +change_orient (MatePanelApplet *applet, + MatePanelAppletOrient o, + DriveList *drive_list) { GtkOrientation orientation; switch (o) { - case MATE_PANEL_APPLET_ORIENT_LEFT: - case MATE_PANEL_APPLET_ORIENT_RIGHT: - orientation = GTK_ORIENTATION_VERTICAL; - break; - case MATE_PANEL_APPLET_ORIENT_UP: - case MATE_PANEL_APPLET_ORIENT_DOWN: - default: - orientation = GTK_ORIENTATION_HORIZONTAL; - break; + case MATE_PANEL_APPLET_ORIENT_LEFT: + case MATE_PANEL_APPLET_ORIENT_RIGHT: + orientation = GTK_ORIENTATION_VERTICAL; + break; + case MATE_PANEL_APPLET_ORIENT_UP: + case MATE_PANEL_APPLET_ORIENT_DOWN: + default: + orientation = GTK_ORIENTATION_HORIZONTAL; } drive_list_set_orientation (drive_list, orientation); } static void -size_allocate (MatePanelApplet *applet, - GdkRectangle *allocation, - DriveList *drive_list) +size_allocate (MatePanelApplet *applet, + GdkRectangle *allocation, + DriveList *drive_list) { int size; switch (mate_panel_applet_get_orient (applet)) { - case MATE_PANEL_APPLET_ORIENT_LEFT: - case MATE_PANEL_APPLET_ORIENT_RIGHT: - size = allocation->width; - break; - case MATE_PANEL_APPLET_ORIENT_UP: - case MATE_PANEL_APPLET_ORIENT_DOWN: - default: - size = allocation->height; - break; + case MATE_PANEL_APPLET_ORIENT_LEFT: + case MATE_PANEL_APPLET_ORIENT_RIGHT: + size = allocation->width; + break; + case MATE_PANEL_APPLET_ORIENT_UP: + case MATE_PANEL_APPLET_ORIENT_DOWN: + default: + size = allocation->height; } drive_list_set_panel_size (drive_list, size); } static void change_background (MatePanelApplet *applet, - MatePanelAppletBackgroundType type, - GdkColor *colour, - cairo_pattern_t *pattern, - DriveList *drivelist) + MatePanelAppletBackgroundType type, + GdkColor *colour, + cairo_pattern_t *pattern, + DriveList *drivelist) { switch (type) { - case PANEL_NO_BACKGROUND: - drive_list_set_transparent (drivelist, FALSE); - break; - - case PANEL_COLOR_BACKGROUND: - case PANEL_PIXMAP_BACKGROUND: - drive_list_set_transparent (drivelist, TRUE); - break; + case PANEL_NO_BACKGROUND: + drive_list_set_transparent (drivelist, FALSE); + break; + case PANEL_COLOR_BACKGROUND: + case PANEL_PIXMAP_BACKGROUND: + drive_list_set_transparent (drivelist, TRUE); } } static void display_about_dialog (GtkAction *action, - DriveList *drive_list) + DriveList *drive_list) { const gchar *authors[] = { - "James Henstridge <[email protected]>", - NULL + "James Henstridge <[email protected]>", + NULL }; const gchar *documenters[] = { - "Dan Mueth <[email protected]>", - "John Fleck <[email protected]>", - N_("MATE Documentation Team"), - NULL + "Dan Mueth <[email protected]>", + "John Fleck <[email protected]>", + N_("MATE Documentation Team"), + NULL }; #ifdef ENABLE_NLS @@ -117,21 +115,21 @@ display_about_dialog (GtkAction *action, #endif gtk_show_about_dialog (NULL, - "title", _("About Disk Mounter"), - "version", VERSION, - "copyright", _("Copyright \xC2\xA9 2004 Canonical Ltd\n" - "Copyright \xc2\xa9 2012-2020 MATE developers"), - "comments", _("Applet for mounting and unmounting block volumes."), - "authors", authors, - "documenters", documenters, - "translator-credits", _("translator-credits"), - "logo_icon_name", "media-floppy", - NULL); + "title", _("About Disk Mounter"), + "version", VERSION, + "copyright", _("Copyright \xC2\xA9 2004 Canonical Ltd\n" + "Copyright \xc2\xa9 2012-2020 MATE developers"), + "comments", _("Applet for mounting and unmounting block volumes."), + "authors", authors, + "documenters", documenters, + "translator-credits", _("translator-credits"), + "logo_icon_name", "media-floppy", + NULL); } static void display_help (GtkAction *action, - DriveList *drive_list) + DriveList *drive_list) { GdkScreen *screen; GError *error = NULL; @@ -139,25 +137,25 @@ display_help (GtkAction *action, screen = gtk_widget_get_screen (GTK_WIDGET (drive_list)); gtk_show_uri_on_window (NULL, - "help:mate-drivemount", + "help:mate-drivemount", gtk_get_current_event_time (), &error); if (error) { - GtkWidget *dialog; - - dialog = gtk_message_dialog_new (NULL, - GTK_DIALOG_MODAL, - GTK_MESSAGE_ERROR, - GTK_BUTTONS_OK, - _("There was an error displaying help: %s"), - error->message); - g_signal_connect (dialog, "response", - G_CALLBACK (gtk_widget_destroy), NULL); - gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE); - gtk_window_set_screen (GTK_WINDOW (dialog), screen); - gtk_widget_show (dialog); - g_error_free (error); + GtkWidget *dialog; + + dialog = gtk_message_dialog_new (NULL, + GTK_DIALOG_MODAL, + GTK_MESSAGE_ERROR, + GTK_BUTTONS_OK, + _("There was an error displaying help: %s"), + error->message); + g_signal_connect (dialog, "response", + G_CALLBACK (gtk_widget_destroy), NULL); + gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE); + gtk_window_set_screen (GTK_WINDOW (dialog), screen); + gtk_widget_show (dialog); + g_error_free (error); } } @@ -172,8 +170,8 @@ static const GtkActionEntry applet_menu_actions[] = { static gboolean applet_factory (MatePanelApplet *applet, - const char *iid, - gpointer user_data) + const char *iid, + gpointer user_data) { gboolean ret = FALSE; GtkWidget *drive_list; @@ -181,52 +179,53 @@ applet_factory (MatePanelApplet *applet, GtkActionGroup *action_group; if (!strcmp (iid, drivemount_iid)) { - g_set_application_name (_("Disk Mounter")); + g_set_application_name (_("Disk Mounter")); - gtk_window_set_default_icon_name ("media-floppy"); + gtk_window_set_default_icon_name ("media-floppy"); - mate_panel_applet_set_flags (applet, MATE_PANEL_APPLET_EXPAND_MINOR); - mate_panel_applet_set_background_widget (applet, GTK_WIDGET (applet)); + mate_panel_applet_set_flags (applet, MATE_PANEL_APPLET_EXPAND_MINOR); + mate_panel_applet_set_background_widget (applet, GTK_WIDGET (applet)); - drive_list = drive_list_new (); + drive_list = drive_list_new (); - gtk_container_add (GTK_CONTAINER (applet), drive_list); + gtk_container_add (GTK_CONTAINER (applet), drive_list); - g_signal_connect_object (applet, "change_orient", - G_CALLBACK (change_orient), drive_list, 0); - g_signal_connect_object (applet, "size_allocate", - G_CALLBACK (size_allocate), drive_list, 0); - g_signal_connect (applet, "change_background", - G_CALLBACK (change_background), drive_list); + g_signal_connect_object (applet, "change_orient", + G_CALLBACK (change_orient), drive_list, 0); + g_signal_connect_object (applet, "size_allocate", + G_CALLBACK (size_allocate), drive_list, 0); + g_signal_connect (applet, "change_background", + G_CALLBACK (change_background), drive_list); - /* set initial state */ - change_orient (applet, - mate_panel_applet_get_orient (applet), - DRIVE_LIST (drive_list)); + /* set initial state */ + change_orient (applet, + mate_panel_applet_get_orient (applet), + DRIVE_LIST (drive_list)); - action_group = gtk_action_group_new ("DriveMount Applet Actions"); - gtk_action_group_set_translation_domain (action_group, GETTEXT_PACKAGE); - gtk_action_group_add_actions (action_group, - applet_menu_actions, - G_N_ELEMENTS (applet_menu_actions), - drive_list); - mate_panel_applet_setup_menu_from_resource (applet, - DRIVEMOUNT_RESOURCE_PATH "drivemount-applet-menu.xml", - action_group); - g_object_unref (action_group); + action_group = gtk_action_group_new ("DriveMount Applet Actions"); + gtk_action_group_set_translation_domain (action_group, GETTEXT_PACKAGE); + gtk_action_group_add_actions (action_group, + applet_menu_actions, + G_N_ELEMENTS (applet_menu_actions), + drive_list); + mate_panel_applet_setup_menu_from_resource (applet, + DRIVEMOUNT_RESOURCE_PATH "drivemount-applet-menu.xml", + action_group); + g_object_unref (action_group); - ao = gtk_widget_get_accessible (GTK_WIDGET (applet)); - atk_object_set_name (ao, _("Disk Mounter")); + ao = gtk_widget_get_accessible (GTK_WIDGET (applet)); + atk_object_set_name (ao, _("Disk Mounter")); - gtk_widget_show_all (GTK_WIDGET (applet)); + gtk_widget_show_all (GTK_WIDGET (applet)); - ret = TRUE; + ret = TRUE; } return ret; } MATE_PANEL_APPLET_OUT_PROCESS_FACTORY (factory_iid, - PANEL_TYPE_APPLET, - "Drive-Mount-Applet", - applet_factory, NULL) + PANEL_TYPE_APPLET, + "Drive-Mount-Applet", + applet_factory, NULL) + |