diff options
-rw-r--r-- | mail/ChangeLog | 8 | ||||
-rw-r--r-- | mail/mail-account-editor.c | 24 | ||||
-rw-r--r-- | mail/mail-account-editor.h | 92 | ||||
-rw-r--r-- | mail/mail-config-druid.c | 16 | ||||
-rw-r--r-- | mail/mail-config-druid.glade | 18 | ||||
-rw-r--r-- | mail/mail-config-druid.glade.h | 1 |
6 files changed, 144 insertions, 15 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog index 804d042a0d..ee18f07213 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,5 +1,13 @@ 2001-01-05 Jeffrey Stedfast <fejj@helixcode.com> + * mail-account-editor.[c,h]: New source files to provide an + account editor widget. + + * mail-config-druid.c (auth_type_changed): Set the authproto on + the druid so we can look it up later. + +2001-01-05 Jeffrey Stedfast <fejj@helixcode.com> + * mail-accounts.c (mail_add): Since the druid now handles adding the new account to the config, we'll just connect to the destroy event and show the druid. diff --git a/mail/mail-account-editor.c b/mail/mail-account-editor.c new file mode 100644 index 0000000000..bb2de76318 --- /dev/null +++ b/mail/mail-account-editor.c @@ -0,0 +1,24 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ +/* + * Authors: Jeffrey Stedfast <fejj@helixcode.com> + * + * Copyright 2001 Helix Code, Inc. (www.helixcode.com) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA. + * + */ + +#include "mail-account-editor.h" + diff --git a/mail/mail-account-editor.h b/mail/mail-account-editor.h new file mode 100644 index 0000000000..bb84c86eb0 --- /dev/null +++ b/mail/mail-account-editor.h @@ -0,0 +1,92 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ +/* + * Authors: Jeffrey Stedfast <fejj@helixcode.com> + * + * Copyright 2001 Helix Code, Inc. (www.helixcode.com) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA. + * + */ + +#ifndef MAIL_ACCOUNT_EDITOR_H +#define MAIL_ACCOUNT_EDITOR_H + +#ifdef __cplusplus +extern "C" { +#pragma } +#endif /* __cplusplus */ + +#include <gnome.h> +#include <glade/glade.h> +#include <camel.h> +#include "mail-config.h" + +#define MAIL_ACCOUNT_EDITOR_TYPE (mail_account_editor_get_type ()) +#define MAIL_ACCOUNT_EDITOR(o) (GTK_CHECK_CAST ((o), MAIL_ACCOUNT_EDITOR_TYPE, MailAccountEditor)) +#define MAIL_ACCOUNT_EDITOR_CLASS(k) (GTK_CHECK_CLASS_CAST((k), MAIL_ACCOUNT_EDITOR_TYPE, MailAccountEditorClass)) +#define IS_MAIL_ACCOUNT_EDITOR(o) (GTK_CHECK_TYPE ((o), MAIL_ACCOUNT_EDITOR_TYPE)) +#define IS_MAIL_ACCOUNT_EDITOR_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), MAIL_ACCOUNT_EDITOR_TYPE)) + +struct _MailAccountEditor { + GnomeDialog parent; + + const MailConfigAccount *account; + + GladeXML *gui; + + GtkEntry *account_name; + GtkEntry *name; + GtkEntry *email; + GtkEntry *reply_to; + GtkEntry *organization; + GnomeFileEntry *signature; + + GtkEntry *source_type; + GtkEntry *source_host; + GtkEntry *source_user; + GtkEntry *source_passwd; + GtkCheckBox *save_passwd; + GtkOptionMenu *source_auth; + GtkCheckBox *source_ssl; + + GtkOptionMenu *transport_type; + GtkEntry *transport_host; + GtkOptionMenu *transport_auth; + GtkCheckBox *transport_ssl; + + GtkSpinButton *auto_mail_check; + GtkCheckBox *keep_on_server; + + const CamelProvider *transport; +}; + +typedef struct _MailAccountEditor MailAccountEditor; + +typedef struct { + GnomeDialogClass parent_class; + + /* signals */ + +} MailAccountEditorClass; + +GtkType mail_account_editor_get_type (void); + +MailAccountEditor *mail_account_editor_new (void); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* MAIL_ACCOUNT_EDITOR_H */ diff --git a/mail/mail-config-druid.c b/mail/mail-config-druid.c index b8f2bbbf8e..4c8ada2aa5 100644 --- a/mail/mail-config-druid.c +++ b/mail/mail-config-druid.c @@ -429,6 +429,8 @@ auth_type_changed (GtkWidget *widget, gpointer user_data) authtype = gtk_object_get_data (GTK_OBJECT (widget), "authtype"); + gtk_object_set_data (GTK_OBJECT (druid), "source_authmech", authtype->authproto); + if (authtype->need_password) sensitive = TRUE; else @@ -877,16 +879,18 @@ char * mail_config_druid_get_source_url (MailConfigDruid *druid) { char *source_url, *host, *pport; + const CamelProvider *provider; CamelURL *url; int port; g_return_val_if_fail (IS_MAIL_CONFIG_DRUID (druid), NULL); + provider = druid->source_provider; + url = g_new0 (CamelURL, 1); - /* FIXME: get the real protocol */ - url->protocol = g_strdup ("pop3"); + url->protocol = g_strdup (provider->protocol); url->user = g_strdup (gtk_entry_get_text (druid->incoming_username)); - url->authmech = g_strdup (druid->authmech); + url->authmech = g_strdup (gtk_object_get_data (GTK_OBJECT (druid), "source_authmech")); url->passwd = g_strdup (gtk_entry_get_text (druid->password)); host = g_strdup (gtk_entry_get_text (druid->incoming_hostname)); if (host && (pport = strchr (host, ':'))) { @@ -927,14 +931,16 @@ char * mail_config_druid_get_transport_url (MailConfigDruid *druid) { char *transport_url, *host, *pport; + const CamelProvider *provider; CamelURL *url; int port; g_return_val_if_fail (IS_MAIL_CONFIG_DRUID (druid), NULL); + provider = druid->transport_provider; + url = g_new0 (CamelURL, 1); - /* FIXME: get the real protocol */ - url->protocol = g_strdup ("smtp"); + url->protocol = g_strdup (provider->protocol); host = g_strdup (gtk_entry_get_text (druid->outgoing_hostname)); if (host && (pport = strchr (host, ':'))) { port = atoi (pport + 1); diff --git a/mail/mail-config-druid.glade b/mail/mail-config-druid.glade index 51bf799c71..03762ca4f4 100644 --- a/mail/mail-config-druid.glade +++ b/mail/mail-config-druid.glade @@ -19,7 +19,7 @@ <widget> <class>GtkWindow</class> - <name>mail-config-window</name> + <name>mail-config-druid</name> <visible>False</visible> <title>Mail Configuration Druid</title> <type>GTK_WINDOW_TOPLEVEL</type> @@ -1414,7 +1414,7 @@ Click "Finish" to save your settings.</text> <widget> <class>GnomeDialog</class> - <name>account-properties-dialog</name> + <name>mail-account-editor</name> <visible>False</visible> <title>Account Properties</title> <type>GTK_WINDOW_TOPLEVEL</type> @@ -2018,7 +2018,7 @@ Click "Finish" to save your settings.</text> <widget> <class>GtkCheckButton</class> - <name>chkIncomingSSL</name> + <name>chkSourceSSL</name> <sensitive>False</sensitive> <can_focus>True</can_focus> <label>This server requires a secure connection (SSL)</label> @@ -2042,7 +2042,7 @@ Click "Finish" to save your settings.</text> <widget> <class>GtkOptionMenu</class> - <name>omenuIncomingAuth</name> + <name>omenuSourceAuth</name> <can_focus>True</can_focus> <items>Plain Text Kerberos @@ -2172,12 +2172,12 @@ DIGEST-MD5 <widget> <class>GtkEntry</class> - <name>txtServerType</name> + <name>txtSourceType</name> <can_focus>True</can_focus> <editable>False</editable> <text_visible>True</text_visible> <text_max_length>0</text_max_length> - <text>IMAP</text> + <text></text> <child> <left_attach>3</left_attach> <right_attach>10</right_attach> @@ -2196,7 +2196,7 @@ DIGEST-MD5 <widget> <class>GtkEntry</class> - <name>txtIncomingServer</name> + <name>txtSourceHost</name> <can_focus>True</can_focus> <editable>True</editable> <text_visible>True</text_visible> @@ -2220,7 +2220,7 @@ DIGEST-MD5 <widget> <class>GtkEntry</class> - <name>txtUsername</name> + <name>txtSourceUsername</name> <can_focus>True</can_focus> <editable>True</editable> <text_visible>True</text_visible> @@ -2244,7 +2244,7 @@ DIGEST-MD5 <widget> <class>GtkEntry</class> - <name>txtPassword</name> + <name>txtSourcePassword</name> <can_focus>True</can_focus> <editable>True</editable> <text_visible>True</text_visible> diff --git a/mail/mail-config-druid.glade.h b/mail/mail-config-druid.glade.h index 0793e21fa5..6438c79349 100644 --- a/mail/mail-config-druid.glade.h +++ b/mail/mail-config-druid.glade.h @@ -68,7 +68,6 @@ gchar *s = N_("Type:"); gchar *s = N_("Hostname:"); gchar *s = N_("Username:"); gchar *s = N_("Password:"); -gchar *s = N_("IMAP"); gchar *s = N_("Authentication:"); gchar *s = N_("Outgoing Mail Server"); gchar *s = N_("This server requires a secure connection (SSL)"); |