aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/em-account-editor.c39
-rw-r--r--mail/mail-config.glade368
-rw-r--r--modules/mail/e-mail-shell-settings.c12
-rw-r--r--modules/mail/em-mailer-prefs.c125
-rw-r--r--modules/mail/em-mailer-prefs.h9
-rw-r--r--plugins/bbdb/bbdb.c44
-rw-r--r--widgets/misc/e-charset-picker.c80
-rw-r--r--widgets/misc/e-charset-picker.h11
8 files changed, 368 insertions, 320 deletions
diff --git a/mail/em-account-editor.c b/mail/em-account-editor.c
index e25d0553cb..71a2457409 100644
--- a/mail/em-account-editor.c
+++ b/mail/em-account-editor.c
@@ -60,6 +60,7 @@
#include "widgets/misc/e-signature-editor.h"
#include "e-mail-local.h"
+#include "e-mail-store.h"
#include "em-config.h"
#include "em-folder-selection-button.h"
#include "em-account-editor.h"
@@ -191,6 +192,7 @@ struct _EMAccountEditorPrivate {
/* for druid page preparation */
guint identity_set:1;
guint receive_set:1;
+ guint send_set:1;
guint management_set:1;
};
@@ -3047,11 +3049,11 @@ emae_check_complete (EConfig *ec, const gchar *pageid, gpointer data)
const gchar *tmp;
EAccount *ea;
gboolean refresh = FALSE;
- gboolean edit;
+ gboolean new_account;
account = em_account_editor_get_modified_account (emae);
- original_account = em_account_editor_get_modified_account (emae);
- edit = (original_account != NULL);
+ original_account = em_account_editor_get_original_account (emae);
+ new_account = (original_account == NULL);
/* We use the page-check of various pages to 'prepare' or
pre-load their values, only in the druid */
@@ -3090,28 +3092,35 @@ emae_check_complete (EConfig *ec, const gchar *pageid, gpointer data)
index = check_servers (at);
gtk_entry_set_text (emae->priv->source.username, user);
gtk_entry_set_text (emae->priv->transport.username, user);
- if (!edit && uri && (url = camel_url_new (uri, NULL)) != NULL) {
+ if (new_account && uri && (url = camel_url_new (uri, NULL)) != NULL) {
refresh = TRUE;
- camel_url_set_protocol (url, mail_servers[index].proto);
- camel_url_set_param (url, "use_ssl", mail_servers[index].ssl);
- camel_url_set_host (url, mail_servers[index].recv);
camel_url_set_user (url, user);
- gtk_entry_set_text (emae->priv->source.hostname, mail_servers[index].recv);
- gtk_entry_set_text (emae->priv->transport.hostname, mail_servers[index].send);
+ if (index != -1) {
+ camel_url_set_protocol (url, mail_servers[index].proto);
+ camel_url_set_param (url, "use_ssl", mail_servers[index].ssl);
+ camel_url_set_host (url, mail_servers[index].recv);
+ gtk_entry_set_text (emae->priv->source.hostname, mail_servers[index].recv);
+ gtk_entry_set_text (emae->priv->transport.hostname, mail_servers[index].send);
+ } else {
+ camel_url_set_host (url, "");
+ }
+ g_free (uri);
uri = camel_url_to_string (url, 0);
e_account_set_string (account, E_ACCOUNT_SOURCE_URL, uri);
- g_free (uri);
camel_url_free (url);
}
+ g_free (uri);
}
} else if (!strcmp (pageid, "30.send")) {
+ if (!emae->priv->send_set) {
CamelURL *url;
gchar *at, *user;
gint index;
gchar *uri = (gchar *)e_account_get_string (account, E_ACCOUNT_TRANSPORT_URL);
+ emae->priv->send_set = 1;
tmp = e_account_get_string (account, E_ACCOUNT_ID_ADDRESS);
at = strchr (tmp, '@');
user = g_alloca (at-tmp+1);
@@ -3120,7 +3129,7 @@ emae_check_complete (EConfig *ec, const gchar *pageid, gpointer data)
at++;
index = check_servers (at);
- if (uri && (url = camel_url_new (uri, NULL)) != NULL) {
+ if (index != -1 && uri && (url = camel_url_new (uri, NULL)) != NULL) {
refresh = TRUE;
camel_url_set_protocol (url, "smtp");
camel_url_set_param (url, "use_ssl", mail_servers[index].ssl);
@@ -3130,9 +3139,8 @@ emae_check_complete (EConfig *ec, const gchar *pageid, gpointer data)
e_account_set_string (account, E_ACCOUNT_TRANSPORT_URL, uri);
g_free (uri);
camel_url_free (url);
- } else {
- g_warning ("buz2\n");
}
+ }
} else if (!strcmp (pageid, "20.receive_options")) {
if (emae->priv->source.provider
@@ -3223,15 +3231,12 @@ em_account_editor_check (EMAccountEditor *emae, const gchar *page)
static void
add_new_store (gchar *uri, CamelStore *store, gpointer user_data)
{
-#if 0 /* KILL-BONOBO: Try to actually fix this? */
- MailComponent *component = mail_component_peek ();
EAccount *account = user_data;
if (store == NULL)
return;
- mail_component_add_store (component, store, account->name);
-#endif
+ e_mail_store_add (store, account->name);
}
static void
diff --git a/mail/mail-config.glade b/mail/mail-config.glade
index 0124d086a3..e9fda21741 100644
--- a/mail/mail-config.glade
+++ b/mail/mail-config.glade
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<glade-interface>
<requires lib="gnome"/>
- <!-- interface-requires gnome 2301.3464 -->
+ <!-- interface-requires gnome 2298.56488 -->
<!-- interface-requires gtk+ 2.16 -->
<!-- interface-naming-policy toplevel-contextual -->
<widget class="GtkWindow" id="account_druid">
@@ -906,6 +906,7 @@ For example: "Work" or "Personal"</property>
<widget class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="stock">gtk-dialog-warning</property>
+ <property name="icon-size">4</property>
</widget>
<packing>
<property name="expand">False</property>
@@ -1354,6 +1355,7 @@ For example: "Work" or "Personal"</property>
<widget class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="stock">gtk-dialog-warning</property>
+ <property name="icon-size">4</property>
</widget>
<packing>
<property name="expand">False</property>
@@ -2360,7 +2362,7 @@ For example: "Work" or "Personal"</property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label2">
+ <widget class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">Encry_ption certificate:</property>
@@ -2404,13 +2406,14 @@ For example: "Work" or "Personal"</property>
<property name="xscale">0</property>
<property name="yscale">0</property>
<child>
- <widget class="GtkHBox" id="hbox2">
+ <widget class="GtkHBox" id="hbox1">
<property name="visible">True</property>
<property name="spacing">2</property>
<child>
<widget class="GtkImage" id="image3">
<property name="visible">True</property>
<property name="stock">gtk-open</property>
+ <property name="icon-size">4</property>
</widget>
<packing>
<property name="expand">False</property>
@@ -2459,6 +2462,7 @@ For example: "Work" or "Personal"</property>
<widget class="GtkImage" id="image10">
<property name="visible">True</property>
<property name="stock">gtk-clear</property>
+ <property name="icon-size">4</property>
</widget>
<packing>
<property name="expand">False</property>
@@ -2514,13 +2518,14 @@ For example: "Work" or "Personal"</property>
<property name="xscale">0</property>
<property name="yscale">0</property>
<child>
- <widget class="GtkHBox" id="hbox1">
+ <widget class="GtkHBox" id="hbox2">
<property name="visible">True</property>
<property name="spacing">2</property>
<child>
<widget class="GtkImage" id="image4">
<property name="visible">True</property>
<property name="stock">gtk-open</property>
+ <property name="icon-size">4</property>
</widget>
<packing>
<property name="expand">False</property>
@@ -2529,7 +2534,7 @@ For example: "Work" or "Personal"</property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label1">
+ <widget class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="label" translatable="yes">_Select...</property>
<property name="use_underline">True</property>
@@ -2569,6 +2574,7 @@ For example: "Work" or "Personal"</property>
<widget class="GtkImage" id="image9">
<property name="visible">True</property>
<property name="stock">gtk-clear</property>
+ <property name="icon-size">4</property>
</widget>
<packing>
<property name="expand">False</property>
@@ -2647,6 +2653,144 @@ For example: "Work" or "Personal"</property>
</widget>
</child>
</widget>
+ <widget class="GtkWindow" id="accounts_tab">
+ <property name="title" translatable="yes">Email Accounts</property>
+ <child>
+ <widget class="GtkHBox" id="toplevel">
+ <property name="visible">True</property>
+ <property name="spacing">6</property>
+ <child>
+ <widget class="Custom" id="etableMailAccounts">
+ <property name="visible">True</property>
+ <property name="creation_function">em_account_prefs_treeview_new</property>
+ </widget>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkVBox" id="vboxMailFunctions">
+ <property name="visible">True</property>
+ <property name="spacing">6</property>
+ <child>
+ <widget class="GtkVButtonBox" id="vbuttonboxMailAccounts">
+ <property name="visible">True</property>
+ <property name="spacing">6</property>
+ <property name="layout_style">start</property>
+ <child>
+ <widget class="GtkButton" id="cmdAccountAdd">
+ <property name="label">gtk-add</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_stock">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkButton" id="cmdAccountEdit">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="receives_default">False</property>
+ <child>
+ <widget class="GtkAlignment" id="alignment33">
+ <property name="visible">True</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <child>
+ <widget class="GtkHBox" id="hbox224">
+ <property name="visible">True</property>
+ <property name="spacing">2</property>
+ <child>
+ <widget class="GtkImage" id="image8">
+ <property name="visible">True</property>
+ <property name="stock">gtk-properties</property>
+ <property name="icon-size">4</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label557">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Edit</property>
+ <property name="use_underline">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkButton" id="cmdAccountDelete">
+ <property name="label">gtk-delete</property>
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_stock">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkButton" id="cmdAccountDefault">
+ <property name="label" translatable="yes">De_fault</property>
+ <property name="width_request">89</property>
+ <property name="height_request">36</property>
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_underline">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
<widget class="GtkWindow" id="preferences_tab">
<property name="title" translatable="yes">Mail Preferences</property>
<child>
@@ -3215,10 +3359,10 @@ For example: "Work" or "Personal"</property>
</packing>
</child>
<child>
- <widget class="GtkOptionMenu" id="omenuEmptyTrashDays">
+ <widget class="GtkComboBox" id="comboboxEmptyTrashDays">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="items" translatable="yes">a
+b</property>
</widget>
<packing>
<property name="expand">False</property>
@@ -3848,6 +3992,7 @@ For example: "Work" or "Personal"</property>
<widget class="GtkImage" id="plugin_image">
<property name="visible">True</property>
<property name="icon_name">gtk-info</property>
+ <property name="icon-size">4</property>
</widget>
<packing>
<property name="expand">False</property>
@@ -3894,10 +4039,10 @@ For example: "Work" or "Personal"</property>
</packing>
</child>
<child>
- <widget class="GtkOptionMenu" id="junk_empty_combo">
+ <widget class="GtkComboBox" id="junk_empty_combobox">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="items" translatable="yes">a
+b</property>
</widget>
<packing>
<property name="expand">False</property>
@@ -4041,6 +4186,7 @@ For example: "Work" or "Personal"</property>
<widget class="GtkImage" id="image11">
<property name="visible">True</property>
<property name="stock">gtk-info</property>
+ <property name="icon-size">4</property>
</widget>
<packing>
<property name="expand">False</property>
@@ -4114,7 +4260,7 @@ For example: "Work" or "Personal"</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<child>
- <widget class="GtkVBox" id="vboxGeneral1">
+ <widget class="GtkVBox" id="vboxGeneral">
<property name="visible">True</property>
<property name="border_width">12</property>
<property name="spacing">18</property>
@@ -4256,6 +4402,62 @@ For example: "Work" or "Personal"</property>
</packing>
</child>
<child>
+ <widget class="GtkAlignment" id="alignment25">
+ <property name="visible">True</property>
+ <property name="xalign">7.4505801528346183e-09</property>
+ <property name="xscale">0</property>
+ <child>
+ <widget class="GtkHBox" id="hboxReplyStyle">
+ <property name="visible">True</property>
+ <child>
+ <widget class="GtkComboBox" id="comboboxReplyStyle">
+ <property name="visible">True</property>
+ <property name="items" translatable="yes">Attachment
+Inline (Outlook style)
+Quoted
+Do not quote</property>
+ </widget>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHBox" id="hboxForwardStyle">
+ <property name="visible">True</property>
+ <child>
+ <widget class="GtkComboBox" id="comboboxForwardStyle">
+ <property name="visible">True</property>
+ <property name="items" translatable="yes">Attachment
+Inline
+Quoted</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options">GTK_FILL</property>
+ </packing>
+ </child>
+ <child>
<widget class="GtkOptionMenu" id="omenuCharset1">
<property name="visible">True</property>
<property name="can_focus">True</property>
@@ -4297,33 +4499,6 @@ For example: "Work" or "Personal"</property>
<property name="y_options"></property>
</packing>
</child>
- <child>
- <widget class="GtkComboBox" id="comboboxForwardStyle">
- <property name="visible">True</property>
- <property name="items" translatable="yes">Attachment
-Inline
-Quoted</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- </packing>
- </child>
- <child>
- <widget class="GtkComboBox" id="comboboxReplyStyle">
- <property name="visible">True</property>
- <property name="items" translatable="yes">Attachment
-Inline (Outlook style)
-Quoted
-Do Not Quote</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- </packing>
- </child>
</widget>
<packing>
<property name="position">5</property>
@@ -4481,7 +4656,7 @@ Do Not Quote</property>
</widget>
</child>
<child>
- <widget class="GtkLabel" id="lblGeneral1">
+ <widget class="GtkLabel" id="lblGeneral">
<property name="visible">True</property>
<property name="label" translatable="yes">General</property>
<property name="use_underline">True</property>
@@ -4508,6 +4683,7 @@ Do Not Quote</property>
<property name="label" translatable="yes">&lt;b&gt;Sig_natures&lt;/b&gt;</property>
<property name="use_markup">True</property>
<property name="use_underline">True</property>
+ <property name="mnemonic_widget">listSignatures</property>
</widget>
<packing>
<property name="expand">False</property>
@@ -4704,6 +4880,7 @@ Do Not Quote</property>
<property name="visible">True</property>
<property name="yalign">0</property>
<property name="stock">gtk-dialog-info</property>
+ <property name="icon-size">4</property>
</widget>
<packing>
<property name="expand">False</property>
@@ -4874,7 +5051,7 @@ Do Not Quote</property>
<widget class="GtkWindow" id="font_tab">
<property name="title" translatable="yes">Font Properties</property>
<child>
- <widget class="GtkVBox" id="toplevel1">
+ <widget class="GtkVBox" id="toplevel">
<property name="visible">True</property>
<property name="spacing">12</property>
<child>
@@ -5016,7 +5193,7 @@ Do Not Quote</property>
<property name="border_width">12</property>
<property name="spacing">6</property>
<child>
- <widget class="GtkHBox" id="hboxImageAndHelp1">
+ <widget class="GtkHBox" id="hboxImageAndHelp">
<property name="visible">True</property>
<property name="spacing">6</property>
<child>
@@ -5154,6 +5331,7 @@ for display purposes only. </property>
<widget class="GtkImage" id="image5">
<property name="visible">True</property>
<property name="stock">gtk-add</property>
+ <property name="icon-size">4</property>
</widget>
<packing>
<property name="expand">False</property>
@@ -5217,7 +5395,7 @@ for display purposes only. </property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<child>
- <widget class="GtkVBox" id="vboxGeneral2">
+ <widget class="GtkVBox" id="vboxGeneral">
<property name="visible">True</property>
<property name="border_width">12</property>
<property name="spacing">18</property>
@@ -5291,7 +5469,7 @@ for display purposes only. </property>
<property name="visible">True</property>
<property name="spacing">6</property>
<child>
- <widget class="GtkTable" id="table1">
+ <widget class="GtkTable" id="table8">
<property name="visible">True</property>
<property name="n_rows">4</property>
<property name="n_columns">4</property>
@@ -5326,21 +5504,6 @@ for display purposes only. </property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="lblSocksHost">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">S_OCKS Host:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">txtSocksHost</property>
- </widget>
- <packing>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
<widget class="GtkLabel" id="lblIgnoreHosts">
<property name="visible">True</property>
<property name="xalign">0</property>
@@ -5380,19 +5543,6 @@ for display purposes only. </property>
</packing>
</child>
<child>
- <widget class="GtkEntry" id="txtSocksHost">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
<widget class="GtkLabel" id="lblHttpPort">
<property name="visible">True</property>
<property name="xalign">0</property>
@@ -5421,21 +5571,6 @@ for display purposes only. </property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="lblSocksPort">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Port:</property>
- </widget>
- <packing>
- <property name="left_attach">2</property>
- <property name="right_attach">3</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
<widget class="GtkSpinButton" id="spnHttpPort">
<property name="visible">True</property>
<property name="can_focus">True</property>
@@ -5464,21 +5599,6 @@ for display purposes only. </property>
</packing>
</child>
<child>
- <widget class="GtkSpinButton" id="spnSocksPort">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="adjustment">0 0 65535 1 10 0</property>
- <property name="climb_rate">1</property>
- </widget>
- <packing>
- <property name="left_attach">3</property>
- <property name="right_attach">4</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
<widget class="GtkEntry" id="txtIgnoreHosts">
<property name="visible">True</property>
<property name="can_focus">True</property>
@@ -5491,6 +5611,18 @@ for display purposes only. </property>
<property name="y_options"></property>
</packing>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
<packing>
<property name="expand">False</property>
@@ -5589,36 +5721,6 @@ for display purposes only. </property>
<property name="position">3</property>
</packing>
</child>
- <child>
- <widget class="GtkRadioButton" id="rdoAutoConfig">
- <property name="label" translatable="yes">_Automatic proxy configuration URL:</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- <property name="group">rdoSysSettings</property>
- </widget>
- <packing>
- <property name="position">4</property>
- </packing>
- </child>
- <child>
- <widget class="GtkAlignment" id="alignment36">
- <property name="visible">True</property>
- <property name="left_padding">24</property>
- <child>
- <widget class="GtkEntry" id="txtAutoConfigUrl">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="position">5</property>
- </packing>
- </child>
</widget>
<packing>
<property name="expand">False</property>
@@ -5634,7 +5736,7 @@ for display purposes only. </property>
</widget>
</child>
<child>
- <widget class="GtkLabel" id="lblGeneral2">
+ <widget class="GtkLabel" id="lblGeneral">
<property name="visible">True</property>
<property name="label" translatable="yes">General</property>
</widget>
diff --git a/modules/mail/e-mail-shell-settings.c b/modules/mail/e-mail-shell-settings.c
index 8237924e3c..c7e3218191 100644
--- a/modules/mail/e-mail-shell-settings.c
+++ b/modules/mail/e-mail-shell-settings.c
@@ -155,6 +155,18 @@ e_mail_shell_settings_init (EShell *shell)
e_shell_settings_install_property (
g_param_spec_boolean (
+ "mail-empty-junk-on-exit",
+ NULL,
+ NULL,
+ FALSE,
+ G_PARAM_READWRITE));
+
+ e_shell_settings_bind_to_gconf (
+ shell_settings, "mail-empty-junk-on-exit",
+ "/apps/evolution/mail/junk/empty_on_exit");
+
+ e_shell_settings_install_property (
+ g_param_spec_boolean (
"mail-empty-trash-on-exit",
NULL,
NULL,
diff --git a/modules/mail/em-mailer-prefs.c b/modules/mail/em-mailer-prefs.c
index fa450dc2ee..6b550b1a55 100644
--- a/modules/mail/em-mailer-prefs.c
+++ b/modules/mail/em-mailer-prefs.c
@@ -602,81 +602,91 @@ charset_menu_init (EMMailerPrefs *prefs)
}
static void
-trash_days_activate (GtkWidget *item, EMMailerPrefs *prefs)
+trash_days_changed (GtkComboBox *combo_box,
+ EMMailerPrefs *prefs)
{
- gint days;
+ gint index;
+
+ index = gtk_combo_box_get_active (combo_box);
+ g_return_if_fail (index >= 0);
+ g_return_if_fail (index < G_N_ELEMENTS (empty_trash_frequency));
- days = GPOINTER_TO_INT (g_object_get_data ((GObject *) item, "days"));
- gconf_client_set_int (prefs->gconf, "/apps/evolution/mail/trash/empty_on_exit_days", days, NULL);
+ gconf_client_set_int (
+ prefs->gconf,
+ "/apps/evolution/mail/trash/empty_on_exit_days",
+ empty_trash_frequency[index].days, NULL);
}
static void
-emmp_empty_trash_init (EMMailerPrefs *prefs)
+emmp_empty_trash_init (EMMailerPrefs *prefs,
+ GtkComboBox *combo_box)
{
- gint locked, days, hist = 0, i;
- GtkWidget *menu, *item;
+ gint days, hist = 0, ii;
+ GtkTreeModel *model;
- days = gconf_client_get_int(prefs->gconf, "/apps/evolution/mail/trash/empty_on_exit_days", NULL);
- menu = gtk_menu_new();
- for (i = 0; i < G_N_ELEMENTS (empty_trash_frequency); i++) {
- if (days >= empty_trash_frequency[i].days)
- hist = i;
+ days = gconf_client_get_int (
+ prefs->gconf,
+ "/apps/evolution/mail/trash/empty_on_exit_days", NULL);
- item = gtk_menu_item_new_with_label (_(empty_trash_frequency[i].label));
- g_object_set_data ((GObject *) item, "days", GINT_TO_POINTER (empty_trash_frequency[i].days));
- g_signal_connect (item, "activate", G_CALLBACK (trash_days_activate), prefs);
+ model = gtk_combo_box_get_model (combo_box);
+ gtk_list_store_clear (GTK_LIST_STORE (model));
- gtk_widget_show (item);
- gtk_menu_shell_append((GtkMenuShell *)menu, item);
+ for (ii = 0; ii < G_N_ELEMENTS (empty_trash_frequency); ii++) {
+ if (days >= empty_trash_frequency[ii].days)
+ hist = ii;
+ gtk_combo_box_append_text (
+ combo_box, gettext (empty_trash_frequency[ii].label));
}
- gtk_widget_show(menu);
- gtk_option_menu_set_menu((GtkOptionMenu *)prefs->empty_trash_days, menu);
- gtk_option_menu_set_history((GtkOptionMenu *)prefs->empty_trash_days, hist);
+ g_signal_connect (
+ combo_box, "changed",
+ G_CALLBACK (trash_days_changed), prefs);
- locked = !gconf_client_key_is_writable (prefs->gconf, "/apps/evolution/mail/trash/empty_on_exit_days", NULL);
- gtk_widget_set_sensitive ((GtkWidget *) prefs->empty_trash_days, !locked);
+ gtk_combo_box_set_active (combo_box, hist);
}
static void
-junk_days_activate (GtkWidget *item, EMMailerPrefs *prefs)
+junk_days_changed (GtkComboBox *combo_box,
+ EMMailerPrefs *prefs)
{
- gint days;
+ gint index;
+
+ index = gtk_combo_box_get_active (combo_box);
+ g_return_if_fail (index >= 0);
+ g_return_if_fail (index < G_N_ELEMENTS (empty_trash_frequency));
- days = GPOINTER_TO_INT (g_object_get_data ((GObject *) item, "days"));
- gconf_client_set_int (prefs->gconf, "/apps/evolution/mail/junk/empty_on_exit_days", days, NULL);
+ gconf_client_set_int (
+ prefs->gconf,
+ "/apps/evolution/mail/junk/empty_on_exit_days",
+ empty_trash_frequency[index].days, NULL);
}
static void
-emmp_empty_junk_init (EMMailerPrefs *prefs)
+emmp_empty_junk_init (EMMailerPrefs *prefs,
+ GtkComboBox *combo_box)
{
- gint locked, days, hist = 0, i;
- GtkWidget *menu, *item;
-
- toggle_button_init (prefs, prefs->empty_junk, FALSE,
- "/apps/evolution/mail/junk/empty_on_exit",
- G_CALLBACK (toggle_button_toggled));
+ gint days, hist = 0, ii;
+ GtkTreeModel *model;
- days = gconf_client_get_int(prefs->gconf, "/apps/evolution/mail/junk/empty_on_exit_days", NULL);
- menu = gtk_menu_new();
- for (i = 0; i < G_N_ELEMENTS (empty_trash_frequency); i++) {
- if (days >= empty_trash_frequency[i].days)
- hist = i;
+ days = gconf_client_get_int (
+ prefs->gconf,
+ "/apps/evolution/mail/junk/empty_on_exit_days", NULL);
- item = gtk_menu_item_new_with_label (_(empty_trash_frequency[i].label));
- g_object_set_data ((GObject *) item, "days", GINT_TO_POINTER (empty_trash_frequency[i].days));
- g_signal_connect (item, "activate", G_CALLBACK (junk_days_activate), prefs);
+ model = gtk_combo_box_get_model (combo_box);
+ gtk_list_store_clear (GTK_LIST_STORE (model));
- gtk_widget_show (item);
- gtk_menu_shell_append((GtkMenuShell *)menu, item);
+ for (ii = 0; ii < G_N_ELEMENTS (empty_trash_frequency); ii++) {
+ if (days >= empty_trash_frequency[ii].days)
+ hist = ii;
+ gtk_combo_box_append_text (
+ combo_box, gettext (empty_trash_frequency[ii].label));
}
- gtk_widget_show(menu);
- gtk_option_menu_set_menu((GtkOptionMenu *)prefs->empty_junk_days, menu);
- gtk_option_menu_set_history((GtkOptionMenu *)prefs->empty_junk_days, hist);
+ g_signal_connect (
+ combo_box, "changed",
+ G_CALLBACK (junk_days_changed), prefs);
- locked = !gconf_client_key_is_writable (prefs->gconf, "/apps/evolution/mail/junk/empty_on_exit_days", NULL);
- gtk_widget_set_sensitive ((GtkWidget *) prefs->empty_junk_days, !locked);
+ gtk_combo_box_set_active (combo_box, hist);
}
static void
@@ -961,11 +971,11 @@ em_mailer_prefs_construct (EMMailerPrefs *prefs,
G_OBJECT (shell_settings), "mail-empty-trash-on-exit",
G_OBJECT (widget), "active");
- prefs->empty_trash_days = GTK_OPTION_MENU (glade_xml_get_widget (gui, "omenuEmptyTrashDays"));
+ widget = glade_xml_get_widget (gui, "comboboxEmptyTrashDays");
e_mutual_binding_new (
G_OBJECT (shell_settings), "mail-empty-trash-on-exit",
- G_OBJECT (prefs->empty_trash_days), "sensitive");
- emmp_empty_trash_init (prefs);
+ G_OBJECT (widget), "sensitive");
+ emmp_empty_trash_init (prefs, GTK_COMBO_BOX (widget));
widget = glade_xml_get_widget (gui, "chkConfirmExpunge");
e_mutual_binding_new (
@@ -1164,9 +1174,16 @@ em_mailer_prefs_construct (EMMailerPrefs *prefs,
G_OBJECT (shell_settings), "mail-check-for-junk",
G_OBJECT (widget), "active");
- prefs->empty_junk = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "junk_empty_check"));
- prefs->empty_junk_days = GTK_OPTION_MENU (glade_xml_get_widget (gui, "junk_empty_combo"));
- emmp_empty_junk_init (prefs);
+ widget = glade_xml_get_widget (gui, "junk_empty_check");
+ e_mutual_binding_new (
+ G_OBJECT (shell_settings), "mail-empty-junk-on-exit",
+ G_OBJECT (widget), "active");
+
+ widget = glade_xml_get_widget (gui, "junk_empty_combobox");
+ e_mutual_binding_new (
+ G_OBJECT (shell_settings), "mail-empty-junk-on-exit",
+ G_OBJECT (widget), "sensitive");
+ emmp_empty_junk_init (prefs, GTK_COMBO_BOX (widget));
prefs->default_junk_plugin = GTK_COMBO_BOX (glade_xml_get_widget (gui, "default_junk_plugin"));
prefs->plugin_status = GTK_LABEL (glade_xml_get_widget (gui, "plugin_status"));
diff --git a/modules/mail/em-mailer-prefs.h b/modules/mail/em-mailer-prefs.h
index b33e620392..e35c2085ab 100644
--- a/modules/mail/em-mailer-prefs.h
+++ b/modules/mail/em-mailer-prefs.h
@@ -71,11 +71,6 @@ struct _EMMailerPrefs {
GtkSpinButton *timeout;
GtkOptionMenu *charset;
- /* Deleting Mail */
- GtkToggleButton *empty_trash;
- GtkComboBox *empty_trash_days;
- GtkToggleButton *confirm_expunge;
-
/* HTML Mail tab */
GtkFontButton *font_variable;
GtkFontButton *font_fixed;
@@ -103,10 +98,6 @@ struct _EMMailerPrefs {
GtkTreeView *header_list;
GtkListStore *header_list_store;
- /* Junk prefs */
- GtkToggleButton *empty_junk;
- GtkComboBox *empty_junk_days;
-
GtkToggleButton *sa_local_tests_only;
GtkToggleButton *sa_use_daemon;
GtkComboBox *default_junk_plugin;
diff --git a/plugins/bbdb/bbdb.c b/plugins/bbdb/bbdb.c
index bb11ab9c6d..964be67565 100644
--- a/plugins/bbdb/bbdb.c
+++ b/plugins/bbdb/bbdb.c
@@ -51,8 +51,8 @@ struct bbdb_stuff {
EMConfigTargetPrefs *target;
ESourceList *source_list;
- GtkWidget *option_menu;
- GtkWidget *gaim_option_menu;
+ GtkWidget *combo_box;
+ GtkWidget *gaim_combo_box;
GtkWidget *check;
GtkWidget *check_gaim;
};
@@ -63,7 +63,7 @@ static void bbdb_do_it (EBook *book, const gchar *name, const gchar *email);
static void add_email_to_contact (EContact *contact, const gchar *email);
static void enable_toggled_cb (GtkWidget *widget, gpointer data);
static void source_changed_cb (ESourceComboBox *source_combo_box, struct bbdb_stuff *stuff);
-static GtkWidget *create_addressbook_option_menu (struct bbdb_stuff *stuff, gint type);
+static GtkWidget *create_addressbook_combo_box (struct bbdb_stuff *stuff, gint type);
static void cleanup_cb (GObject *o, gpointer data);
static ESource *
@@ -465,7 +465,7 @@ enable_toggled_cb (GtkWidget *widget, gpointer data)
/* Save the new setting to gconf */
gconf_client_set_bool (stuff->target->gconf, GCONF_KEY_ENABLE, active, NULL);
- gtk_widget_set_sensitive (stuff->option_menu, active);
+ gtk_widget_set_sensitive (stuff->combo_box, active);
addressbook = gconf_client_get_string (stuff->target->gconf, GCONF_KEY_WHICH_ADDRESSBOOK, NULL);
@@ -474,7 +474,7 @@ enable_toggled_cb (GtkWidget *widget, gpointer data)
GError *error = NULL;
selected_source = e_source_combo_box_get_active (
- E_SOURCE_COMBO_BOX (stuff->option_menu));
+ E_SOURCE_COMBO_BOX (stuff->combo_box));
if (selected_source != NULL)
uri = e_source_get_uri (selected_source);
@@ -505,10 +505,10 @@ enable_gaim_toggled_cb (GtkWidget *widget, gpointer data)
gconf_client_set_bool (stuff->target->gconf, GCONF_KEY_ENABLE_GAIM, active, NULL);
addressbook_gaim = gconf_client_get_string (stuff->target->gconf, GCONF_KEY_WHICH_ADDRESSBOOK_GAIM, NULL);
- gtk_widget_set_sensitive (stuff->gaim_option_menu, active);
+ gtk_widget_set_sensitive (stuff->gaim_combo_box, active);
if (active && !addressbook_gaim) {
selected_source = e_source_combo_box_get_active (
- E_SOURCE_COMBO_BOX (stuff->gaim_option_menu));
+ E_SOURCE_COMBO_BOX (stuff->gaim_combo_box));
gconf_client_set_string (stuff->target->gconf, GCONF_KEY_WHICH_ADDRESSBOOK_GAIM, e_source_get_uri (selected_source), NULL);
}
@@ -562,7 +562,7 @@ gaim_source_changed_cb (ESourceComboBox *source_combo_box,
}
static GtkWidget *
-create_addressbook_option_menu (struct bbdb_stuff *stuff, gint type)
+create_addressbook_combo_box (struct bbdb_stuff *stuff, gint type)
{
GtkWidget *combo_box;
ESourceList *source_list;
@@ -606,8 +606,8 @@ bbdb_page_factory (EPlugin *ep, EConfigHookItemFactoryData *hook_data)
GtkWidget *hbox;
GtkWidget *inner_vbox;
GtkWidget *check;
- GtkWidget *option;
- GtkWidget *gaim_option;
+ GtkWidget *combo_box;
+ GtkWidget *gaim_combo_box;
GtkWidget *check_gaim;
GtkWidget *label;
GtkWidget *gaim_label;
@@ -654,12 +654,12 @@ bbdb_page_factory (EPlugin *ep, EConfigHookItemFactoryData *hook_data)
label = gtk_label_new (_("Select Address book for Automatic Contacts"));
gtk_box_pack_start (GTK_BOX (inner_vbox), label, FALSE, FALSE, 0);
- /* Source selection option menu */
- option = create_addressbook_option_menu (stuff, AUTOMATIC_CONTACTS_ADDRESSBOOK);
- g_signal_connect (option, "changed", G_CALLBACK (source_changed_cb), stuff);
- gtk_widget_set_sensitive (option, gconf_client_get_bool (target->gconf, GCONF_KEY_ENABLE, NULL));
- gtk_box_pack_start (GTK_BOX (inner_vbox), option, FALSE, FALSE, 0);
- stuff->option_menu = option;
+ /* Source selection combo box */
+ combo_box = create_addressbook_combo_box (stuff, AUTOMATIC_CONTACTS_ADDRESSBOOK);
+ g_signal_connect (combo_box, "changed", G_CALLBACK (source_changed_cb), stuff);
+ gtk_widget_set_sensitive (combo_box, gconf_client_get_bool (target->gconf, GCONF_KEY_ENABLE, NULL));
+ gtk_box_pack_start (GTK_BOX (inner_vbox), combo_box, FALSE, FALSE, 0);
+ stuff->combo_box = combo_box;
/* "Instant Messaging Contacts" */
frame = gtk_vbox_new (FALSE, 6);
@@ -690,12 +690,12 @@ bbdb_page_factory (EPlugin *ep, EConfigHookItemFactoryData *hook_data)
gaim_label = gtk_label_new (_("Select Address book for Pidgin buddy list"));
gtk_box_pack_start (GTK_BOX (inner_vbox), gaim_label, FALSE, FALSE, 0);
- /* Gaim Source Selection Option Menu */
- gaim_option = create_addressbook_option_menu (stuff, GAIM_ADDRESSBOOK);
- g_signal_connect (gaim_option, "changed", G_CALLBACK (gaim_source_changed_cb), stuff);
- gtk_widget_set_sensitive (gaim_option, gconf_client_get_bool (target->gconf, GCONF_KEY_ENABLE_GAIM, NULL));
- gtk_box_pack_start (GTK_BOX (inner_vbox), gaim_option, FALSE, FALSE, 0);
- stuff->gaim_option_menu = gaim_option;
+ /* Gaim Source Selection Combo Box */
+ gaim_combo_box = create_addressbook_combo_box (stuff, GAIM_ADDRESSBOOK);
+ g_signal_connect (gaim_combo_box, "changed", G_CALLBACK (gaim_source_changed_cb), stuff);
+ gtk_widget_set_sensitive (gaim_combo_box, gconf_client_get_bool (target->gconf, GCONF_KEY_ENABLE_GAIM, NULL));
+ gtk_box_pack_start (GTK_BOX (inner_vbox), gaim_combo_box, FALSE, FALSE, 0);
+ stuff->gaim_combo_box = gaim_combo_box;
/* Synchronize now button. */
button = gtk_button_new_with_mnemonic (_("Synchronize with _buddy list now"));
diff --git a/widgets/misc/e-charset-picker.c b/widgets/misc/e-charset-picker.c
index 593df6b651..dedeebd844 100644
--- a/widgets/misc/e-charset-picker.c
+++ b/widgets/misc/e-charset-picker.c
@@ -107,7 +107,6 @@ static ECharset charsets[] = {
{ "ISO-8859-1", E_CHARSET_WESTERN_EUROPEAN, NULL },
{ "ISO-8859-15", E_CHARSET_WESTERN_EUROPEAN_NEW, NULL },
};
-static const gint num_charsets = sizeof (charsets) / sizeof (charsets[0]);
static void
select_item (GtkMenuShell *menu_shell, GtkWidget *item)
@@ -301,13 +300,13 @@ e_charset_picker_new (const gchar *default_charset)
if (!default_charset)
default_charset = locale_charset;
- for (def = 0; def < num_charsets; def++) {
+ for (def = 0; def < G_N_ELEMENTS (charsets); def++) {
if (!g_ascii_strcasecmp (charsets[def].name, default_charset))
break;
}
menu = gtk_menu_new ();
- for (i = 0; i < num_charsets; i++) {
+ for (i = 0; i < G_N_ELEMENTS (charsets); i++) {
item = add_charset (menu, &charsets[i], FALSE);
if (i == def) {
activate (item, menu);
@@ -318,7 +317,7 @@ e_charset_picker_new (const gchar *default_charset)
/* do the Unknown/Other section */
gtk_menu_shell_append (GTK_MENU_SHELL (menu), gtk_menu_item_new ());
- if (def == num_charsets) {
+ if (def == G_N_ELEMENTS (charsets)) {
ECharset other = { NULL, E_CHARSET_UNKNOWN, NULL };
/* Add an entry for @default_charset */
@@ -362,79 +361,6 @@ e_charset_picker_get_charset (GtkWidget *menu)
}
/**
- * e_charset_picker_dialog:
- * @title: title for the dialog box
- * @prompt: prompt string for the dialog box
- * @default_charset: as for e_charset_picker_new()
- * @parent: a parent window for the dialog box, or %NULL
- *
- * This creates a new dialog box with the given @title and @prompt and
- * a character set picker menu. It then runs the dialog and returns
- * the selected character set, or %NULL if the user clicked "Cancel".
- *
- * Return value: the selected character set (which must be freed with
- * g_free()), or %NULL.
- **/
-gchar *
-e_charset_picker_dialog (const gchar *title, const gchar *prompt,
- const gchar *default_charset, GtkWindow *parent)
-{
- GtkDialog *dialog;
- GtkWidget *label, *omenu, *picker, *vbox, *hbox;
- gchar *charset = NULL;
-
- dialog = GTK_DIALOG (gtk_dialog_new_with_buttons (title,
- parent,
- GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_OK, GTK_RESPONSE_OK,
- NULL));
-
- gtk_dialog_set_has_separator (dialog, FALSE);
- gtk_dialog_set_default_response (dialog, GTK_RESPONSE_OK);
-
- vbox = gtk_vbox_new (FALSE, 6);
- gtk_container_set_border_width (GTK_CONTAINER (vbox), 12);
- gtk_box_pack_start (GTK_BOX (dialog->vbox), vbox, FALSE, FALSE, 0);
- gtk_widget_show (vbox);
-
- label = gtk_label_new (prompt);
- gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
- gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
- gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
- gtk_widget_show (label);
-
- hbox = gtk_hbox_new (FALSE, 12);
- gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
- gtk_widget_show (hbox);
-
- label = gtk_label_new ("");
- gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
- gtk_widget_show (label);
-
- picker = e_charset_picker_new (default_charset);
- omenu = gtk_option_menu_new ();
- gtk_option_menu_set_menu (GTK_OPTION_MENU (omenu), picker);
- gtk_box_pack_start (GTK_BOX (hbox), omenu, TRUE, TRUE, 0);
- gtk_widget_show (omenu);
-
- gtk_container_set_border_width (GTK_CONTAINER (dialog->vbox), 0);
- gtk_container_set_border_width (GTK_CONTAINER (dialog->action_area), 12);
-
- gtk_widget_show_all (GTK_WIDGET (dialog));
-
- g_object_ref (dialog);
-
- if (gtk_dialog_run (dialog) == GTK_RESPONSE_OK)
- charset = e_charset_picker_get_charset (picker);
-
- gtk_widget_destroy (GTK_WIDGET (dialog));
- g_object_unref (dialog);
-
- return charset;
-}
-
-/**
* e_charset_add_radio_actions:
* @action_group: a #GtkActionGroup
* @action_prefix: a prefix for action names, or %NULL
diff --git a/widgets/misc/e-charset-picker.h b/widgets/misc/e-charset-picker.h
index e399cf788c..16f19e3509 100644
--- a/widgets/misc/e-charset-picker.h
+++ b/widgets/misc/e-charset-picker.h
@@ -18,8 +18,8 @@
*
*/
-#ifndef E_CHARSETPICKER_H
-#define E_CHARSETPICKER_H
+#ifndef E_CHARSET_PICKER_H
+#define E_CHARSET_PICKER_H
#include <gtk/gtk.h>
@@ -27,11 +27,6 @@ G_BEGIN_DECLS
GtkWidget * e_charset_picker_new (const gchar *default_charset);
gchar * e_charset_picker_get_charset (GtkWidget *picker);
-gchar * e_charset_picker_dialog (const gchar *title,
- const gchar *prompt,
- const gchar *default_charset,
- GtkWindow *parent);
-
GSList * e_charset_add_radio_actions (GtkActionGroup *action_group,
const gchar *action_prefix,
const gchar *default_charset,
@@ -40,4 +35,4 @@ GSList * e_charset_add_radio_actions (GtkActionGroup *action_group,
G_END_DECLS
-#endif /* E_CHARSETPICKER_H */
+#endif /* E_CHARSET_PICKER_H */