diff --git a/src/hotplug-sniffer/shell-mime-sniffer.c b/src/hotplug-sniffer/shell-mime-sniffer.c index 49176b1fe..724a204c3 100644 --- a/src/hotplug-sniffer/shell-mime-sniffer.c +++ b/src/hotplug-sniffer/shell-mime-sniffer.c @@ -70,25 +70,19 @@ typedef struct { gint total_items; } DeepCountState; -typedef struct _ShellMimeSnifferPrivate ShellMimeSnifferPrivate; - -struct _ShellMimeSniffer +typedef struct _ShellMimeSniffer { GObject parent_instance; - ShellMimeSnifferPrivate *priv; -}; - -struct _ShellMimeSnifferPrivate { GFile *file; GCancellable *cancellable; guint watchdog_id; GTask *task; -}; +} ShellMimeSniffer; -G_DEFINE_TYPE_WITH_PRIVATE (ShellMimeSniffer, shell_mime_sniffer, G_TYPE_OBJECT); +G_DEFINE_FINAL_TYPE (ShellMimeSniffer, shell_mime_sniffer, G_TYPE_OBJECT); static void deep_count_load (DeepCountState *state, GFile *file); @@ -232,7 +226,7 @@ prepare_async_result (DeepCountState *state) mimes = (gchar **) g_ptr_array_free (sniffed_mime, FALSE); g_array_free (results, TRUE); - g_task_return_pointer (self->priv->task, mimes, (GDestroyNotify)g_strfreev); + g_task_return_pointer (self->task, mimes, (GDestroyNotify)g_strfreev); } /* adapted from nautilus/libnautilus-private/nautilus-directory-async.c */ @@ -249,7 +243,7 @@ deep_count_one (DeepCountState *state, subdir = g_file_get_child (state->file, g_file_info_get_name (info)); state->deep_count_subdirectories = g_list_append (state->deep_count_subdirectories, subdir); - } + } else { content_type = g_file_info_get_content_type (info); @@ -273,7 +267,7 @@ deep_count_finish (DeepCountState *state) g_object_unref (state->enumerator); } - g_cancellable_reset (state->self->priv->cancellable); + g_cancellable_reset (state->self->cancellable); g_clear_object (&state->file); g_list_free_full (state->deep_count_subdirectories, g_object_unref); @@ -315,15 +309,15 @@ deep_count_more_files_callback (GObject *source_object, state = user_data; - if (g_cancellable_is_cancelled (state->self->priv->cancellable)) + if (g_cancellable_is_cancelled (state->self->cancellable)) { deep_count_finish (state); return; } - + files = g_file_enumerator_next_files_finish (state->enumerator, res, NULL); - + for (l = files; l != NULL; l = l->next) { info = l->data; @@ -344,7 +338,7 @@ deep_count_more_files_callback (GObject *source_object, g_file_enumerator_next_files_async (state->enumerator, DIRECTORY_LOAD_ITEMS_PER_CALLBACK, G_PRIORITY_LOW, - state->self->priv->cancellable, + state->self->cancellable, deep_count_more_files_callback, state); } @@ -362,7 +356,7 @@ deep_count_callback (GObject *source_object, state = user_data; - if (g_cancellable_is_cancelled (state->self->priv->cancellable)) + if (g_cancellable_is_cancelled (state->self->cancellable)) { deep_count_finish (state); return; @@ -370,7 +364,7 @@ deep_count_callback (GObject *source_object, enumerator = g_file_enumerate_children_finish (G_FILE (source_object), res, NULL); - + if (enumerator == NULL) { deep_count_next_dir (state); @@ -381,7 +375,7 @@ deep_count_callback (GObject *source_object, g_file_enumerator_next_files_async (state->enumerator, DIRECTORY_LOAD_ITEMS_PER_CALLBACK, G_PRIORITY_LOW, - state->self->priv->cancellable, + state->self->cancellable, deep_count_more_files_callback, state); } @@ -397,7 +391,7 @@ deep_count_load (DeepCountState *state, LOADER_ATTRS, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, /* flags */ G_PRIORITY_LOW, /* prio */ - state->self->priv->cancellable, + state->self->cancellable, deep_count_callback, state); } @@ -410,7 +404,7 @@ deep_count_start (ShellMimeSniffer *self) state = g_new0 (DeepCountState, 1); state->self = self; - deep_count_load (state, self->priv->file); + deep_count_load (state, self->file); } static void @@ -427,14 +421,14 @@ query_info_async_ready_cb (GObject *source, if (error != NULL) { - g_task_return_error (self->priv->task, error); + g_task_return_error (self->task, error); return; } if (g_file_info_get_file_type (info) != G_FILE_TYPE_DIRECTORY) { - g_task_return_new_error (self->priv->task, + g_task_return_new_error (self->task, G_IO_ERROR, G_IO_ERROR_NOT_DIRECTORY, "Not a directory"); @@ -450,8 +444,8 @@ watchdog_timeout_reached_cb (gpointer user_data) { ShellMimeSniffer *self = user_data; - self->priv->watchdog_id = 0; - g_cancellable_cancel (self->priv->cancellable); + self->watchdog_id = 0; + g_cancellable_cancel (self->cancellable); return FALSE; } @@ -459,11 +453,11 @@ watchdog_timeout_reached_cb (gpointer user_data) static void start_loading_file (ShellMimeSniffer *self) { - g_file_query_info_async (self->priv->file, + g_file_query_info_async (self->file, LOADER_ATTRS, G_FILE_QUERY_INFO_NONE, G_PRIORITY_DEFAULT, - self->priv->cancellable, + self->cancellable, query_info_async_ready_cb, self); } @@ -472,8 +466,8 @@ static void shell_mime_sniffer_set_file (ShellMimeSniffer *self, GFile *file) { - g_clear_object (&self->priv->file); - self->priv->file = g_object_ref (file); + g_clear_object (&self->file); + self->file = g_object_ref (file); } static void @@ -481,11 +475,11 @@ shell_mime_sniffer_dispose (GObject *object) { ShellMimeSniffer *self = SHELL_MIME_SNIFFER (object); - g_clear_object (&self->priv->file); - g_clear_object (&self->priv->cancellable); - g_clear_object (&self->priv->task); + g_clear_object (&self->file); + g_clear_object (&self->cancellable); + g_clear_object (&self->task); - g_clear_handle_id (&self->priv->watchdog_id, g_source_remove); + g_clear_handle_id (&self->watchdog_id, g_source_remove); G_OBJECT_CLASS (shell_mime_sniffer_parent_class)->dispose (object); } @@ -500,7 +494,7 @@ shell_mime_sniffer_get_property (GObject *object, switch (prop_id) { case PROP_FILE: - g_value_set_object (value, self->priv->file); + g_value_set_object (value, self->file); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -547,7 +541,6 @@ shell_mime_sniffer_class_init (ShellMimeSnifferClass *klass) static void shell_mime_sniffer_init (ShellMimeSniffer *self) { - self->priv = shell_mime_sniffer_get_instance_private (self); init_mimetypes (); } @@ -564,17 +557,17 @@ shell_mime_sniffer_sniff_async (ShellMimeSniffer *self, GAsyncReadyCallback callback, gpointer user_data) { - g_assert (self->priv->watchdog_id == 0); - g_assert (self->priv->task == NULL); + g_assert (self->watchdog_id == 0); + g_assert (self->task == NULL); - self->priv->cancellable = g_cancellable_new (); - self->priv->task = g_task_new (self, self->priv->cancellable, - callback, user_data); + self->cancellable = g_cancellable_new (); + self->task = g_task_new (self, self->cancellable, + callback, user_data); - self->priv->watchdog_id = + self->watchdog_id = g_timeout_add (WATCHDOG_TIMEOUT, watchdog_timeout_reached_cb, self); - g_source_set_name_by_id (self->priv->watchdog_id, "[gnome-shell] watchdog_timeout_reached_cb"); + g_source_set_name_by_id (self->watchdog_id, "[gnome-shell] watchdog_timeout_reached_cb"); start_loading_file (self); } @@ -584,5 +577,5 @@ shell_mime_sniffer_sniff_finish (ShellMimeSniffer *self, GAsyncResult *res, GError **error) { - return g_task_propagate_pointer (self->priv->task, error); + return g_task_propagate_pointer (self->task, error); }