[gnome-panel/wip/muktupavels/api-break: 4/4] applet: add error parameter to initial_setup




commit 8583a131c41241cec55219a9ca113ea6003175e4
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Wed May 26 16:28:20 2021 +0300

    applet: add error parameter to initial_setup

 libgnome-panel/gp-applet.c            |  2 +-
 libgnome-panel/gp-applet.h            | 13 +++++++------
 modules/launcher/gp-launcher-applet.c | 20 ++++++++++++--------
 modules/menu/gp-menu-button-applet.c  | 11 ++++++++---
 4 files changed, 28 insertions(+), 18 deletions(-)
---
diff --git a/libgnome-panel/gp-applet.c b/libgnome-panel/gp-applet.c
index d899733dc..e432cecdf 100644
--- a/libgnome-panel/gp-applet.c
+++ b/libgnome-panel/gp-applet.c
@@ -258,7 +258,7 @@ gp_applet_constructed (GObject *object)
   priv = gp_applet_get_instance_private (applet);
 
   if (applet_class->initial_setup != NULL && priv->initial_settings != NULL)
-    applet_class->initial_setup (applet, priv->initial_settings);
+    applet_class->initial_setup (applet, priv->initial_settings, NULL);
   g_clear_pointer (&priv->initial_settings, g_variant_unref);
 
   gtk_builder_set_translation_domain (priv->builder, priv->gettext_domain);
diff --git a/libgnome-panel/gp-applet.h b/libgnome-panel/gp-applet.h
index b96cac747..fa4d94046 100644
--- a/libgnome-panel/gp-applet.h
+++ b/libgnome-panel/gp-applet.h
@@ -72,14 +72,15 @@ struct _GpAppletClass
 {
   GtkEventBoxClass parent_class;
 
-  void (* initial_setup)       (GpApplet        *applet,
-                                GVariant        *initial_settings);
+  gboolean (* initial_setup)     (GpApplet         *self,
+                                  GVariant         *initial_settings,
+                                  GError          **error);
 
-  void (* placement_changed)   (GpApplet        *applet,
-                                GtkOrientation   orientation,
-                                GtkPositionType  position);
+  void     (* placement_changed) (GpApplet         *self,
+                                  GtkOrientation    orientation,
+                                  GtkPositionType   position);
 
-  void (* remove_from_panel)   (GpApplet        *self);
+  void     (* remove_from_panel) (GpApplet         *self);
 
   /*< private >*/
   gpointer padding[9];
diff --git a/modules/launcher/gp-launcher-applet.c b/modules/launcher/gp-launcher-applet.c
index 6a1e9dad1..54a2da449 100644
--- a/modules/launcher/gp-launcher-applet.c
+++ b/modules/launcher/gp-launcher-applet.c
@@ -1315,14 +1315,19 @@ gp_launcher_applet_finalize (GObject *object)
   G_OBJECT_CLASS (gp_launcher_applet_parent_class)->finalize (object);
 }
 
-static void
-gp_launcher_applet_initial_setup (GpApplet *applet,
-                                  GVariant *initial_settings)
+static gboolean
+gp_launcher_applet_initial_setup (GpApplet  *applet,
+                                  GVariant  *initial_settings,
+                                  GError   **error)
 {
   GSettings *settings;
+  gboolean ret;
   const char *location;
 
+  g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
   settings = gp_applet_settings_new (applet, LAUNCHER_SCHEMA);
+  ret = TRUE;
 
   location = NULL;
   if (g_variant_lookup (initial_settings, "location", "&s", &location))
@@ -1338,7 +1343,6 @@ gp_launcher_applet_initial_setup (GpApplet *applet,
       const char *comment;
       GKeyFile *file;
       char *filename;
-      GError *error;
 
       type = NULL;
       icon = NULL;
@@ -1412,11 +1416,9 @@ gp_launcher_applet_initial_setup (GpApplet *applet,
 
       filename = gp_launcher_get_unique_filename ();
 
-      error = NULL;
-      if (!g_key_file_save_to_file (file, filename, &error))
+      if (!g_key_file_save_to_file (file, filename, error))
         {
-          g_warning ("%s", error->message);
-          g_error_free (error);
+          ret = FALSE;
         }
       else
         {
@@ -1432,6 +1434,8 @@ gp_launcher_applet_initial_setup (GpApplet *applet,
     }
 
   g_object_unref (settings);
+
+  return ret;
 }
 
 static void
diff --git a/modules/menu/gp-menu-button-applet.c b/modules/menu/gp-menu-button-applet.c
index a7d6ab2ad..7d8a67696 100644
--- a/modules/menu/gp-menu-button-applet.c
+++ b/modules/menu/gp-menu-button-applet.c
@@ -657,13 +657,16 @@ gp_menu_button_applet_dispose (GObject *object)
   G_OBJECT_CLASS (gp_menu_button_applet_parent_class)->dispose (object);
 }
 
-static void
-gp_menu_button_applet_initial_setup (GpApplet *applet,
-                                     GVariant *initial_settings)
+static gboolean
+gp_menu_button_applet_initial_setup (GpApplet  *applet,
+                                     GVariant  *initial_settings,
+                                     GError   **error)
 {
   GSettings *settings;
   const gchar *menu_path;
 
+  g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
   settings = gp_applet_settings_new (applet, MENU_BUTTON_SCHEMA);
 
   menu_path = NULL;
@@ -671,6 +674,8 @@ gp_menu_button_applet_initial_setup (GpApplet *applet,
     g_settings_set_string (settings, "menu-path", menu_path);
 
   g_object_unref (settings);
+
+  return TRUE;
 }
 
 static void


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]