[balsa/wip/gtk4: 173/351] address-book-extern: Declare it final
- From: Peter Bloomfield <peterb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [balsa/wip/gtk4: 173/351] address-book-extern: Declare it final
- Date: Wed, 23 May 2018 21:31:29 +0000 (UTC)
commit 467a81e7532b79f0938f1d3d10f54cc7e8ed9ed9
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date: Wed Feb 14 14:21:25 2018 -0500
address-book-extern: Declare it final
Use G_DECLARE_FINAL_TYPE for LibBalsaAddressBookExtern, take all members
private, and provide getters and setters for the load and save strings.
libbalsa/address-book-extern.c | 121 ++++++++++++++++++++++++---------------
libbalsa/address-book-extern.h | 44 ++++++---------
src/address-book-config.c | 12 ++--
3 files changed, 98 insertions(+), 79 deletions(-)
---
diff --git a/libbalsa/address-book-extern.c b/libbalsa/address-book-extern.c
index da6c8b7..36737b2 100644
--- a/libbalsa/address-book-extern.c
+++ b/libbalsa/address-book-extern.c
@@ -58,8 +58,8 @@
static LibBalsaAddressBookClass *parent_class = NULL;
-static void libbalsa_address_book_externq_class_init(LibBalsaAddressBookExternClass *klass);
-static void libbalsa_address_book_externq_init(LibBalsaAddressBookExtern *ab);
+static void libbalsa_address_book_extern_class_init(LibBalsaAddressBookExternClass *klass);
+static void libbalsa_address_book_extern_init(LibBalsaAddressBookExtern *ab);
static void libbalsa_address_book_externq_finalize(GObject * object);
static LibBalsaABErr libbalsa_address_book_externq_load(LibBalsaAddressBook* ab,
@@ -77,48 +77,39 @@ static LibBalsaABErr libbalsa_address_book_externq_modify_address(LibBalsaAddres
LibBalsaAddress *address,
LibBalsaAddress *newval);
-static void libbalsa_address_book_externq_save_config(LibBalsaAddressBook *ab,
+static void libbalsa_address_book_extern_save_config(LibBalsaAddressBook *ab,
const gchar * prefix);
static void libbalsa_address_book_externq_load_config(LibBalsaAddressBook *ab,
const gchar * prefix);
-static gboolean parse_externq_file(LibBalsaAddressBookExtern *addr_externq,
+static gboolean parse_extern_file(LibBalsaAddressBookExtern *addr_extern,
gchar *pattern,
void (*cb)(const gchar*,const gchar*,void*),
void *data);
-static GList *libbalsa_address_book_externq_alias_complete(LibBalsaAddressBook *ab,
+static GList *libbalsa_address_book_extern_alias_complete(LibBalsaAddressBook *ab,
const gchar * prefix);
-GType libbalsa_address_book_externq_get_type(void)
-{
- static GType address_book_externq_type = 0;
-
- if (!address_book_externq_type) {
- static const GTypeInfo address_book_externq_info = {
- sizeof(LibBalsaAddressBookExternClass),
- NULL, /* base_init */
- NULL, /* base_finalize */
- (GClassInitFunc) libbalsa_address_book_externq_class_init,
- NULL, /* class_finalize */
- NULL, /* class_data */
- sizeof(LibBalsaAddressBookExtern),
- 0, /* n_preallocs */
- (GInstanceInitFunc) libbalsa_address_book_externq_init
- };
-
- address_book_externq_type =
- g_type_register_static(LIBBALSA_TYPE_ADDRESS_BOOK,
- "LibBalsaAddressBookExtern",
- &address_book_externq_info, 0);
- }
+struct _LibBalsaAddressBookExternClass {
+ LibBalsaAddressBookClass parent_class;
+};
- return address_book_externq_type;
+struct _LibBalsaAddressBookExtern {
+ LibBalsaAddressBook parent;
-}
+ gchar *load;
+ gchar *save;
+
+ GList *address_list;
+
+ time_t mtime;
+};
+
+G_DEFINE_TYPE(LibBalsaAddressBookExtern, libbalsa_address_book_extern,
+ LIBBALSA_TYPE_ADDRESS_BOOK)
static void
-libbalsa_address_book_externq_class_init(LibBalsaAddressBookExternClass *
+libbalsa_address_book_extern_class_init(LibBalsaAddressBookExternClass *
klass)
{
LibBalsaAddressBookClass *address_book_class;
@@ -140,17 +131,17 @@ libbalsa_address_book_externq_class_init(LibBalsaAddressBookExternClass *
libbalsa_address_book_externq_modify_address;
address_book_class->save_config =
- libbalsa_address_book_externq_save_config;
+ libbalsa_address_book_extern_save_config;
address_book_class->load_config =
libbalsa_address_book_externq_load_config;
address_book_class->alias_complete =
- libbalsa_address_book_externq_alias_complete;
+ libbalsa_address_book_extern_alias_complete;
}
static void
-libbalsa_address_book_externq_init(LibBalsaAddressBookExtern * ab)
+libbalsa_address_book_extern_init(LibBalsaAddressBookExtern * ab)
{
ab->load = NULL;
ab->save = NULL;
@@ -161,13 +152,13 @@ libbalsa_address_book_externq_init(LibBalsaAddressBookExtern * ab)
static void
libbalsa_address_book_externq_finalize(GObject * object)
{
- LibBalsaAddressBookExtern *addr_externq;
+ LibBalsaAddressBookExtern *addr_extern;
- addr_externq = LIBBALSA_ADDRESS_BOOK_EXTERN(object);
+ addr_extern = LIBBALSA_ADDRESS_BOOK_EXTERN(object);
- g_free(addr_externq->load);
- g_free(addr_externq->save);
- g_list_free_full(addr_externq->address_list, g_object_unref);
+ g_free(addr_extern->load);
+ g_free(addr_extern->save);
+ g_list_free_full(addr_extern->address_list, g_object_unref);
G_OBJECT_CLASS(parent_class)->finalize(object);
}
@@ -203,7 +194,7 @@ lbe_load_cb(const gchar *email, const gchar *name, void *data)
struct lbe_load_data *d = (struct lbe_load_data*)data;
LibBalsaAddress *address = libbalsa_address_new();
- /* The externq database doesn't support Id's, sorry! */
+ /* The extern database doesn't support Id's, sorry! */
address->nick_name = g_strdup(_("No-Id"));
address->address_list = g_list_append(address->address_list,
g_strdup(email));
@@ -222,15 +213,15 @@ libbalsa_address_book_externq_load(LibBalsaAddressBook * ab,
{
gboolean rc = TRUE;
struct lbe_load_data data;
- LibBalsaAddressBookExtern *addr_externq = LIBBALSA_ADDRESS_BOOK_EXTERN(ab);
+ LibBalsaAddressBookExtern *addr_extern = LIBBALSA_ADDRESS_BOOK_EXTERN(ab);
/* Erase the current address list */
- libbalsa_clear_list(&addr_externq->address_list, g_object_unref);
+ libbalsa_clear_list(&addr_extern->address_list, g_object_unref);
if(callback) {
data.ab = ab;
data.callback = callback;
data.closure = closure;
- rc = parse_externq_file(addr_externq,
+ rc = parse_extern_file(addr_extern,
" ", lbe_load_cb, &data);
callback(ab, NULL, closure);
}
@@ -238,7 +229,7 @@ libbalsa_address_book_externq_load(LibBalsaAddressBook * ab,
}
static gboolean
-parse_externq_file(LibBalsaAddressBookExtern *addr_externq,
+parse_extern_file(LibBalsaAddressBookExtern *addr_extern,
gchar *pattern,
void (*cb)(const gchar *, const gchar *, void*),
void *data)
@@ -250,7 +241,7 @@ parse_externq_file(LibBalsaAddressBookExtern *addr_externq,
/* Start the program */
g_snprintf(command, sizeof(command), "%s \"%s\"",
- addr_externq->load, pattern);
+ addr_extern->load, pattern);
gc = popen(command,"r");
@@ -325,7 +316,7 @@ libbalsa_address_book_externq_modify_address(LibBalsaAddressBook *ab,
}
static void
-libbalsa_address_book_externq_save_config(LibBalsaAddressBook * ab,
+libbalsa_address_book_extern_save_config(LibBalsaAddressBook * ab,
const gchar * prefix)
{
LibBalsaAddressBookExtern *vc;
@@ -372,7 +363,7 @@ lbe_expand_cb(const gchar *email, const gchar *name, void *d)
}
static GList*
-libbalsa_address_book_externq_alias_complete(LibBalsaAddressBook * ab,
+libbalsa_address_book_extern_alias_complete(LibBalsaAddressBook * ab,
const gchar * prefix)
{
LibBalsaAddressBookExtern *ex;
@@ -385,10 +376,46 @@ libbalsa_address_book_externq_alias_complete(LibBalsaAddressBook * ab,
if (!libbalsa_address_book_get_expand_aliases(ab))
return NULL;
- if(!parse_externq_file(ex, (gchar *)prefix, lbe_expand_cb, &res))
+ if(!parse_extern_file(ex, (gchar *)prefix, lbe_expand_cb, &res))
return NULL;
res = g_list_reverse(res);
return res;
}
+
+/*
+ * Getters
+ */
+
+const gchar *
+libbalsa_address_book_extern_get_load(LibBalsaAddressBookExtern * addr_extern)
+{
+ return addr_extern->load;
+}
+
+const gchar *
+libbalsa_address_book_extern_get_save(LibBalsaAddressBookExtern * addr_extern)
+{
+ return addr_extern->save;
+}
+
+/*
+ * Setters
+ */
+
+void
+libbalsa_address_book_extern_set_load(LibBalsaAddressBookExtern * addr_extern,
+ const gchar * load)
+{
+ g_free(addr_extern->load);
+ addr_extern->load = g_strdup(load);
+}
+
+void
+libbalsa_address_book_extern_set_save(LibBalsaAddressBookExtern * addr_extern,
+ const gchar * save)
+{
+ g_free(addr_extern->save);
+ addr_extern->save = g_strdup(save);
+}
diff --git a/libbalsa/address-book-extern.h b/libbalsa/address-book-extern.h
index 5d137aa..e4e5281 100644
--- a/libbalsa/address-book-extern.h
+++ b/libbalsa/address-book-extern.h
@@ -28,36 +28,28 @@
#include "address-book.h"
#include <time.h>
-#define LIBBALSA_TYPE_ADDRESS_BOOK_EXTERN (libbalsa_address_book_externq_get_type())
-#define LIBBALSA_ADDRESS_BOOK_EXTERN(obj) (G_TYPE_CHECK_INSTANCE_CAST (obj,
LIBBALSA_TYPE_ADDRESS_BOOK_EXTERN, LibBalsaAddressBookExtern))
-#define LIBBALSA_ADDRESS_BOOK_EXTERN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST (klass,
LIBBALSA_TYPE_ADDRESS_BOOK_EXTERN, LibBalsaAddressBookExternClass))
-#define LIBBALSA_IS_ADDRESS_BOOK_EXTERN(obj) (G_TYPE_CHECK_INSTANCE_TYPE (obj,
LIBBALSA_TYPE_ADDRESS_BOOK_EXTERN))
-#define LIBBALSA_IS_ADDRESS_BOOK_EXTERN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE (klass,
LIBBALSA_TYPE_ADDRESS_BOOK_EXTERN))
-
-typedef struct _LibBalsaAddressBookExtern LibBalsaAddressBookExtern;
-typedef struct _LibBalsaAddressBookExternClass
- LibBalsaAddressBookExternClass;
-
-struct _LibBalsaAddressBookExtern {
- LibBalsaAddressBook parent;
-
- gchar *load;
- gchar *save;
-
- GList *address_list;
-
- time_t mtime;
-};
-
-struct _LibBalsaAddressBookExternClass {
- LibBalsaAddressBookClass parent_class;
-};
-
-GType libbalsa_address_book_externq_get_type(void);
+#define LIBBALSA_TYPE_ADDRESS_BOOK_EXTERN (libbalsa_address_book_extern_get_type())
+G_DECLARE_FINAL_TYPE(LibBalsaAddressBookExtern, libbalsa_address_book_extern,
+ LIBBALSA, ADDRESS_BOOK_EXTERN, LibBalsaAddressBook)
LibBalsaAddressBook *libbalsa_address_book_externq_new(const gchar * name,
const gchar * load,
const char * save);
+/*
+ * Getters
+ */
+const gchar
+ *libbalsa_address_book_extern_get_load(LibBalsaAddressBookExtern * addr_extern);
+const gchar
+ *libbalsa_address_book_extern_get_save(LibBalsaAddressBookExtern * addr_extern);
+
+/*
+ * Setters
+ */
+void libbalsa_address_book_extern_set_load(LibBalsaAddressBookExtern * addr_extern,
+ const gchar * load);
+void libbalsa_address_book_extern_set_save(LibBalsaAddressBookExtern * addr_extern,
+ const gchar * save);
#endif
diff --git a/src/address-book-config.c b/src/address-book-config.c
index fc91669..d113780 100644
--- a/src/address-book-config.c
+++ b/src/address-book-config.c
@@ -460,10 +460,10 @@ create_externq_dialog(AddressBookConfig * abc)
if (ab) {
gtk_file_chooser_set_filename(GTK_FILE_CHOOSER
(abc->ab_specific.externq.load),
- ab->load);
+ libbalsa_address_book_extern_get_load(ab));
gtk_file_chooser_set_filename(GTK_FILE_CHOOSER
(abc->ab_specific.externq.save),
- ab->save);
+ libbalsa_address_book_extern_get_save(ab));
}
dialog = create_generic_dialog(abc, "Extern");
@@ -800,12 +800,12 @@ modify_book(AddressBookConfig * abc)
externq = LIBBALSA_ADDRESS_BOOK_EXTERN(address_book);
if (load) {
- g_free(externq->load);
- externq->load = load;;
+ libbalsa_address_book_extern_set_load(externq, load);
+ g_free(load);
}
if (save) {
- g_free(externq->save);
- externq->save = save;
+ libbalsa_address_book_extern_set_save(externq, save);
+ g_free(save);
}
#ifdef ENABLE_LDAP
} else if (abc->type == LIBBALSA_TYPE_ADDRESS_BOOK_LDAP) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]