[balsa/wip/gtk4: 253/351] mailbox pop3: Declare it final



commit 347f024ed85f106ca9b6771fa0d6a374209709c8
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date:   Mon Mar 26 12:53:39 2018 -0400

    mailbox pop3: Declare it final
    
    Use G_DECLARE_FINAL_TYPE for LibBalsaMailboxPop3, make it
    private, and provide a complete set of getters and setters.

 libbalsa/mailbox_pop3.c             |  159 +++++++++++++++++++-----
 libbalsa/mailbox_pop3.h             |   62 +++++-----
 libinit_balsa/assistant_page_user.c |   10 +-
 src/mailbox-conf.c                  |  228 +++++++++++++++++++++++------------
 4 files changed, 312 insertions(+), 147 deletions(-)
---
diff --git a/libbalsa/mailbox_pop3.c b/libbalsa/mailbox_pop3.c
index 730a817..d61cec7 100644
--- a/libbalsa/mailbox_pop3.c
+++ b/libbalsa/mailbox_pop3.c
@@ -40,7 +40,6 @@
 enum {
     LAST_SIGNAL
 };
-static LibBalsaMailboxClass *parent_class = NULL;
 
 struct _LibBalsaMailboxPop3Class {
     LibBalsaMailboxRemoteClass klass;
@@ -48,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_class_init(LibBalsaMailboxPop3Class *
                                             klass);
 static void libbalsa_mailbox_pop3_init(LibBalsaMailboxPop3 * mailbox_pop3);
@@ -60,46 +73,25 @@ static void libbalsa_mailbox_pop3_save_config(LibBalsaMailbox * mailbox,
                                              const gchar * prefix);
 static void libbalsa_mailbox_pop3_load_config(LibBalsaMailbox * mailbox,
                                              const gchar * prefix);
+static void libbalsa_mailbox_pop3_finalize(GObject *object);
 
 
 #define MBOX_POP3_ERROR        (g_quark_from_static_string("mailbox-pop3"))
 
-
-GType
-libbalsa_mailbox_pop3_get_type(void)
-{
-    static GType mailbox_type = 0;
-
-    if (!mailbox_type) {
-       static const GTypeInfo mailbox_info = {
-           sizeof(LibBalsaMailboxPop3Class),
-            NULL,               /* base_init */
-            NULL,               /* base_finalize */
-           (GClassInitFunc) libbalsa_mailbox_pop3_class_init,
-            NULL,               /* class_finalize */
-            NULL,               /* class_data */
-           sizeof(LibBalsaMailboxPop3),
-            0,                  /* n_preallocs */
-           (GInstanceInitFunc) libbalsa_mailbox_pop3_init
-       };
-
-       mailbox_type =
-           g_type_register_static(LIBBALSA_TYPE_MAILBOX_REMOTE,
-                                   "LibBalsaMailboxPOP3",
-                                  &mailbox_info, 0);
-    }
-
-    return mailbox_type;
-}
+G_DEFINE_TYPE(LibBalsaMailboxPop3,
+              libbalsa_mailbox_pop3,
+              LIBBALSA_TYPE_MAILBOX_REMOTE)
 
 static void
 libbalsa_mailbox_pop3_class_init(LibBalsaMailboxPop3Class * klass)
 {
+    GObjectClass *object_class;
     LibBalsaMailboxClass *libbalsa_mailbox_class;
 
+    object_class = G_OBJECT_CLASS(klass);
     libbalsa_mailbox_class = LIBBALSA_MAILBOX_CLASS(klass);
 
-    parent_class = g_type_class_peek_parent(klass);
+    object_class->finalize = libbalsa_mailbox_pop3_finalize;
 
     libbalsa_mailbox_class->open_mailbox = libbalsa_mailbox_pop3_open;
     libbalsa_mailbox_class->check = libbalsa_mailbox_pop3_check;
@@ -126,6 +118,16 @@ libbalsa_mailbox_pop3_init(LibBalsaMailboxPop3 * mailbox_pop3)
     libbalsa_mailbox_remote_set_server(remote, libbalsa_server_new());
 }
 
+static void
+libbalsa_mailbox_pop3_finalize(GObject *object)
+{
+    LibBalsaMailboxPop3 *mailbox_pop3 = (LibBalsaMailboxPop3 *) object;
+
+    g_free(mailbox_pop3->filter_cmd);
+
+    G_OBJECT_CLASS(libbalsa_mailbox_pop3_parent_class)->finalize(object);
+}
+
 LibBalsaMailboxPop3*
 libbalsa_mailbox_pop3_new(void)
 {
@@ -719,8 +721,9 @@ libbalsa_mailbox_pop3_save_config(LibBalsaMailbox * mailbox,
     if(mailbox_pop3->filter_cmd)
         libbalsa_conf_set_string("FilterCmd", mailbox_pop3->filter_cmd);
 
-    if (LIBBALSA_MAILBOX_CLASS(parent_class)->save_config)
-       LIBBALSA_MAILBOX_CLASS(parent_class)->save_config(mailbox, prefix);
+    if (LIBBALSA_MAILBOX_CLASS(libbalsa_mailbox_pop3_parent_class)->save_config)
+       LIBBALSA_MAILBOX_CLASS(libbalsa_mailbox_pop3_parent_class)->
+            save_config(mailbox, prefix);
 
 }
 
@@ -746,8 +749,9 @@ libbalsa_mailbox_pop3_load_config(LibBalsaMailbox * mailbox,
        g_free(mailbox_pop3->filter_cmd); mailbox_pop3->filter_cmd = NULL;
     }
 
-    if (LIBBALSA_MAILBOX_CLASS(parent_class)->load_config)
-       LIBBALSA_MAILBOX_CLASS(parent_class)->load_config(mailbox, prefix);
+    if (LIBBALSA_MAILBOX_CLASS(libbalsa_mailbox_pop3_parent_class)->load_config)
+       LIBBALSA_MAILBOX_CLASS(libbalsa_mailbox_pop3_parent_class)->
+            load_config(mailbox, prefix);
 
 }
 void
@@ -760,12 +764,99 @@ libbalsa_mailbox_pop3_set_inbox(LibBalsaMailbox *mailbox,
 
     mailbox_pop3 = LIBBALSA_MAILBOX_POP3(mailbox);
 
-       mailbox_pop3->inbox=inbox;
+    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 1e345a2..adb8604 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 f34af91..1c99ef4 100644
--- a/libinit_balsa/assistant_page_user.c
+++ b/libinit_balsa/assistant_page_user.c
@@ -208,11 +208,11 @@ create_pop3_mbx(const gchar *name, const gchar* host, gint security,
     libbalsa_server_set_security(server, security);
     libbalsa_server_set_remember_passwd(server, remember);
     libbalsa_mailbox_set_name(mbx, name != NULL && name[0] != '\0' ? name : host);
-    pop->check              = TRUE;
-    pop->disable_apop       = FALSE;
-    pop->delete_from_server = TRUE;
-    pop->filter             = FALSE;
-    pop->filter_cmd         = g_strdup("procmail -f -");
+    libbalsa_mailbox_pop3_set_check(pop, TRUE);
+    libbalsa_mailbox_pop3_set_disable_apop(pop, FALSE);
+    libbalsa_mailbox_pop3_set_delete_from_server(pop, TRUE);
+    libbalsa_mailbox_pop3_set_filter(pop, FALSE);
+    libbalsa_mailbox_pop3_set_filter_cmd(pop, "procmail -f -");
     
     return mbx;
 }
diff --git a/src/mailbox-conf.c b/src/mailbox-conf.c
index eeae7a1..0480224 100644
--- a/src/mailbox-conf.c
+++ b/src/mailbox-conf.c
@@ -675,55 +675,86 @@ mailbox_conf_edit(BalsaMailboxNode * mbnode)
 }
 
 static void
-mailbox_conf_set_values_pop3(LibBalsaMailbox   *mailbox,
-                                                        MailboxConfWindow *mcw)
+mailbox_conf_set_values_pop3(LibBalsaMailbox * mailbox,
+                             MailboxConfWindow * mcw)
 {
-       LibBalsaMailboxPop3 *pop3;
-       LibBalsaServer *server;
-       gboolean sensitive;
-
-       pop3 = LIBBALSA_MAILBOX_POP3(mailbox);
-       server = LIBBALSA_MAILBOX_REMOTE_GET_SERVER(mailbox);
+    LibBalsaMailboxPop3 *pop3;
+    LibBalsaServer *server;
+    const gchar *filter_cmd;
+    gboolean sensitive;
 
-       /* basic settings */
-       if (libbalsa_server_get_host(server) != NULL) {
-               gtk_entry_set_text(GTK_ENTRY(mcw->mb_data.pop3.bsc.server), libbalsa_server_get_host(server));
-       }
-       gtk_combo_box_set_active(GTK_COMBO_BOX(mcw->mb_data.pop3.security), 
libbalsa_server_get_security(server) - 1);
+    pop3 = LIBBALSA_MAILBOX_POP3(mailbox);
+    server = LIBBALSA_MAILBOX_REMOTE_GET_SERVER(mailbox);
 
-       if (libbalsa_server_get_username(server) != NULL) {
-               gtk_entry_set_text(GTK_ENTRY(mcw->mb_data.pop3.username), 
libbalsa_server_get_username(server));
-       }
+    /* basic settings */
+    if (libbalsa_server_get_host(server) != NULL) {
+        gtk_entry_set_text(GTK_ENTRY(mcw->mb_data.pop3.bsc.server),
+                           libbalsa_server_get_host(server));
+    }
+    gtk_combo_box_set_active(GTK_COMBO_BOX(mcw->mb_data.pop3.security),
+                             libbalsa_server_get_security(server) - 1);
 
-       if (libbalsa_server_get_password(server) != NULL) {
-               gtk_entry_set_text(GTK_ENTRY(mcw->mb_data.pop3.password), 
libbalsa_server_get_password(server));
-       }
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(mcw->mb_data.pop3.delete_from_server), 
pop3->delete_from_server);
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(mcw->mb_data.pop3.check), pop3->check);
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(mcw->mb_data.pop3.filter), pop3->filter);
-       if (pop3->filter_cmd != NULL) {
-               gtk_entry_set_text(GTK_ENTRY(mcw->mb_data.pop3.filter_cmd), pop3->filter_cmd);
-       }
-       gtk_widget_set_sensitive(mcw->mb_data.pop3.filter_cmd, pop3->filter);
+    if (libbalsa_server_get_username(server) != NULL) {
+        gtk_entry_set_text(GTK_ENTRY(mcw->mb_data.pop3.username),
+                           libbalsa_server_get_username(server));
+    }
 
-       /* advanced settings */
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(mcw->mb_data.pop3.bsc.need_client_cert), 
libbalsa_server_get_client_cert(server));
-       sensitive = (libbalsa_server_get_security(server) != NET_CLIENT_CRYPT_NONE);
-       gtk_widget_set_sensitive(mcw->mb_data.pop3.bsc.need_client_cert, sensitive);
-       sensitive = sensitive & libbalsa_server_get_client_cert(server);
+    if (libbalsa_server_get_password(server) != NULL) {
+        gtk_entry_set_text(GTK_ENTRY(mcw->mb_data.pop3.password),
+                           libbalsa_server_get_password(server));
+    }
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
+                                 (mcw->mb_data.pop3.delete_from_server),
+                                 libbalsa_mailbox_pop3_get_delete_from_server
+                                 (pop3));
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
+                                 (mcw->mb_data.pop3.check),
+                                 libbalsa_mailbox_pop3_get_check(pop3));
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
+                                 (mcw->mb_data.pop3.filter),
+                                 libbalsa_mailbox_pop3_get_filter(pop3));
+
+    filter_cmd = libbalsa_mailbox_pop3_get_filter_cmd(pop3);
+    if (filter_cmd != NULL)
+        gtk_entry_set_text(GTK_ENTRY(mcw->mb_data.pop3.filter_cmd), filter_cmd);
+    gtk_widget_set_sensitive(mcw->mb_data.pop3.filter_cmd, filter_cmd != NULL);
+
+    /* advanced settings */
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
+                                 (mcw->mb_data.pop3.bsc.need_client_cert),
+                                 libbalsa_server_get_client_cert(server));
+    sensitive =
+        (libbalsa_server_get_security(server) != NET_CLIENT_CRYPT_NONE);
+    gtk_widget_set_sensitive(mcw->mb_data.pop3.bsc.need_client_cert,
+                             sensitive);
+    sensitive = sensitive & libbalsa_server_get_client_cert(server);
 
     if (libbalsa_server_get_cert_file(server) != NULL) {
-       gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(mcw->mb_data.pop3.bsc.client_cert_file), 
libbalsa_server_get_cert_file(server));
+        gtk_file_chooser_set_filename(GTK_FILE_CHOOSER
+                                      (mcw->mb_data.pop3.bsc.
+                                       client_cert_file),
+                                      libbalsa_server_get_cert_file
+                                      (server));
     }
-    gtk_widget_set_sensitive(mcw->mb_data.pop3.bsc.client_cert_file, sensitive);
+    gtk_widget_set_sensitive(mcw->mb_data.pop3.bsc.client_cert_file,
+                             sensitive);
 
-       if (libbalsa_server_get_cert_passphrase(server) != NULL) {
-               gtk_entry_set_text(GTK_ENTRY(mcw->mb_data.pop3.bsc.client_cert_passwd), 
libbalsa_server_get_cert_passphrase(server));
-       }
-       gtk_widget_set_sensitive(mcw->mb_data.pop3.bsc.client_cert_passwd, sensitive);
-
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(mcw->mb_data.pop3.disable_apop), pop3->disable_apop);
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(mcw->mb_data.pop3.enable_pipe), pop3->enable_pipe);
+    if (libbalsa_server_get_cert_passphrase(server) != NULL) {
+        gtk_entry_set_text(GTK_ENTRY
+                           (mcw->mb_data.pop3.bsc.client_cert_passwd),
+                           libbalsa_server_get_cert_passphrase(server));
+    }
+    gtk_widget_set_sensitive(mcw->mb_data.pop3.bsc.client_cert_passwd,
+                             sensitive);
+
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
+                                 (mcw->mb_data.pop3.disable_apop),
+                                 libbalsa_mailbox_pop3_get_disable_apop
+                                 (pop3));
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
+                                 (mcw->mb_data.pop3.enable_pipe),
+                                 libbalsa_mailbox_pop3_get_enable_pipe
+                                 (pop3));
 }
 
 
@@ -887,45 +918,86 @@ fill_in_imap_data(MailboxConfWindow *mcw, gchar ** name, gchar ** path)
  * Update a pop3 mailbox with details from the dialog
  */
 static void
-update_pop_mailbox(MailboxConfWindow *mcw)
+update_pop_mailbox(MailboxConfWindow * mcw)
 {
-       LibBalsaMailboxPop3 *mailbox;
-       LibBalsaServer *server;
-       BalsaServerConf *bsc;
-        gchar *filename;
-
-       mailbox = LIBBALSA_MAILBOX_POP3(mcw->mailbox);
-       server = LIBBALSA_MAILBOX_REMOTE_GET_SERVER(mailbox);
-       bsc = &mcw->mb_data.pop3.bsc;
-
-       /* basic data */
-        libbalsa_mailbox_set_name((LibBalsaMailbox *) mailbox,
-                                  gtk_entry_get_text(GTK_ENTRY(mcw->mailbox_name)));
-       libbalsa_server_set_host(server, gtk_entry_get_text(GTK_ENTRY(mcw->mb_data.pop3.bsc.server)), FALSE);
-        libbalsa_server_set_security(server, 
gtk_combo_box_get_active(GTK_COMBO_BOX(mcw->mb_data.pop3.security)) + 1);
-
-       libbalsa_server_set_username(server, gtk_entry_get_text(GTK_ENTRY(mcw->mb_data.pop3.username)));
-       libbalsa_server_set_password(server, gtk_entry_get_text(GTK_ENTRY(mcw->mb_data.pop3.password)));
-       libbalsa_server_config_changed(server);
-
-       mailbox->check = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(mcw->mb_data.pop3.check));
-       mailbox->delete_from_server = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON 
(mcw->mb_data.pop3.delete_from_server));
-       mailbox->filter = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(mcw->mb_data.pop3.filter));
-       g_free(mailbox->filter_cmd);
-       mailbox->filter_cmd =
-            gtk_editable_get_chars(GTK_EDITABLE(mcw->mb_data.pop3.filter_cmd), 0, -1);
-
-       /* advanced settings */
-        libbalsa_server_set_client_cert(server, 
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(bsc->need_client_cert)));
+    LibBalsaMailboxPop3 *mailbox;
+    LibBalsaServer *server;
+    BalsaServerConf *bsc;
+    gchar *filename;
+
+    mailbox = LIBBALSA_MAILBOX_POP3(mcw->mailbox);
+    server = LIBBALSA_MAILBOX_REMOTE_GET_SERVER(mailbox);
+    bsc = &mcw->mb_data.pop3.bsc;
+
+    /* basic data */
+    libbalsa_mailbox_set_name((LibBalsaMailbox *) mailbox,
+                              gtk_entry_get_text(GTK_ENTRY
+                                                 (mcw->mailbox_name)));
+    libbalsa_server_set_host(server,
+                             gtk_entry_get_text(GTK_ENTRY
+                                                (mcw->mb_data.pop3.bsc.
+                                                 server)), FALSE);
+    libbalsa_server_set_security(server,
+                                 gtk_combo_box_get_active(GTK_COMBO_BOX
+                                                          (mcw->mb_data.
+                                                           pop3.
+                                                           security)) + 1);
 
-        filename =
-            gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(bsc->client_cert_file));
-        libbalsa_server_set_cert_file(server, filename);
-        g_free(filename);
+    libbalsa_server_set_username(server,
+                                 gtk_entry_get_text(GTK_ENTRY
+                                                    (mcw->mb_data.pop3.
+                                                     username)));
+    libbalsa_server_set_password(server,
+                                 gtk_entry_get_text(GTK_ENTRY
+                                                    (mcw->mb_data.pop3.
+                                                     password)));
+    libbalsa_server_config_changed(server);
 
-        libbalsa_server_set_cert_passphrase(server, gtk_entry_get_text(GTK_ENTRY(bsc->client_cert_passwd)));
-       mailbox->disable_apop = 
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(mcw->mb_data.pop3.disable_apop));
-       mailbox->enable_pipe = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(mcw->mb_data.pop3.enable_pipe));
+    libbalsa_mailbox_pop3_set_check(mailbox,
+                                    gtk_toggle_button_get_active
+                                    (GTK_TOGGLE_BUTTON
+                                     (mcw->mb_data.pop3.check)));
+    libbalsa_mailbox_pop3_set_delete_from_server(mailbox,
+                                                 gtk_toggle_button_get_active
+                                                 (GTK_TOGGLE_BUTTON
+                                                  (mcw->mb_data.pop3.
+                                                   delete_from_server)));
+    libbalsa_mailbox_pop3_set_filter(mailbox,
+                                     gtk_toggle_button_get_active
+                                     (GTK_TOGGLE_BUTTON
+                                      (mcw->mb_data.pop3.filter)));
+    libbalsa_mailbox_pop3_set_filter_cmd(mailbox,
+                                         gtk_entry_get_text(GTK_ENTRY
+                                                            (mcw->mb_data.
+                                                             pop3.
+                                                             filter_cmd)));
+
+    /* advanced settings */
+    libbalsa_server_set_client_cert(server,
+                                    gtk_toggle_button_get_active
+                                    (GTK_TOGGLE_BUTTON
+                                     (bsc->need_client_cert)));
+
+    filename =
+        gtk_file_chooser_get_filename(GTK_FILE_CHOOSER
+                                      (bsc->client_cert_file));
+    libbalsa_server_set_cert_file(server, filename);
+    g_free(filename);
+
+    libbalsa_server_set_cert_passphrase(server,
+                                        gtk_entry_get_text(GTK_ENTRY
+                                                           (bsc->
+                                                            client_cert_passwd)));
+    libbalsa_mailbox_pop3_set_disable_apop(mailbox,
+                                           gtk_toggle_button_get_active
+                                           (GTK_TOGGLE_BUTTON
+                                            (mcw->mb_data.pop3.
+                                             disable_apop)));
+    libbalsa_mailbox_pop3_set_enable_pipe(mailbox,
+                                          gtk_toggle_button_get_active
+                                          (GTK_TOGGLE_BUTTON
+                                           (mcw->mb_data.pop3.
+                                            enable_pipe)));
 }
 
 /*


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