[gnome-notes/wip-note-new-gobject: 5/7] memo-note: Port to G_DECLARE_FINAL_TYPE




commit 9b614a7cc141b25ee4505b39a000fce7e3cad354
Author: Isaque Galdino <igaldino gmail com>
Date:   Sun Jan 24 18:22:30 2021 -0300

    memo-note: Port to G_DECLARE_FINAL_TYPE
    
    Related to #82

 src/libbiji/provider/biji-memo-note.c | 201 +++++++++++++---------------------
 src/libbiji/provider/biji-memo-note.h |  48 ++------
 2 files changed, 85 insertions(+), 164 deletions(-)
---
diff --git a/src/libbiji/provider/biji-memo-note.c b/src/libbiji/provider/biji-memo-note.c
index eac4557..55fd84d 100644
--- a/src/libbiji/provider/biji-memo-note.c
+++ b/src/libbiji/provider/biji-memo-note.c
@@ -15,22 +15,19 @@
  * with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-
-
 #include "biji-memo-provider.h"
 #include "biji-memo-note.h"
 
-struct _BijiMemoNotePrivate
+struct _BijiMemoNote
 {
+  BijiNoteObj    parent_instance;
   BijiProvider  *provider;
   ECalComponent *ecal;
   ECalClient    *client;
-  const gchar   *description;
+  const char    *description;
 };
 
-
-G_DEFINE_TYPE_WITH_PRIVATE (BijiMemoNote, biji_memo_note, BIJI_TYPE_NOTE_OBJ);
-
+G_DEFINE_TYPE (BijiMemoNote, biji_memo_note, BIJI_TYPE_NOTE_OBJ)
 
 /* Properties */
 enum {
@@ -39,11 +36,8 @@ enum {
   MEMO_NOTE_PROP
 };
 
-
 static GParamSpec *properties[MEMO_NOTE_PROP] = { NULL, };
 
-
-
 /* Function from evo calendar gui comp-util.c (LGPL)
  * to be removed if we depen on evo,
  * the func is borrowed as is (=3.13.1) */
@@ -51,10 +45,10 @@ static gboolean
 cal_comp_is_on_server (ECalComponent *comp,
                        ECalClient *client)
 {
-  const gchar *uid;
-  gchar *rid = NULL;
-  ICalComponent *icalcomp = NULL;
-  GError *error = NULL;
+  const char        *uid;
+  g_autofree char   *rid = NULL;
+  ICalComponent     *icalcomp = NULL;
+  g_autoptr(GError)  error = NULL;
 
   g_return_val_if_fail (comp != NULL, FALSE);
   g_return_val_if_fail (E_IS_CAL_COMPONENT (comp), FALSE);
@@ -73,32 +67,25 @@ cal_comp_is_on_server (ECalComponent *comp,
    *   e_cal_util_construct_instance does not create the instances
    *   of all day events, so we default to old behaviour. */
   if (e_cal_client_check_recurrences_no_master (client))
-  {
-    rid = e_cal_component_get_recurid_as_string (comp);
-  }
+    {
+      rid = e_cal_component_get_recurid_as_string (comp);
+    }
 
-  e_cal_client_get_object_sync (
-       client, uid, rid, &icalcomp, NULL, &error);
+  e_cal_client_get_object_sync (client, uid, rid, &icalcomp, NULL, &error);
 
   if (icalcomp != NULL)
-  {
-    g_clear_object (&icalcomp);
-    g_free (rid);
+    {
+      g_clear_object (&icalcomp);
 
-    return TRUE;
-  }
+      return TRUE;
+    }
 
   if (!g_error_matches (error, E_CAL_CLIENT_ERROR, E_CAL_CLIENT_ERROR_OBJECT_NOT_FOUND))
     g_warning (G_STRLOC ": %s", error->message);
 
-  g_clear_error (&error);
-  g_free (rid);
-
   return FALSE;
 }
 
-
-
 /*
  * Parse current note content to update ECalComponent
  *
@@ -110,7 +97,7 @@ cal_comp_is_on_server (ECalComponent *comp,
 static void
 fill_in_components (ECalComponent *comp,
                     ECalComponent *clone,
-                   BijiMemoNote  *self)
+                    BijiMemoNote  *self)
 {
   ECalComponentText *text;
   GSList             l;
@@ -168,68 +155,64 @@ fill_in_components (ECalComponent *comp,
   mtime = biji_item_get_mtime (BIJI_ITEM (self));
   t = icaltime_from_time_val (mtime);
   if (t)
-  {
-    e_cal_component_set_last_modified (clone, t);
-    g_object_unref (t);
-  }
+    {
+      e_cal_component_set_last_modified (clone, t);
+      g_object_unref (t);
+    }
 }
 
-
-
 /*
  * https://git.gnome.org/browse/evolution/tree/calendar/gui/dialogs/comp-editor.c#n471
  */
 static void
 memo_note_save (BijiNoteObj *note)
 {
-  BijiMemoNote *self = BIJI_MEMO_NOTE (note);
-  BijiMemoNotePrivate *priv = self->priv;
-  ICalComponent *icalcomp;
-  gboolean result;
-  GError *error;
-  ECalComponent *clone;
+  BijiMemoNote      *self = BIJI_MEMO_NOTE (note);
+  ICalComponent     *icalcomp;
+  gboolean           result;
+  g_autoptr(GError)  error;
+  ECalComponent     *clone;
 
-  clone = e_cal_component_clone (priv->ecal);
-  fill_in_components (priv->ecal, clone, self);
+  clone = e_cal_component_clone (self->ecal);
+  fill_in_components (self->ecal, clone, self);
 
   /* Save */
   e_cal_component_commit_sequence (clone);
-  g_object_unref (priv->ecal);
-  priv->ecal = clone;
+  g_object_unref (self->ecal);
+  self->ecal = clone;
 
-  icalcomp = e_cal_component_get_icalcomponent (priv->ecal);
+  icalcomp = e_cal_component_get_icalcomponent (self->ecal);
 
 
-  if (!cal_comp_is_on_server (priv->ecal, priv->client))
-  {
-    gchar *uid = NULL;
-    result = e_cal_client_create_object_sync (
-    priv->client, icalcomp, E_CAL_OPERATION_FLAG_NONE, &uid, NULL, &error);
+  if (!cal_comp_is_on_server (self->ecal, self->client))
+    {
+      g_autofree char *uid = NULL;
+      result = e_cal_client_create_object_sync (self->client,
+                                                icalcomp,
+                                                E_CAL_OPERATION_FLAG_NONE,
+                                                &uid,
+                                                NULL,
+                                                &error);
       if (result)
-      {
         i_cal_component_set_uid (icalcomp, uid);
-       g_free (uid);
-        //g_signal_emit_by_name (editor, "object_created");
-      }
-   }
-
+    }
   else
-  {
-    result = e_cal_client_modify_object_sync (
-      priv->client, icalcomp, E_CAL_OBJ_MOD_THIS, E_CAL_OPERATION_FLAG_NONE, NULL, &error);
-    e_cal_component_commit_sequence (clone);
-  }
+    {
+      result = e_cal_client_modify_object_sync (self->client,
+                                                icalcomp,
+                                                E_CAL_OBJ_MOD_THIS,
+                                                E_CAL_OPERATION_FLAG_NONE,
+                                                NULL,
+                                                &error);
+      e_cal_component_commit_sequence (clone);
+    }
 }
 
 static void
 biji_memo_note_init (BijiMemoNote *biji_memo_note)
 {
-  biji_memo_note->priv = biji_memo_note_get_instance_private (biji_memo_note);
-
 }
 
-
-
 /* Let the provider finalize the ECalComponent. */
 static void
 biji_memo_note_finalize (GObject *object)
@@ -237,9 +220,6 @@ biji_memo_note_finalize (GObject *object)
   G_OBJECT_CLASS (biji_memo_note_parent_class)->finalize (object);
 }
 
-
-
-
 static void
 biji_memo_note_set_property (GObject      *object,
                              guint         property_id,
@@ -248,11 +228,10 @@ biji_memo_note_set_property (GObject      *object,
 {
   BijiMemoNote *self = BIJI_MEMO_NOTE (object);
 
-
   switch (property_id)
     {
     case PROP_ECAL:
-      self->priv->ecal = g_value_dup_object (value);
+      self->ecal = g_value_dup_object (value);
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -260,7 +239,6 @@ biji_memo_note_set_property (GObject      *object,
     }
 }
 
-
 static void
 biji_memo_note_get_property (GObject    *object,
                              guint       property_id,
@@ -272,7 +250,7 @@ biji_memo_note_get_property (GObject    *object,
   switch (property_id)
     {
     case PROP_ECAL:
-      g_value_set_object (value, self->priv->ecal);
+      g_value_set_object (value, self->ecal);
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -280,16 +258,13 @@ biji_memo_note_get_property (GObject    *object,
     }
 }
 
-
-
 static void
 memo_set_html (BijiNoteObj *note,
-               const gchar *html)
+               const char  *html)
 {
   /* NULL */
 }
 
-
 static gboolean
 memo_item_delete (BijiItem *item)
 {
@@ -300,31 +275,25 @@ memo_item_delete (BijiItem *item)
 }
 
 static void
-on_memo_deleted (GObject *ecal,
+on_memo_deleted (GObject      *ecal,
                  GAsyncResult *res,
-                 gpointer user_data)
+                 gpointer      user_data)
 {
-  GError *error = NULL;
+  g_autoptr(GError) error = NULL;
 
-  e_cal_client_remove_object_finish (E_CAL_CLIENT (ecal),
-                                     res, &error);
+  e_cal_client_remove_object_finish (E_CAL_CLIENT (ecal), res, &error);
 
   if (error)
-  {
     g_warning ("Could not delete memo:%s", error->message);
-  }
 }
 
-
 static gboolean
 memo_delete (BijiNoteObj *note)
 {
-  BijiMemoNote *self;
-  const gchar *uid;
+  BijiMemoNote *self = BIJI_MEMO_NOTE (note);
+  const char   *uid  = e_cal_component_get_uid (self->ecal);
 
-  self = BIJI_MEMO_NOTE (note);
-  uid = e_cal_component_get_uid (self->priv->ecal);
-  e_cal_client_remove_object (self->priv->client,
+  e_cal_client_remove_object (self->client,
                               uid,
                               NULL,               /* rid : all occurences */
                               E_CAL_OBJ_MOD_ALL,  /*       all occurences */
@@ -333,62 +302,46 @@ memo_delete (BijiNoteObj *note)
                               on_memo_deleted,
                               self);
 
-
   return TRUE;
 }
 
-
-static gchar *
+static char *
 memo_get_html (BijiNoteObj *note)
 {
-  // we cast but the func should expect a const gchar, really
-  return html_from_plain_text ((gchar*) biji_note_obj_get_raw_text (note));
+  // we cast but the func should expect a const char, really
+  return html_from_plain_text ((char*) biji_note_obj_get_raw_text (note));
 }
 
-
-
-static gchar *
+static char *
 memo_get_basename (BijiNoteObj *note)
 {
-  const gchar *out;
-
-  out = e_cal_component_get_uid (
-    BIJI_MEMO_NOTE (note)->priv->ecal);
+  BijiMemoNote *self = BIJI_MEMO_NOTE (note);
+  const char   *out  = e_cal_component_get_uid (self->ecal);
 
   return g_strdup (out);
 }
 
-
-
-
-static const gchar *
+static const char *
 memo_get_place (BijiItem *item)
 {
-  BijiMemoNote *self;
-  const BijiProviderInfo *info;
-
-  self = BIJI_MEMO_NOTE (item);
-  info = biji_provider_get_info (BIJI_PROVIDER (self->priv->provider));
+  BijiMemoNote           *self = BIJI_MEMO_NOTE (item);
+  const BijiProviderInfo *info = biji_provider_get_info (BIJI_PROVIDER (self->provider));
 
   return info->name;
 }
 
-
-
 static gboolean
-item_no         (BijiItem * item)
+item_no (BijiItem *item)
 {
   return FALSE;
 }
 
-
 static gboolean
-note_no         (BijiNoteObj *item)
+note_no (BijiNoteObj *note)
 {
   return FALSE;
 }
 
-
 static void
 biji_memo_note_class_init (BijiMemoNoteClass *klass)
 {
@@ -426,11 +379,6 @@ biji_memo_note_class_init (BijiMemoNoteClass *klass)
   g_object_class_install_properties (object_class, MEMO_NOTE_PROP, properties);
 }
 
-
-
-
-
-
 /*
  * The provider looks for a content ("description")
  * in order to push to tracker.
@@ -453,8 +401,9 @@ biji_memo_note_new_from_info (BijiMemoProvider *provider,
                                     "ecal",    component,
                                     NULL);
 
-  ret->priv->provider = BIJI_PROVIDER (provider);
-  ret->priv->description = description;
-  ret->priv->client = client;
+  ret->provider = BIJI_PROVIDER (provider);
+  ret->description = description;
+  ret->client = client;
   return BIJI_NOTE_OBJ (ret);
 }
+
diff --git a/src/libbiji/provider/biji-memo-note.h b/src/libbiji/provider/biji-memo-note.h
index f37929e..d8e24ac 100644
--- a/src/libbiji/provider/biji-memo-note.h
+++ b/src/libbiji/provider/biji-memo-note.h
@@ -17,50 +17,22 @@
 
 #pragma once
 
-#include <libecal/libecal.h>               /* ECalClient      */
-
+#include <libecal/libecal.h>
 #include "biji-note-obj.h"
 #include "biji-memo-provider.h"
 
-
 G_BEGIN_DECLS
 
-#define BIJI_TYPE_MEMO_NOTE             (biji_memo_note_get_type ())
-#define BIJI_MEMO_NOTE(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), BIJI_TYPE_MEMO_NOTE, 
BijiMemoNote))
-#define BIJI_MEMO_NOTE_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST ((klass), BIJI_TYPE_MEMO_NOTE, 
BijiMemoNoteClass))
-#define BIJI_IS_MEMO_NOTE(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BIJI_TYPE_MEMO_NOTE))
-#define BIJI_IS_MEMO_NOTE_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE ((klass), BIJI_TYPE_MEMO_NOTE))
-#define BIJI_MEMO_NOTE_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS ((obj), BIJI_TYPE_MEMO_NOTE, 
BijiMemoNoteClass))
-
-typedef struct _BijiMemoNoteClass BijiMemoNoteClass;
-typedef struct _BijiMemoNote BijiMemoNote;
-typedef struct _BijiMemoNotePrivate BijiMemoNotePrivate;
-
-
-struct _BijiMemoNote
-{
-    BijiNoteObj parent_instance;
-
-    BijiMemoNotePrivate *priv;
-};
-
+#define BIJI_TYPE_MEMO_NOTE (biji_memo_note_get_type())
 
-struct _BijiMemoNoteClass
-{
-    BijiNoteObjClass parent_class;
-};
-
-
-
-GType                  biji_memo_note_get_type               (void) G_GNUC_CONST;
-
-
-BijiNoteObj           *biji_memo_note_new_from_info          (BijiMemoProvider *provider,
-                                                              BijiManager      *manager,
-                                                              BijiInfoSet      *info,
-                                                              ECalComponent    *comp,
-                                                              const char       *description,
-                                                              ECalClient       *client);
+G_DECLARE_FINAL_TYPE (BijiMemoNote, biji_memo_note, BIJI, MEMO_NOTE, BijiNoteObj)
 
+BijiNoteObj *biji_memo_note_new_from_info (BijiMemoProvider *provider,
+                                           BijiManager      *manager,
+                                           BijiInfoSet      *info,
+                                           ECalComponent    *comp,
+                                           const char       *description,
+                                           ECalClient       *client);
 
 G_END_DECLS
+


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