[balsa/wip/gtk4: 253/351] mailbox pop3: Declare it final
- From: Peter Bloomfield <peterb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [balsa/wip/gtk4: 253/351] mailbox pop3: Declare it final
- Date: Wed, 23 May 2018 21:38:14 +0000 (UTC)
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]