nofications: Use g_auto for variables
This commit is contained in:
committed by
Georges Basile Stavracas Neto
parent
fceac14a2c
commit
7e4c1e3eae
@@ -80,14 +80,10 @@ static GtkWidget *
|
||||
get_switch (GtkBuilder *builder,
|
||||
const gchar *prefix)
|
||||
{
|
||||
GtkWidget *result;
|
||||
gchar *name;
|
||||
g_autofree gchar *name = NULL;
|
||||
|
||||
name = g_strdup_printf ("%s-switch", prefix);
|
||||
result = GTK_WIDGET (gtk_builder_get_object (builder, name));
|
||||
g_free (name);
|
||||
|
||||
return result;
|
||||
return GTK_WIDGET (gtk_builder_get_object (builder, name));
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -430,14 +426,14 @@ cc_build_edit_dialog (CcNotificationsPanel *panel,
|
||||
GSettings *master_settings,
|
||||
GDBusProxy *perm_store)
|
||||
{
|
||||
GtkBuilder *builder;
|
||||
g_autoptr(GtkBuilder) builder = NULL;
|
||||
GtkWindow *shell;
|
||||
GtkWidget *dialog;
|
||||
GtkWidget *listbox;
|
||||
GError *error = NULL;
|
||||
g_autoptr(GError) error = NULL;
|
||||
gchar *objects[] = { "edit-dialog", NULL };
|
||||
guint builder_result;
|
||||
char *app_id;
|
||||
g_autofree gchar *app_id = NULL;
|
||||
|
||||
builder = gtk_builder_new ();
|
||||
builder_result = gtk_builder_add_objects_from_resource (builder,
|
||||
@@ -448,8 +444,6 @@ cc_build_edit_dialog (CcNotificationsPanel *panel,
|
||||
if (builder_result == 0)
|
||||
{
|
||||
g_warning ("Could not load ui: %s", error->message);
|
||||
g_error_free (error);
|
||||
g_object_unref (builder);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -461,7 +455,6 @@ cc_build_edit_dialog (CcNotificationsPanel *panel,
|
||||
if (g_str_has_suffix (app_id, ".desktop"))
|
||||
app_id[strlen (app_id) - strlen (".desktop")] = '\0';
|
||||
dialog_set_app_id (dialog, app_id);
|
||||
g_free (app_id);
|
||||
|
||||
dialog_set_perm_store (dialog, perm_store);
|
||||
|
||||
@@ -483,7 +476,7 @@ cc_build_edit_dialog (CcNotificationsPanel *panel,
|
||||
*/
|
||||
g_object_set_data_full (G_OBJECT (dialog),
|
||||
"builder",
|
||||
builder,
|
||||
g_object_ref (builder),
|
||||
g_object_unref);
|
||||
|
||||
g_object_set_data_full (G_OBJECT (dialog),
|
||||
|
||||
@@ -67,7 +67,6 @@ typedef struct {
|
||||
CcNotificationsPanel *panel;
|
||||
} Application;
|
||||
|
||||
static void application_free (Application *app);
|
||||
static void build_app_store (CcNotificationsPanel *panel);
|
||||
static void select_app (GtkListBox *box, GtkListBoxRow *row, CcNotificationsPanel *panel);
|
||||
static int sort_apps (gconstpointer one, gconstpointer two, gpointer user_data);
|
||||
@@ -149,7 +148,7 @@ on_perm_store_ready (GObject *source_object,
|
||||
{
|
||||
CcNotificationsPanel *self;
|
||||
GDBusProxy *proxy;
|
||||
GError *error = NULL;
|
||||
g_autoptr(GError) error = NULL;
|
||||
|
||||
proxy = cc_object_storage_create_dbus_proxy_finish (res, &error);
|
||||
if (proxy == NULL)
|
||||
@@ -157,8 +156,6 @@ on_perm_store_ready (GObject *source_object,
|
||||
if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
|
||||
g_warning ("Failed to connect to xdg-app permission store: %s",
|
||||
error->message);
|
||||
g_error_free (error);
|
||||
|
||||
return;
|
||||
}
|
||||
self = user_data;
|
||||
@@ -170,7 +167,7 @@ cc_notifications_panel_init (CcNotificationsPanel *panel)
|
||||
{
|
||||
GtkWidget *w;
|
||||
GtkWidget *label;
|
||||
GError *error = NULL;
|
||||
g_autoptr(GError) error = NULL;
|
||||
|
||||
g_resources_register (cc_notifications_get_resource ());
|
||||
panel->known_applications = g_hash_table_new_full (g_str_hash, g_str_equal,
|
||||
@@ -182,7 +179,6 @@ cc_notifications_panel_init (CcNotificationsPanel *panel)
|
||||
&error) == 0)
|
||||
{
|
||||
g_error ("Error loading UI file: %s", error->message);
|
||||
g_error_free (error);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -294,12 +290,24 @@ on_off_label_mapping_get (GValue *value,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
application_free (Application *app)
|
||||
{
|
||||
g_free (app->canonical_app_id);
|
||||
g_object_unref (app->app_info);
|
||||
g_object_unref (app->settings);
|
||||
|
||||
g_slice_free (Application, app);
|
||||
}
|
||||
|
||||
G_DEFINE_AUTOPTR_CLEANUP_FUNC (Application, application_free)
|
||||
|
||||
static void
|
||||
add_application (CcNotificationsPanel *panel,
|
||||
Application *app)
|
||||
{
|
||||
GtkWidget *box, *w, *row, *list_box;
|
||||
GIcon *icon;
|
||||
g_autoptr(GIcon) icon = NULL;
|
||||
const gchar *app_name;
|
||||
int size;
|
||||
|
||||
@@ -331,7 +339,6 @@ add_application (CcNotificationsPanel *panel,
|
||||
gtk_image_set_pixel_size (GTK_IMAGE (w), size);
|
||||
gtk_size_group_add_widget (GTK_SIZE_GROUP (gtk_builder_get_object (panel->builder, "sizegroup1")), w);
|
||||
gtk_container_add (GTK_CONTAINER (box), w);
|
||||
g_object_unref (icon);
|
||||
|
||||
w = gtk_label_new (app_name);
|
||||
gtk_container_add (GTK_CONTAINER (box), w);
|
||||
@@ -359,10 +366,10 @@ maybe_add_app_id (CcNotificationsPanel *panel,
|
||||
const char *canonical_app_id)
|
||||
{
|
||||
Application *app;
|
||||
gchar *path;
|
||||
gchar *full_app_id;
|
||||
GSettings *settings;
|
||||
GAppInfo *app_info;
|
||||
g_autofree gchar *path = NULL;
|
||||
g_autofree gchar *full_app_id = NULL;
|
||||
g_autoptr(GSettings) settings = NULL;
|
||||
g_autoptr(GAppInfo) app_info = NULL;
|
||||
|
||||
if (*canonical_app_id == '\0')
|
||||
return;
|
||||
@@ -381,46 +388,38 @@ maybe_add_app_id (CcNotificationsPanel *panel,
|
||||
g_debug ("Not adding application '%s' (canonical app ID: %s)",
|
||||
full_app_id, canonical_app_id);
|
||||
/* The application cannot be found, probably it was uninstalled */
|
||||
g_object_unref (settings);
|
||||
} else {
|
||||
app = g_slice_new (Application);
|
||||
app->canonical_app_id = g_strdup (canonical_app_id);
|
||||
app->settings = settings;
|
||||
app->app_info = app_info;
|
||||
|
||||
g_debug ("Adding application '%s' (canonical app ID: %s)",
|
||||
full_app_id, canonical_app_id);
|
||||
|
||||
add_application (panel, app);
|
||||
return;
|
||||
}
|
||||
|
||||
g_free (path);
|
||||
g_free (full_app_id);
|
||||
app = g_slice_new (Application);
|
||||
app->canonical_app_id = g_strdup (canonical_app_id);
|
||||
app->settings = g_object_ref (settings);
|
||||
app->app_info = g_object_ref (app_info);
|
||||
|
||||
g_debug ("Adding application '%s' (canonical app ID: %s)",
|
||||
full_app_id, canonical_app_id);
|
||||
|
||||
add_application (panel, app);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
queued_app_info (gpointer data)
|
||||
{
|
||||
Application *app;
|
||||
CcNotificationsPanel *panel;
|
||||
g_autoptr(Application) app = NULL;
|
||||
g_autoptr(CcNotificationsPanel) panel = NULL;
|
||||
|
||||
app = data;
|
||||
panel = app->panel;
|
||||
app->panel = NULL;
|
||||
panel = g_steal_pointer (&app->panel);
|
||||
|
||||
if (g_cancellable_is_cancelled (panel->apps_load_cancellable) ||
|
||||
g_hash_table_contains (panel->known_applications,
|
||||
app->canonical_app_id))
|
||||
{
|
||||
application_free (app);
|
||||
g_object_unref (panel);
|
||||
return FALSE;
|
||||
}
|
||||
return FALSE;
|
||||
|
||||
g_debug ("Processing queued application %s", app->canonical_app_id);
|
||||
|
||||
add_application (panel, app);
|
||||
g_object_unref (panel);
|
||||
g_steal_pointer (&app);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
@@ -429,7 +428,7 @@ static char *
|
||||
app_info_get_id (GAppInfo *app_info)
|
||||
{
|
||||
const char *desktop_id;
|
||||
char *ret;
|
||||
g_autofree gchar *ret = NULL;
|
||||
const char *filename;
|
||||
int l;
|
||||
|
||||
@@ -445,14 +444,11 @@ app_info_get_id (GAppInfo *app_info)
|
||||
}
|
||||
|
||||
if (G_UNLIKELY (g_str_has_suffix (ret, ".desktop") == FALSE))
|
||||
{
|
||||
g_free (ret);
|
||||
return NULL;
|
||||
}
|
||||
return NULL;
|
||||
|
||||
l = strlen (desktop_id);
|
||||
*(ret + l - strlen(".desktop")) = '\0';
|
||||
return ret;
|
||||
return g_steal_pointer (&ret);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -461,37 +457,34 @@ process_app_info (CcNotificationsPanel *panel,
|
||||
GAppInfo *app_info)
|
||||
{
|
||||
Application *app;
|
||||
char *app_id;
|
||||
char *canonical_app_id;
|
||||
char *path;
|
||||
GSettings *settings;
|
||||
g_autofree gchar *app_id = NULL;
|
||||
g_autofree gchar *path = NULL;
|
||||
g_autoptr(GSettings) settings = NULL;
|
||||
GSource *source;
|
||||
guint i;
|
||||
|
||||
app_id = app_info_get_id (app_info);
|
||||
canonical_app_id = g_strcanon (app_id,
|
||||
"0123456789"
|
||||
"abcdefghijklmnopqrstuvwxyz"
|
||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||
"-",
|
||||
'-');
|
||||
for (i = 0; canonical_app_id[i] != '\0'; i++)
|
||||
canonical_app_id[i] = g_ascii_tolower (canonical_app_id[i]);
|
||||
g_strcanon (app_id,
|
||||
"0123456789"
|
||||
"abcdefghijklmnopqrstuvwxyz"
|
||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||
"-",
|
||||
'-');
|
||||
for (i = 0; app_id[i] != '\0'; i++)
|
||||
app_id[i] = g_ascii_tolower (app_id[i]);
|
||||
|
||||
path = g_strconcat (APP_PREFIX, canonical_app_id, "/", NULL);
|
||||
path = g_strconcat (APP_PREFIX, app_id, "/", NULL);
|
||||
settings = g_settings_new_with_path (APP_SCHEMA, path);
|
||||
|
||||
app = g_slice_new (Application);
|
||||
app->canonical_app_id = canonical_app_id;
|
||||
app->settings = settings;
|
||||
app->canonical_app_id = g_steal_pointer (&app_id);
|
||||
app->settings = g_object_ref (settings);
|
||||
app->app_info = g_object_ref (app_info);
|
||||
app->panel = g_object_ref (panel);
|
||||
|
||||
source = g_idle_source_new ();
|
||||
g_source_set_callback (source, queued_app_info, app, NULL);
|
||||
g_source_attach (source, g_task_get_context (task));
|
||||
|
||||
g_free (path);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -523,13 +516,11 @@ load_apps_thread (GTask *task,
|
||||
static void
|
||||
load_apps_async (CcNotificationsPanel *panel)
|
||||
{
|
||||
GTask *task;
|
||||
g_autoptr(GTask) task = NULL;
|
||||
|
||||
panel->apps_load_cancellable = g_cancellable_new ();
|
||||
task = g_task_new (panel, panel->apps_load_cancellable, NULL, NULL);
|
||||
g_task_run_in_thread (task, load_apps_thread);
|
||||
|
||||
g_object_unref (task);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -538,14 +529,13 @@ children_changed (GSettings *settings,
|
||||
CcNotificationsPanel *panel)
|
||||
{
|
||||
int i;
|
||||
gchar **new_app_ids;
|
||||
g_auto (GStrv) new_app_ids = NULL;
|
||||
|
||||
g_settings_get (panel->master_settings,
|
||||
"application-children",
|
||||
"^as", &new_app_ids);
|
||||
for (i = 0; new_app_ids[i]; i++)
|
||||
maybe_add_app_id (panel, new_app_ids[i]);
|
||||
g_strfreev (new_app_ids);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -571,16 +561,6 @@ select_app (GtkListBox *list_box,
|
||||
cc_build_edit_dialog (panel, app->app_info, app->settings, panel->master_settings, panel->perm_store);
|
||||
}
|
||||
|
||||
static void
|
||||
application_free (Application *app)
|
||||
{
|
||||
g_free (app->canonical_app_id);
|
||||
g_object_unref (app->app_info);
|
||||
g_object_unref (app->settings);
|
||||
|
||||
g_slice_free (Application, app);
|
||||
}
|
||||
|
||||
static int
|
||||
sort_apps (gconstpointer one,
|
||||
gconstpointer two,
|
||||
|
||||
Reference in New Issue
Block a user