[balsa] mailbox-pop3: Declare it final



commit 99cf02a027627de3a72e78f6e01af473087d0415
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date:   Fri Jul 5 18:49:32 2019 -0400

    mailbox-pop3: Declare it final
    
    Use G_DECLARE_FINAL_TYPE to declare LibBalsaMailboxPOP3, make it
    private, and provide necessary getters and setters.
    
    * libbalsa/mailbox_pop3.c
      (libbalsa_mailbox_pop3_get_delete_from_server),
      (libbalsa_mailbox_pop3_get_check),
      (libbalsa_mailbox_pop3_get_filter),
      (libbalsa_mailbox_pop3_get_filter_cmd),
      (libbalsa_mailbox_pop3_get_disable_apop),
      (libbalsa_mailbox_pop3_get_enable_pipe),
      (libbalsa_mailbox_pop3_set_msg_size_limit),
      (libbalsa_mailbox_pop3_set_check),
      (libbalsa_mailbox_pop3_set_disable_apop),
      (libbalsa_mailbox_pop3_set_delete_from_server),
      (libbalsa_mailbox_pop3_set_filter),
      (libbalsa_mailbox_pop3_set_filter_cmd),
      (libbalsa_mailbox_pop3_set_enable_pipe):
    * libbalsa/mailbox_pop3.h:
    * libinit_balsa/assistant_page_user.c (create_pop3_mbx):
    * src/mailbox-conf.c (update_pop_mailbox),
      (create_pop_mailbox_dialog):

 ChangeLog                           |  26 ++++++++++
 libbalsa/mailbox_pop3.c             | 101 ++++++++++++++++++++++++++++++++++++
 libbalsa/mailbox_pop3.h             |  62 +++++++++++-----------
 libinit_balsa/assistant_page_user.c |  10 ++--
 src/mailbox-conf.c                  |  25 +++++----
 5 files changed, 176 insertions(+), 48 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index b94344ff5..10063e910 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,29 @@
+2019-07-05  Peter Bloomfield  <pbloomfield bellsouth net>
+
+       mailbox-pop3: Declare it final
+
+       Use G_DECLARE_FINAL_TYPE to declare LibBalsaMailboxPOP3, make it
+       private, and provide necessary getters and setters.
+
+       * libbalsa/mailbox_pop3.c
+       (libbalsa_mailbox_pop3_get_delete_from_server),
+       (libbalsa_mailbox_pop3_get_check),
+       (libbalsa_mailbox_pop3_get_filter),
+       (libbalsa_mailbox_pop3_get_filter_cmd),
+       (libbalsa_mailbox_pop3_get_disable_apop),
+       (libbalsa_mailbox_pop3_get_enable_pipe),
+       (libbalsa_mailbox_pop3_set_msg_size_limit),
+       (libbalsa_mailbox_pop3_set_check),
+       (libbalsa_mailbox_pop3_set_disable_apop),
+       (libbalsa_mailbox_pop3_set_delete_from_server),
+       (libbalsa_mailbox_pop3_set_filter),
+       (libbalsa_mailbox_pop3_set_filter_cmd),
+       (libbalsa_mailbox_pop3_set_enable_pipe):
+       * libbalsa/mailbox_pop3.h:
+       * libinit_balsa/assistant_page_user.c (create_pop3_mbx):
+       * src/mailbox-conf.c (update_pop_mailbox),
+       (create_pop_mailbox_dialog):
+
 2019-07-05  Peter Bloomfield  <pbloomfield bellsouth net>
 
        mailbox-imap: Declare it final
diff --git a/libbalsa/mailbox_pop3.c b/libbalsa/mailbox_pop3.c
index 06b810fdf..a270b2a3a 100644
--- a/libbalsa/mailbox_pop3.c
+++ b/libbalsa/mailbox_pop3.c
@@ -47,6 +47,20 @@ struct _LibBalsaMailboxPOP3Class {
     void (*config_changed) (LibBalsaMailboxPOP3 *mailbox_pop3);
 };
 
+struct _LibBalsaMailboxPOP3 {
+    LibBalsaMailboxRemote mailbox;
+
+    gboolean check;
+    gboolean delete_from_server;
+    gchar *filter_cmd;
+    LibBalsaMailbox *inbox;
+    gint msg_size_limit;
+    gboolean filter; /* filter through procmail/filter_cmd? */
+    gboolean disable_apop; /* Some servers claim to support it but
+                              * they do not. */
+    gboolean enable_pipe;  /* ditto */
+};
+
 static void libbalsa_mailbox_pop3_finalize(GObject * object);
 
 static gboolean libbalsa_mailbox_pop3_open(LibBalsaMailbox * mailbox,
@@ -763,9 +777,96 @@ libbalsa_mailbox_pop3_set_inbox(LibBalsaMailbox *mailbox,
     mailbox_pop3->inbox=inbox;
 }
 
+/*
+ * Getters
+ */
+
+gboolean
+libbalsa_mailbox_pop3_get_delete_from_server(LibBalsaMailboxPOP3 *mailbox_pop3)
+{
+    return mailbox_pop3->delete_from_server;
+}
+
+gboolean
+libbalsa_mailbox_pop3_get_check(LibBalsaMailboxPOP3 *mailbox_pop3)
+{
+    return mailbox_pop3->check;
+}
+
+gboolean
+libbalsa_mailbox_pop3_get_filter(LibBalsaMailboxPOP3 *mailbox_pop3)
+{
+    return mailbox_pop3->filter;
+}
+
+const gchar *
+libbalsa_mailbox_pop3_get_filter_cmd(LibBalsaMailboxPOP3 *mailbox_pop3)
+{
+    return mailbox_pop3->filter_cmd;
+}
+
+gboolean
+libbalsa_mailbox_pop3_get_disable_apop(LibBalsaMailboxPOP3 *mailbox_pop3)
+{
+    return mailbox_pop3->disable_apop;
+}
+
+gboolean
+libbalsa_mailbox_pop3_get_enable_pipe(LibBalsaMailboxPOP3 *mailbox_pop3)
+{
+    return mailbox_pop3->enable_pipe;
+ }
+
+/*
+ * Setters
+ */
+
 void
 libbalsa_mailbox_pop3_set_msg_size_limit(LibBalsaMailboxPOP3 *mailbox_pop3,
                                          gint sz_limit)
 {
     mailbox_pop3->msg_size_limit = sz_limit;
 }
+
+void
+libbalsa_mailbox_pop3_set_check(LibBalsaMailboxPOP3 *mailbox_pop3,
+                                gboolean check)
+{
+    mailbox_pop3->check = check;
+}
+
+void
+libbalsa_mailbox_pop3_set_disable_apop(LibBalsaMailboxPOP3 *mailbox_pop3,
+                                       gboolean disable_apop)
+{
+    mailbox_pop3->disable_apop = disable_apop;
+}
+
+void
+libbalsa_mailbox_pop3_set_delete_from_server(LibBalsaMailboxPOP3 *mailbox_pop3,
+                                             gboolean delete_from_server)
+{
+    mailbox_pop3->delete_from_server = delete_from_server;
+}
+
+void
+libbalsa_mailbox_pop3_set_filter(LibBalsaMailboxPOP3 *mailbox_pop3,
+                                 gboolean filter)
+{
+    mailbox_pop3->filter = filter;
+}
+
+void
+libbalsa_mailbox_pop3_set_filter_cmd(LibBalsaMailboxPOP3 *mailbox_pop3,
+                                     const gchar * filter_cmd)
+{
+    g_free(mailbox_pop3->filter_cmd);
+    mailbox_pop3->filter_cmd = g_strdup(filter_cmd);
+}
+
+void
+libbalsa_mailbox_pop3_set_enable_pipe(LibBalsaMailboxPOP3 *mailbox_pop3,
+                                             gboolean enable_pipe)
+{
+    mailbox_pop3->enable_pipe = enable_pipe;
+}
diff --git a/libbalsa/mailbox_pop3.h b/libbalsa/mailbox_pop3.h
index 4c2ed7f7a..e3e3e6e0a 100644
--- a/libbalsa/mailbox_pop3.h
+++ b/libbalsa/mailbox_pop3.h
@@ -21,42 +21,44 @@
 #ifndef __LIBBALSA_MAILBOX_POP3_H__
 #define __LIBBALSA_MAILBOX_POP3_H__
 
-#define LIBBALSA_TYPE_MAILBOX_POP3 \
-    (libbalsa_mailbox_pop3_get_type())
-#define LIBBALSA_MAILBOX_POP3(obj) \
-    (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBBALSA_TYPE_MAILBOX_POP3, \
-                                 LibBalsaMailboxPOP3))
-#define LIBBALSA_MAILBOX_POP3_CLASS(klass) \
-    (G_TYPE_CHECK_CLASS_CAST ((klass), LIBBALSA_TYPE_MAILBOX_POP3, \
-                              LibBalsaMailboxPOP3Class))
-#define LIBBALSA_IS_MAILBOX_POP3(obj) \
-    (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBBALSA_TYPE_MAILBOX_POP3))
-#define LIBBALSA_IS_MAILBOX_POP3_CLASS(klass) \
-    (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBBALSA_TYPE_MAILBOX_POP3))
+#define LIBBALSA_TYPE_MAILBOX_POP3 (libbalsa_mailbox_pop3_get_type())
 
-GType libbalsa_mailbox_pop3_get_type(void);
-
-typedef struct _LibBalsaMailboxPOP3 LibBalsaMailboxPOP3;
-typedef struct _LibBalsaMailboxPOP3Class LibBalsaMailboxPOP3Class;
-
-struct _LibBalsaMailboxPOP3 {
-    LibBalsaMailboxRemote mailbox;
-
-    gboolean check;
-    gboolean delete_from_server;
-    gchar *filter_cmd;
-    LibBalsaMailbox *inbox;
-    gint msg_size_limit;
-    gboolean filter; /* filter through procmail/filter_cmd? */
-    gboolean disable_apop; /* Some servers claim to support it but
-                              * they do not. */
-    gboolean enable_pipe;  /* ditto */
-};
+G_DECLARE_FINAL_TYPE(LibBalsaMailboxPOP3,
+                     libbalsa_mailbox_pop3,
+                     LIBBALSA,
+                     MAILBOX_POP3,
+                     LibBalsaMailboxRemote)
 
 LibBalsaMailboxPOP3 *libbalsa_mailbox_pop3_new(void);
 void libbalsa_mailbox_pop3_set_inbox(LibBalsaMailbox *mailbox,
                                      LibBalsaMailbox *inbox);
+
+/*
+ * Getters
+ */
+gboolean libbalsa_mailbox_pop3_get_delete_from_server(LibBalsaMailboxPOP3 *mailbox_pop3);
+gboolean libbalsa_mailbox_pop3_get_check(LibBalsaMailboxPOP3 *mailbox_pop3);
+gboolean libbalsa_mailbox_pop3_get_filter(LibBalsaMailboxPOP3 *mailbox_pop3);
+const gchar * libbalsa_mailbox_pop3_get_filter_cmd(LibBalsaMailboxPOP3 *mailbox_pop3);
+gboolean libbalsa_mailbox_pop3_get_disable_apop(LibBalsaMailboxPOP3 *mailbox_pop3);
+gboolean libbalsa_mailbox_pop3_get_enable_pipe(LibBalsaMailboxPOP3 *mailbox_pop3);
+
+/*
+ * Setters
+ */
 void libbalsa_mailbox_pop3_set_msg_size_limit(LibBalsaMailboxPOP3 *mailbox,
                                               gint sz_limit);
+void libbalsa_mailbox_pop3_set_check(LibBalsaMailboxPOP3 *mailbox_pop3,
+                                     gboolean check);
+void libbalsa_mailbox_pop3_set_disable_apop(LibBalsaMailboxPOP3 *mailbox_pop3,
+                                            gboolean disable_apop);
+void libbalsa_mailbox_pop3_set_delete_from_server(LibBalsaMailboxPOP3 *mailbox_pop3,
+                                             gboolean delete_from_server);
+void libbalsa_mailbox_pop3_set_filter(LibBalsaMailboxPOP3 *mailbox_pop3,
+                                 gboolean filter);
+void libbalsa_mailbox_pop3_set_filter_cmd(LibBalsaMailboxPOP3 *mailbox_pop3,
+                                     const gchar * filter_cmd);
+void libbalsa_mailbox_pop3_set_enable_pipe(LibBalsaMailboxPOP3 *mailbox_pop3,
+                                             gboolean enable_pipe);
 
 #endif                         /* __LIBBALSA_MAILBOX_POP3_H__ */
diff --git a/libinit_balsa/assistant_page_user.c b/libinit_balsa/assistant_page_user.c
index 66b11f96f..da91ff084 100644
--- a/libinit_balsa/assistant_page_user.c
+++ b/libinit_balsa/assistant_page_user.c
@@ -211,11 +211,11 @@ create_pop3_mbx(const gchar *name, const gchar* host, gint security,
     libbalsa_mailbox_set_name(mailbox, mailbox_name);
     g_free(mailbox_name);
 
-    mailbox_pop3->check              = TRUE;
-    mailbox_pop3->disable_apop       = FALSE;
-    mailbox_pop3->delete_from_server = TRUE;
-    mailbox_pop3->filter             = FALSE;
-    mailbox_pop3->filter_cmd         = g_strdup("procmail -f -");
+    libbalsa_mailbox_pop3_set_check(mailbox_pop3, TRUE);
+    libbalsa_mailbox_pop3_set_disable_apop(mailbox_pop3, FALSE);
+    libbalsa_mailbox_pop3_set_delete_from_server(mailbox_pop3, TRUE);
+    libbalsa_mailbox_pop3_set_filter(mailbox_pop3, FALSE);
+    libbalsa_mailbox_pop3_set_filter_cmd(mailbox_pop3, "procmail -f -");
 
     return mailbox;
 }
diff --git a/src/mailbox-conf.c b/src/mailbox-conf.c
index 94fc10944..874e3e5f6 100644
--- a/src/mailbox-conf.c
+++ b/src/mailbox-conf.c
@@ -501,15 +501,14 @@ update_pop_mailbox(MailboxConfWindow *mcw)
        libbalsa_server_cfg_assign_server(mcw->mb_data.pop3.server_cfg, server);
        libbalsa_server_config_changed(server);
 
-       mailbox_pop3->check = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(mcw->mb_data.pop3.check));
-       mailbox_pop3->delete_from_server = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON 
(mcw->mb_data.pop3.delete_from_server));
-       mailbox_pop3->filter = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(mcw->mb_data.pop3.filter));
-       g_free(mailbox_pop3->filter_cmd);
-       mailbox_pop3->filter_cmd = g_strdup(gtk_entry_get_text(GTK_ENTRY(mcw->mb_data.pop3.filter_cmd)));
+       libbalsa_mailbox_pop3_set_check(mailbox_pop3, 
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(mcw->mb_data.pop3.check)));
+       libbalsa_mailbox_pop3_set_delete_from_server(mailbox_pop3, 
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (mcw->mb_data.pop3.delete_from_server)));
+       libbalsa_mailbox_pop3_set_filter(mailbox_pop3, 
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(mcw->mb_data.pop3.filter)));
+       libbalsa_mailbox_pop3_set_filter_cmd(mailbox_pop3, 
gtk_entry_get_text(GTK_ENTRY(mcw->mb_data.pop3.filter_cmd)));
 
        /* advanced settings */
-       mailbox_pop3->disable_apop = 
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(mcw->mb_data.pop3.disable_apop));
-       mailbox_pop3->enable_pipe = 
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(mcw->mb_data.pop3.enable_pipe));
+       libbalsa_mailbox_pop3_set_disable_apop(mailbox_pop3, 
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(mcw->mb_data.pop3.disable_apop)));
+       libbalsa_mailbox_pop3_set_enable_pipe(mailbox_pop3, 
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(mcw->mb_data.pop3.enable_pipe)));
 }
 
 /* conf_update_mailbox:
@@ -802,25 +801,25 @@ create_pop_mailbox_dialog(MailboxConfWindow *mcw)
 
     /* toggle for deletion from server */
     mcw->mb_data.pop3.delete_from_server = libbalsa_server_cfg_add_check(mcw->mb_data.pop3.server_cfg, TRUE,
-       _("_Delete messages from server after download"), mailbox_pop3->delete_from_server, NULL, NULL);
+       _("_Delete messages from server after download"), 
libbalsa_mailbox_pop3_get_delete_from_server(mailbox_pop3), NULL, NULL);
 
     /* toggle for check */
     mcw->mb_data.pop3.check = libbalsa_server_cfg_add_check(mcw->mb_data.pop3.server_cfg, TRUE, _("_Enable 
check for new mail"),
-       mailbox_pop3->check, NULL, NULL);
+       libbalsa_mailbox_pop3_get_check(mailbox_pop3), NULL, NULL);
 
     /* Procmail */
     mcw->mb_data.pop3.filter = libbalsa_server_cfg_add_check(mcw->mb_data.pop3.server_cfg, TRUE,
-       _("_Filter messages through procmail"), mailbox_pop3->filter, G_CALLBACK(check_for_blank_fields), 
mcw);
+       _("_Filter messages through procmail"), libbalsa_mailbox_pop3_get_filter(mailbox_pop3), 
G_CALLBACK(check_for_blank_fields), mcw);
     mcw->mb_data.pop3.filter_cmd = libbalsa_server_cfg_add_entry(mcw->mb_data.pop3.server_cfg, TRUE, 
_("Fi_lter Command:"),
-       mailbox_pop3->filter_cmd, G_CALLBACK(check_for_blank_fields), mcw);
+       libbalsa_mailbox_pop3_get_filter_cmd(mailbox_pop3), G_CALLBACK(check_for_blank_fields), mcw);
 
     /* advanced - toggle for apop */
     mcw->mb_data.pop3.disable_apop = libbalsa_server_cfg_add_check(mcw->mb_data.pop3.server_cfg, FALSE, 
_("Disable _APOP"),
-       mailbox_pop3->disable_apop, NULL, NULL);
+       libbalsa_mailbox_pop3_get_disable_apop(mailbox_pop3), NULL, NULL);
 
     /* toggle for enabling pipeling */
     mcw->mb_data.pop3.enable_pipe = libbalsa_server_cfg_add_check(mcw->mb_data.pop3.server_cfg, FALSE, 
_("Overlap commands"),
-       mailbox_pop3->enable_pipe, NULL, NULL);
+       libbalsa_mailbox_pop3_get_enable_pipe(mailbox_pop3), NULL, NULL);
 
     /* initially call the check */
     check_for_blank_fields(NULL, mcw);


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