aboutsummaryrefslogtreecommitdiffstats
path: root/mail
diff options
context:
space:
mode:
Diffstat (limited to 'mail')
-rw-r--r--mail/e-searching-tokenizer.c78
-rw-r--r--mail/e-searching-tokenizer.h8
-rw-r--r--mail/em-account-editor.c88
-rw-r--r--mail/em-account-prefs.c150
-rw-r--r--mail/em-account-prefs.h16
-rw-r--r--mail/em-composer-prefs.c290
-rw-r--r--mail/em-composer-prefs.h26
-rw-r--r--mail/em-composer-utils.c474
-rw-r--r--mail/em-config.c8
-rw-r--r--mail/em-event.c14
-rw-r--r--mail/em-event.h2
-rw-r--r--mail/em-filter-context.c72
-rw-r--r--mail/em-filter-context.h2
-rw-r--r--mail/em-filter-editor.c30
-rw-r--r--mail/em-filter-folder-element.c46
-rw-r--r--mail/em-filter-folder-element.h2
-rw-r--r--mail/em-filter-rule.c136
-rw-r--r--mail/em-filter-rule.h2
-rw-r--r--mail/em-filter-source-element.c88
-rw-r--r--mail/em-folder-browser.c218
-rw-r--r--mail/em-folder-properties.c42
-rw-r--r--mail/em-folder-selection-button.c76
-rw-r--r--mail/em-folder-selection-button.h6
-rw-r--r--mail/em-folder-selection.c8
-rw-r--r--mail/em-folder-selector.c92
-rw-r--r--mail/em-folder-selector.h8
-rw-r--r--mail/em-folder-tree-model.c334
-rw-r--r--mail/em-folder-tree-model.h18
-rw-r--r--mail/em-folder-tree.c490
-rw-r--r--mail/em-folder-tree.h2
-rw-r--r--mail/em-folder-utils.c170
-rw-r--r--mail/em-folder-view.c296
-rw-r--r--mail/em-folder-view.h6
-rw-r--r--mail/em-format-hook.c4
-rw-r--r--mail/em-format-hook.h6
-rw-r--r--mail/em-format-html-display.c176
-rw-r--r--mail/em-format-html.c178
-rw-r--r--mail/em-format-html.h50
-rw-r--r--mail/em-format-quote.c102
-rw-r--r--mail/em-format.c220
-rw-r--r--mail/em-format.h68
-rw-r--r--mail/em-html-stream.c8
-rw-r--r--mail/em-html-stream.h2
-rw-r--r--mail/em-icon-stream.c10
-rw-r--r--mail/em-inline-filter.c26
-rw-r--r--mail/em-junk-hook.c50
-rw-r--r--mail/em-mailer-prefs.c388
-rw-r--r--mail/em-mailer-prefs.h24
-rw-r--r--mail/em-menu.c30
-rw-r--r--mail/em-message-browser.c42
-rw-r--r--mail/em-migrate.c642
-rw-r--r--mail/em-popup.c116
-rw-r--r--mail/em-popup.h38
-rw-r--r--mail/em-search-context.c12
-rw-r--r--mail/em-stripsig-filter.c26
-rw-r--r--mail/em-stripsig-filter.h4
-rw-r--r--mail/em-subscribe-editor.c50
-rw-r--r--mail/em-sync-stream.c12
-rw-r--r--mail/em-sync-stream.h2
-rw-r--r--mail/em-utils.c312
-rw-r--r--mail/em-vfolder-context.c12
-rw-r--r--mail/em-vfolder-context.h2
-rw-r--r--mail/em-vfolder-editor.c22
-rw-r--r--mail/em-vfolder-editor.h2
-rw-r--r--mail/em-vfolder-rule.c142
-rw-r--r--mail/em-vfolder-rule.h2
-rw-r--r--mail/em-vfs-stream.c12
-rw-r--r--mail/importers/elm-importer.c10
-rw-r--r--mail/importers/evolution-mbox-importer.c4
-rw-r--r--mail/importers/mail-importer.c26
-rw-r--r--mail/importers/pine-importer.c16
-rw-r--r--mail/mail-autofilter.c68
-rw-r--r--mail/mail-component-factory.c4
-rw-r--r--mail/mail-component.c178
-rw-r--r--mail/mail-component.h4
-rw-r--r--mail/mail-config-factory.c8
-rw-r--r--mail/mail-config.c340
-rw-r--r--mail/mail-crypto.c4
-rw-r--r--mail/mail-folder-cache.c98
-rw-r--r--mail/mail-folder-cache.h6
-rw-r--r--mail/mail-mt.c52
-rw-r--r--mail/mail-ops.c288
-rw-r--r--mail/mail-ops.h8
-rw-r--r--mail/mail-send-recv.c146
-rw-r--r--mail/mail-session.c110
-rw-r--r--mail/mail-session.h2
-rw-r--r--mail/mail-signature-editor.c104
-rw-r--r--mail/mail-tools.c74
-rw-r--r--mail/mail-tools.h8
-rw-r--r--mail/mail-types.h6
-rw-r--r--mail/mail-vfolder.c78
-rw-r--r--mail/message-list.c566
-rw-r--r--mail/message-list.h20
-rw-r--r--mail/message-tag-editor.c20
-rw-r--r--mail/message-tag-editor.h6
-rw-r--r--mail/message-tag-followup.c86
-rw-r--r--mail/message-tag-followup.h10
97 files changed, 4220 insertions, 4220 deletions
diff --git a/mail/e-searching-tokenizer.c b/mail/e-searching-tokenizer.c
index 9b508280e2..d10e5846dc 100644
--- a/mail/e-searching-tokenizer.c
+++ b/mail/e-searching-tokenizer.c
@@ -14,12 +14,12 @@
* This program is free software; you can redistribute it and/or
* modify it under the terms of version 2 of the GNU General Public
* License as published by the Free Software Foundation.
- *
+ *
* 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
@@ -41,7 +41,7 @@
#include "libedataserver/e-memory.h"
#include "libedataserver/e-msgport.h"
-#define d(x)
+#define d(x)
enum {
MATCH_SIGNAL,
@@ -144,7 +144,7 @@ loop:
r<<=1;
m<<=5;
} while (r & 0x40);
-
+
*ptr = p;
v &= ~m;
@@ -224,7 +224,7 @@ struct _trie {
EMemChunk *match_chunks;
};
-static void
+static void
dump_trie(struct _state *s, int d)
{
char *p = alloca(d*2+1);
@@ -232,7 +232,7 @@ dump_trie(struct _state *s, int d)
memset(p, ' ', d*2);
p[d*2]=0;
-
+
printf("%s[state] %p: %d fail->%p\n", p, s, s->final, s->fail);
m = s->matches;
while (m) {
@@ -359,7 +359,7 @@ build_trie(int nocase, int len, unsigned char **words)
q = q->next;
}
}
-
+
d(printf("After failure analysis\n"));
d(dump_trie(&trie->root, 0));
@@ -971,18 +971,18 @@ e_searching_tokenizer_finalise (GObject *obj)
{
ESearchingTokenizer *st = E_SEARCHING_TOKENIZER (obj);
struct _ESearchingTokenizerPrivate *p = st->priv;
-
+
search_info_free (p->primary);
search_info_free (p->secondary);
if (p->engine)
searcher_free(p->engine);
-
- /* again wtf?
+
+ /* again wtf?
shared_state_unref (st->priv->shared);
*/
-
+
g_free (p);
-
+
if (G_OBJECT_CLASS (parent_class)->finalize)
G_OBJECT_CLASS (parent_class)->finalize(obj);
}
@@ -992,9 +992,9 @@ e_searching_tokenizer_class_init (ESearchingTokenizerClass *klass)
{
GObjectClass *obj_class = (GObjectClass *) klass;
HTMLTokenizerClass *tok_class = HTML_TOKENIZER_CLASS (klass);
-
+
parent_class = g_type_class_ref (HTML_TYPE_TOKENIZER);
-
+
signals[MATCH_SIGNAL] =
g_signal_new ("match",
E_TYPE_SEARCHING_TOKENIZER,
@@ -1004,12 +1004,12 @@ e_searching_tokenizer_class_init (ESearchingTokenizerClass *klass)
NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
-
+
obj_class->finalize = e_searching_tokenizer_finalise;
-
+
tok_class->begin = e_searching_tokenizer_begin;
tok_class->end = e_searching_tokenizer_end;
-
+
tok_class->peek_token = e_searching_tokenizer_peek_token;
tok_class->next_token = e_searching_tokenizer_next_token;
tok_class->has_more = e_searching_tokenizer_has_more;
@@ -1026,7 +1026,7 @@ e_searching_tokenizer_init (ESearchingTokenizer *st)
p->primary = search_info_new();
search_info_set_flags(p->primary, SEARCH_BOLD, SEARCH_CASE|SEARCH_BOLD);
search_info_set_colour(p->primary, "red");
-
+
p->secondary = search_info_new();
search_info_set_flags(p->secondary, SEARCH_BOLD, SEARCH_CASE|SEARCH_BOLD);
search_info_set_colour(p->secondary, "purple");
@@ -1036,7 +1036,7 @@ GType
e_searching_tokenizer_get_type (void)
{
static GType type = 0;
-
+
if (!type) {
static const GTypeInfo info = {
sizeof (ESearchingTokenizerClass),
@@ -1047,10 +1047,10 @@ e_searching_tokenizer_get_type (void)
0,
(GInstanceInitFunc) e_searching_tokenizer_init,
};
-
+
type = g_type_register_static (HTML_TYPE_TOKENIZER, "ESearchingTokenizer", &info, 0);
}
-
+
return type;
}
@@ -1067,7 +1067,7 @@ e_searching_tokenizer_new (void)
static char *get_token(HTMLTokenizer *t)
{
HTMLTokenizerClass *klass = HTML_TOKENIZER_CLASS (parent_class);
-
+
return klass->has_more(t) ? klass->next_token(t) : NULL;
}
@@ -1132,19 +1132,19 @@ e_searching_tokenizer_next_token (HTMLTokenizer *tok)
ESearchingTokenizer *st = E_SEARCHING_TOKENIZER (tok);
int oldmatched;
char *token;
-
+
/* If no search is active, just use the default method. */
if (st->priv->engine == NULL)
return HTML_TOKENIZER_CLASS (parent_class)->next_token (tok);
-
+
oldmatched = st->priv->engine->matchcount;
-
+
token = searcher_next_token(st->priv->engine);
/* not sure if this has to be accurate or just say we had some matches */
if (oldmatched != st->priv->engine->matchcount)
g_signal_emit (st, signals[MATCH_SIGNAL], 0);
-
+
return token;
}
@@ -1170,22 +1170,22 @@ e_searching_tokenizer_clone (HTMLTokenizer *tok)
{
ESearchingTokenizer *orig_st = E_SEARCHING_TOKENIZER (tok);
ESearchingTokenizer *new_st = E_SEARCHING_TOKENIZER (e_searching_tokenizer_new ());
-
+
search_info_free(new_st->priv->primary);
search_info_free(new_st->priv->secondary);
-
+
new_st->priv->primary = search_info_clone(orig_st->priv->primary);
new_st->priv->secondary = search_info_clone(orig_st->priv->secondary);
-
+
/* what the fucking what???? */
#if 0
shared_state_ref (orig_st->priv->shared);
shared_state_unref (new_st->priv->shared);
new_st->priv->shared = orig_st->priv->shared;
#endif
-
+
g_signal_connect_swapped (new_st, "match", G_CALLBACK(matched), orig_st);
-
+
return HTML_TOKENIZER (new_st);
}
/* ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** */
@@ -1194,7 +1194,7 @@ void
e_searching_tokenizer_set_primary_search_string (ESearchingTokenizer *st, const gchar *search_str)
{
g_return_if_fail (st && E_IS_SEARCHING_TOKENIZER (st));
-
+
search_info_clear(st->priv->primary);
search_info_add_string(st->priv->primary, search_str);
}
@@ -1203,7 +1203,7 @@ void
e_searching_tokenizer_add_primary_search_string (ESearchingTokenizer *st, const gchar *search_str)
{
g_return_if_fail (st && E_IS_SEARCHING_TOKENIZER (st));
-
+
search_info_add_string(st->priv->primary, search_str);
}
@@ -1211,7 +1211,7 @@ void
e_searching_tokenizer_set_primary_case_sensitivity (ESearchingTokenizer *st, gboolean iscase)
{
g_return_if_fail (st && E_IS_SEARCHING_TOKENIZER (st));
-
+
search_info_set_flags(st->priv->primary, iscase?SEARCH_CASE:0, SEARCH_CASE);
}
@@ -1219,7 +1219,7 @@ void
e_searching_tokenizer_set_secondary_search_string (ESearchingTokenizer *st, const gchar *search_str)
{
g_return_if_fail (st && E_IS_SEARCHING_TOKENIZER (st));
-
+
search_info_clear(st->priv->secondary);
search_info_add_string(st->priv->secondary, search_str);
}
@@ -1228,7 +1228,7 @@ void
e_searching_tokenizer_add_secondary_search_string (ESearchingTokenizer *st, const gchar *search_str)
{
g_return_if_fail (st && E_IS_SEARCHING_TOKENIZER (st));
-
+
search_info_add_string(st->priv->secondary, search_str);
}
@@ -1236,7 +1236,7 @@ void
e_searching_tokenizer_set_secondary_case_sensitivity (ESearchingTokenizer *st, gboolean iscase)
{
g_return_if_fail (st && E_IS_SEARCHING_TOKENIZER (st));
-
+
search_info_set_flags(st->priv->secondary, iscase?SEARCH_CASE:0, SEARCH_CASE);
}
@@ -1245,9 +1245,9 @@ gint
e_searching_tokenizer_match_count (ESearchingTokenizer *st)
{
g_return_val_if_fail (E_IS_SEARCHING_TOKENIZER (st), -1);
-
+
if (st->priv->engine && st->priv->primary->strv->len)
return st->priv->engine->matchcount;
-
+
return 0;
}
diff --git a/mail/e-searching-tokenizer.h b/mail/e-searching-tokenizer.h
index 96aa39640c..9b690d1f46 100644
--- a/mail/e-searching-tokenizer.h
+++ b/mail/e-searching-tokenizer.h
@@ -12,12 +12,12 @@
* This program is free software; you can redistribute it and/or
* modify it under the terms of version 2 of the GNU General Public
* License as published by the Free Software Foundation.
- *
+ *
* 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
@@ -43,13 +43,13 @@ struct _ESearchingTokenizerPrivate;
struct _ESearchingTokenizer {
HTMLTokenizer parent;
-
+
struct _ESearchingTokenizerPrivate *priv;
};
struct _ESearchingTokenizerClass {
HTMLTokenizerClass parent_class;
-
+
void (*match) (ESearchingTokenizer *);
};
diff --git a/mail/em-account-editor.c b/mail/em-account-editor.c
index d748750bde..a15d6f877a 100644
--- a/mail/em-account-editor.c
+++ b/mail/em-account-editor.c
@@ -153,17 +153,17 @@ typedef struct _EMAccountEditorPrivate {
guint sig_removed_id;
guint sig_changed_id;
const char *sig_uid;
-
+
/* incoming mail */
EMAccountEditorService source;
-
+
/* extra incoming config */
CamelProvider *extra_provider;
GSList *extra_items; /* this is freed by the econfig automatically */
/* outgoing mail */
EMAccountEditorService transport;
-
+
/* account management */
GtkEntry *identity_entries[5];
struct _GtkToggleButton *default_account;
@@ -275,14 +275,14 @@ em_account_editor_get_type(void)
/**
* em_account_editor_new:
- * @account:
- * @type:
- *
+ * @account:
+ * @type:
+ *
* Create a new account editor. If @account is NULL then this is to
* create a new account, else @account is copied to a working
* structure and is for editing an existing account.
- *
- * Return value:
+ *
+ * Return value:
**/
EMAccountEditor *em_account_editor_new(EAccount *account, em_account_editor_t type, char *id)
{
@@ -320,12 +320,12 @@ is_email (const char *address)
/* This is supposed to check if the address's domain could be
an FQDN but alas, it's not worth the pain and suffering. */
const char *at;
-
+
at = strchr (address, '@');
/* make sure we have an '@' and that it's not the first or last char */
if (!at || at == address || *(at + 1) == '\0')
return FALSE;
-
+
return TRUE;
}
@@ -391,7 +391,7 @@ emae_display_license(EMAccountEditor *emae, CamelProvider *prov)
char *tmp;
GtkResponseType response = GTK_RESPONSE_NONE;
char *gladefile;
-
+
gladefile = g_build_filename (EVOLUTION_GLADEDIR,
"mail-dialogs.glade",
NULL);
@@ -407,8 +407,8 @@ emae_display_license(EMAccountEditor *emae, CamelProvider *prov)
g_signal_connect(glade_xml_get_widget(xml, "license_checkbutton"),
"toggled", G_CALLBACK(emae_license_state), dialog);
- tmp = g_strdup_printf(_("\nPlease read carefully the license agreement\n"
- "for %s displayed below\n"
+ tmp = g_strdup_printf(_("\nPlease read carefully the license agreement\n"
+ "for %s displayed below\n"
"and tick the check box for accepting it\n"), prov->license);
gtk_label_set_text((GtkLabel *)glade_xml_get_widget(xml, "license_top_label"), tmp);
g_free(tmp);
@@ -424,7 +424,7 @@ emae_display_license(EMAccountEditor *emae, CamelProvider *prov)
gtk_widget_destroy(dialog);
g_object_unref(xml);
-
+
return (response == GTK_RESPONSE_ACCEPT);
}
@@ -438,14 +438,14 @@ emae_check_license(EMAccountEditor *emae, CamelProvider *prov)
GSList *providers_list, *l;
providers_list = gconf_client_get_list (gconf, "/apps/evolution/mail/licenses", GCONF_VALUE_STRING, NULL);
-
+
for (l = providers_list, accepted = FALSE; l && !accepted; l = g_slist_next(l))
accepted = (strcmp((char *)l->data, prov->protocol) == 0);
if (!accepted
&& (accepted = emae_display_license(emae, prov)) == TRUE) {
providers_list = g_slist_append(providers_list, g_strdup(prov->protocol));
- gconf_client_set_list(gconf,
+ gconf_client_set_list(gconf,
"/apps/evolution/mail/licenses",
GCONF_VALUE_STRING,
providers_list, NULL);
@@ -463,7 +463,7 @@ default_folders_clicked (GtkButton *button, gpointer user_data)
{
EMAccountEditor *emae = user_data;
const char *uri;
-
+
uri = mail_component_get_folder_uri(NULL, MAIL_COMPONENT_FOLDER_DRAFTS);
em_folder_selection_button_set_selection((EMFolderSelectionButton *)emae->priv->drafts_folder_button, uri);
emae_account_folder_changed((EMFolderSelectionButton *)emae->priv->drafts_folder_button, emae);
@@ -771,7 +771,7 @@ emae_setup_receipt_policy (EMAccountEditor *emae, GladeXML *xml)
EAccountReceiptPolicy current = emae->account->receipt_policy;
static struct {
EAccountReceiptPolicy policy;
- char *label;
+ char *label;
} receipt_policies[] = {
{ E_ACCOUNT_RECEIPT_NEVER, N_("Never") },
{ E_ACCOUNT_RECEIPT_ALWAYS, N_("Always") },
@@ -789,9 +789,9 @@ emae_setup_receipt_policy (EMAccountEditor *emae, GladeXML *xml)
1, receipt_policies[i].policy,
-1);
if (current == receipt_policies[i].policy)
- active = i;
+ active = i;
}
-
+
gtk_combo_box_set_model(dropdown, (GtkTreeModel *)store);
gtk_combo_box_set_active(dropdown, active);
@@ -1021,7 +1021,7 @@ emae_url_set_hostport(CamelURL *url, const char *txt)
{
const char *port;
char *host;
-
+
/* FIXME: what if this was a raw IPv6 address? */
if (txt && (port = strchr(txt, ':'))) {
camel_url_set_port(url, atoi(port+1));
@@ -1174,16 +1174,16 @@ emae_service_url_path_changed(EMAccountEditorService *service, void (*setval)(Ca
GtkTreeModel *model;
GtkTreeIter iter;
CamelServiceAuthType *authtype;
-
+
CamelURL *url = emae_account_url(service->emae, emae_service_info[service->type].account_uri_key);
const char *text = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget));
setval(url, (text && text[0])?text:NULL);
-
+
if (text && text[0] && setval == camel_url_set_user) {
dropdown = service->authtype;
if(dropdown) {
- id = gtk_combo_box_get_active (dropdown);
+ id = gtk_combo_box_get_active (dropdown);
if (id != -1) {
model = gtk_combo_box_get_model (dropdown);
if (gtk_tree_model_iter_nth_child (model, &iter, NULL, id)) {
@@ -1194,7 +1194,7 @@ emae_service_url_path_changed(EMAccountEditorService *service, void (*setval)(Ca
}
}
}
-
+
emae_uri_changed(service, url);
camel_url_free(url);
}
@@ -1274,7 +1274,7 @@ emae_service_provider_changed(EMAccountEditorService *service)
enable = e_account_writable_option(service->emae->account, service->provider->protocol, "use_ssl");
gtk_widget_set_sensitive((GtkWidget *)service->use_ssl, enable);
-
+
enable = e_account_writable(service->emae->account, emae_service_info[service->type].save_passwd_key);
gtk_widget_set_sensitive((GtkWidget *)service->remember, enable);
@@ -1293,7 +1293,7 @@ emae_service_provider_changed(EMAccountEditorService *service)
if (j == 0) {
if (dwidget == NULL && enable)
dwidget = w;
-
+
if (info->setval && !hide)
info->setval(url, enable?gtk_entry_get_text((GtkEntry *)w):NULL);
}
@@ -1319,7 +1319,7 @@ emae_service_provider_changed(EMAccountEditorService *service)
camel_url_set_authmech(url, NULL);
}
}
-
+
emae_refresh_authtype(service->emae, service);
if (service->needs_auth && !CAMEL_PROVIDER_NEEDS(service->provider, CAMEL_URL_PART_AUTH))
gtk_widget_show((GtkWidget *)service->needs_auth);
@@ -1410,7 +1410,7 @@ emae_refresh_providers(EMAccountEditor *emae, EMAccountEditorService *service)
current[len] = 0;
}
}
-
+
store = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_POINTER);
i = 0;
@@ -1549,7 +1549,7 @@ emae_refresh_authtype (EMAccountEditor *emae, EMAccountEditorService *service)
} else {
avail = TRUE;
}
-
+
gtk_list_store_append(store, &iter);
gtk_list_store_set(store, &iter, 0, authtype->name, 1, authtype, 2, !avail, -1);
@@ -1800,7 +1800,7 @@ emae_identity_page(EConfig *ec, EConfigItem *item, struct _GtkWidget *parent, st
#endif
gtk_widget_hide(glade_xml_get_widget(xml, "sigAddNew"));
}
-
+
w = glade_xml_get_widget(xml, item->label);
if (((EConfig *)gui->config)->type == E_CONFIG_DRUID) {
GladeXML *druidxml;
@@ -2269,7 +2269,7 @@ emae_defaults_page(EConfig *ec, EConfigItem *item, struct _GtkWidget *parent, st
/* Special Folders "Reset Defaults" button */
gui->restore_folders_button = (GtkButton *)glade_xml_get_widget (xml, "default_folders_button");
g_signal_connect (gui->restore_folders_button, "clicked", G_CALLBACK (default_folders_clicked), emae);
-
+
/* Always Cc/Bcc */
emae_account_toggle(emae, "always_cc", E_ACCOUNT_CC_ALWAYS, xml);
emae_account_entry(emae, "cc_addrs", E_ACCOUNT_CC_ADDRS, xml);
@@ -2280,8 +2280,8 @@ emae_defaults_page(EConfig *ec, EConfigItem *item, struct _GtkWidget *parent, st
gtk_widget_set_sensitive( (GtkWidget *)gui->sent_folder_button,
e_account_writable(emae->account, E_ACCOUNT_SENT_FOLDER_URI)
- &&
- (emae->priv->source.provider ? !(emae->priv->source.provider->flags & CAMEL_PROVIDER_DISABLE_SENT_FOLDER): TRUE)
+ &&
+ (emae->priv->source.provider ? !(emae->priv->source.provider->flags & CAMEL_PROVIDER_DISABLE_SENT_FOLDER): TRUE)
);
gtk_widget_set_sensitive((GtkWidget *)gui->restore_folders_button,
@@ -2291,7 +2291,7 @@ emae_defaults_page(EConfig *ec, EConfigItem *item, struct _GtkWidget *parent, st
/* Receipt policy */
emae_setup_receipt_policy (emae, xml);
-
+
w = glade_xml_get_widget(xml, item->label);
gtk_notebook_append_page((GtkNotebook *)parent, w, gtk_label_new(_("Defaults")));
@@ -2328,7 +2328,7 @@ emae_security_page(EConfig *ec, EConfigItem *item, struct _GtkWidget *parent, st
emae_account_toggle(emae, "pgp_always_sign", E_ACCOUNT_PGP_ALWAYS_SIGN, xml);
emae_account_toggle(emae, "pgp_no_imip_sign", E_ACCOUNT_PGP_NO_IMIP_SIGN, xml);
emae_account_toggle(emae, "pgp_always_trust", E_ACCOUNT_PGP_ALWAYS_TRUST, xml);
-
+
#if defined (HAVE_NSS)
/* TODO: this should handle its entry separately? */
gui->smime_sign_key = emae_account_entry(emae, "smime_sign_key", E_ACCOUNT_SMIME_SIGN_KEY, xml);
@@ -2352,7 +2352,7 @@ emae_security_page(EConfig *ec, EConfigItem *item, struct _GtkWidget *parent, st
{
/* Since we don't have NSS, hide the S/MIME config options */
GtkWidget *frame;
-
+
frame = glade_xml_get_widget(xml, "smime_vbox");
gtk_widget_destroy(frame);
}
@@ -2435,7 +2435,7 @@ emae_management_page(EConfig *ec, EConfigItem *item, struct _GtkWidget *parent,
NULL);
druidxml = glade_xml_new(gladefile, "management_page", NULL);
g_free (gladefile);
-
+
page = glade_xml_get_widget(druidxml, "management_page");
gtk_widget_reparent(w, ((GnomeDruidPageStandard *)page)->vbox);
@@ -2629,10 +2629,10 @@ emae_check_complete(EConfig *ec, const char *pageid, void *data)
}
}
- /*
- Setting a flag on the Account if it is marked as default. It is done in this way instead of
- using a temporary variable so as to keep track of which account is marked as default in case of
- editing multiple accounts at a time
+ /*
+ Setting a flag on the Account if it is marked as default. It is done in this way instead of
+ using a temporary variable so as to keep track of which account is marked as default in case of
+ editing multiple accounts at a time
*/
if (gtk_toggle_button_get_active(emae->priv->default_account))
g_object_set_data (G_OBJECT (emae->account), "default_flagged", GINT_TO_POINTER(1));
@@ -2680,10 +2680,10 @@ add_new_store (char *uri, CamelStore *store, void *user_data)
{
MailComponent *component = mail_component_peek ();
EAccount *account = user_data;
-
+
if (store == NULL)
return;
-
+
mail_component_add_store (component, store, account->name);
}
diff --git a/mail/em-account-prefs.c b/mail/em-account-prefs.c
index bb453d4ea8..dc9f71aaf4 100644
--- a/mail/em-account-prefs.c
+++ b/mail/em-account-prefs.c
@@ -66,7 +66,7 @@ GType
em_account_prefs_get_type (void)
{
static GType type = 0;
-
+
if (!type) {
GTypeInfo type_info = {
sizeof (EMAccountPrefsClass),
@@ -77,10 +77,10 @@ em_account_prefs_get_type (void)
0,
(GInstanceInitFunc) em_account_prefs_init,
};
-
+
type = g_type_register_static (gtk_vbox_get_type (), "EMAccountPrefs", &type_info, 0);
}
-
+
return type;
}
@@ -89,11 +89,11 @@ em_account_prefs_class_init (EMAccountPrefsClass *klass)
{
GtkObjectClass *gtk_object_class = (GtkObjectClass *) klass;
GObjectClass *object_class = (GObjectClass *) klass;
-
+
parent_class = g_type_class_ref (gtk_vbox_get_type ());
-
+
gtk_object_class->destroy = em_account_prefs_destroy;
-
+
object_class->finalize = em_account_prefs_finalise;
}
@@ -108,9 +108,9 @@ static void
em_account_prefs_destroy (GtkObject *obj)
{
EMAccountPrefs *prefs = (EMAccountPrefs *) obj;
-
+
prefs->destroyed = TRUE;
-
+
GTK_OBJECT_CLASS (parent_class)->destroy (obj);
}
@@ -118,9 +118,9 @@ static void
em_account_prefs_finalise (GObject *obj)
{
EMAccountPrefs *prefs = (EMAccountPrefs *) obj;
-
+
g_object_unref (prefs->gui);
-
+
G_OBJECT_CLASS (parent_class)->finalize (obj);
}
@@ -129,10 +129,10 @@ account_add_finished (EMAccountPrefs *prefs, GObject *deadbeef)
{
/* Either Cancel or Finished was clicked in the druid so reload the accounts */
prefs->druid = NULL;
-
+
if (!prefs->destroyed)
mail_accounts_load (prefs);
-
+
g_object_unref (prefs);
}
@@ -142,7 +142,7 @@ static void
account_add_clicked (GtkButton *button, gpointer user_data)
{
EMAccountPrefs *prefs = (EMAccountPrefs *) user_data;
-
+
if (prefs->druid == NULL) {
EMAccountEditor *emae;
@@ -171,10 +171,10 @@ static void
account_edit_finished (EMAccountPrefs *prefs, GObject *deadbeef)
{
prefs->editor = NULL;
-
+
if (!prefs->destroyed)
mail_accounts_load (prefs);
-
+
g_object_unref (prefs);
}
@@ -182,17 +182,17 @@ static void
account_edit_clicked (GtkButton *button, gpointer user_data)
{
EMAccountPrefs *prefs = (EMAccountPrefs *) user_data;
-
+
if (prefs->editor == NULL) {
GtkTreeSelection *selection;
EAccount *account = NULL;
GtkTreeModel *model;
GtkTreeIter iter;
-
+
selection = gtk_tree_view_get_selection (prefs->table);
if (gtk_tree_selection_get_selected (selection, &model, &iter))
gtk_tree_model_get (model, &iter, 3, &account, -1);
-
+
if (account && !account->parent_uid && !mail_config_has_proxies (account)) {
EMAccountEditor *emae;
@@ -229,37 +229,37 @@ account_delete_clicked (GtkButton *button, gpointer user_data)
GtkTreeIter iter;
int ans;
gboolean has_proxies = FALSE;
-
+
selection = gtk_tree_view_get_selection (prefs->table);
if (gtk_tree_selection_get_selected (selection, &model, &iter))
gtk_tree_model_get (model, &iter, 3, &account, -1);
-
+
/* make sure we have a valid account selected and that we aren't editing anything... */
if (account == NULL || prefs->editor != NULL)
return;
has_proxies = mail_config_has_proxies (account);
ans = e_error_run(PREFS_WINDOW(prefs), has_proxies?"mail:ask-delete-account-with-proxies":"mail:ask-delete-account",NULL);
-
+
if (ans == GTK_RESPONSE_YES) {
int len;
-
+
/* remove it from the folder-tree in the shell */
if (account->enabled && account->source && account->source->url)
mail_component_remove_store_by_uri (mail_component_peek (), account->source->url);
-
+
/* remove all the proxies account has created*/
if (has_proxies)
mail_config_remove_account_proxies (account);
-
+
/* remove it from the config file */
mail_config_remove_account (account);
accounts = mail_config_get_accounts ();
-
+
mail_config_write ();
-
+
gtk_list_store_remove ((GtkListStore *) model, &iter);
-
+
len = e_list_length ((EList *) accounts);
if (len > 0) {
if ( !gtk_list_store_iter_is_valid ((GtkListStore *) model, &iter))
@@ -283,16 +283,16 @@ account_default_clicked (GtkButton *button, gpointer user_data)
EAccount *account = NULL;
GtkTreeModel *model;
GtkTreeIter iter;
-
+
selection = gtk_tree_view_get_selection (prefs->table);
if (gtk_tree_selection_get_selected (selection, &model, &iter))
gtk_tree_model_get (model, &iter, 3, &account, -1);
-
+
if (account) {
mail_config_set_default_account (account);
-
+
mail_config_write ();
-
+
mail_accounts_load (prefs);
}
}
@@ -309,7 +309,7 @@ account_able_changed(EAccount *account)
mail_component_load_store_by_uri (component,
account->source->url,
account->name);
- else
+ else
mail_component_remove_store_by_uri (component, account->source->url);
}
@@ -324,13 +324,13 @@ account_able_clicked (GtkButton *button, gpointer user_data)
EAccount *account;
GtkTreeModel *model;
GtkTreeIter iter;
-
+
selection = gtk_tree_view_get_selection (prefs->table);
if (gtk_tree_selection_get_selected (selection, &model, &iter)) {
gtk_tree_model_get (model, &iter, 3, &account, -1);
account->enabled = !account->enabled;
gtk_list_store_set ((GtkListStore *) model, &iter, 0, account->enabled, -1);
-
+
gtk_button_set_label (prefs->mail_able, account->enabled ? _("Di_sable") : _("E_nable"));
/* let the rest of the application know it changed */
@@ -348,26 +348,26 @@ account_able_toggled (GtkCellRendererToggle *renderer, char *arg1, gpointer user
GtkTreeModel *model;
GtkTreePath *path;
GtkTreeIter iter;
-
+
path = gtk_tree_path_new_from_string (arg1);
model = gtk_tree_view_get_model (prefs->table);
selection = gtk_tree_view_get_selection (prefs->table);
-
+
if (gtk_tree_model_get_iter (model, &iter, path)) {
gtk_tree_model_get (model, &iter, 3, &account, -1);
if (mail_config_has_proxies (account)) {
- int ans;
+ int ans;
ans = e_error_run(PREFS_WINDOW(prefs), "mail:ask-delete-proxy-accounts",NULL);
- if (ans == GTK_RESPONSE_NO) {
+ if (ans == GTK_RESPONSE_NO) {
gtk_tree_path_free (path);
return;
- }
+ }
mail_config_remove_account_proxies (account);
- gtk_widget_set_sensitive (GTK_WIDGET (prefs->mail_edit), 1);
+ gtk_widget_set_sensitive (GTK_WIDGET (prefs->mail_edit), 1);
}
account->enabled = !account->enabled;
@@ -419,8 +419,8 @@ account_cursor_change (GtkTreeSelection *selection, EMAccountPrefs *prefs)
} else {
gtk_widget_set_sensitive (GTK_WIDGET (prefs), FALSE);
}
-
- if( url != NULL )
+
+ if( url != NULL )
gtk_widget_set_sensitive (GTK_WIDGET (prefs->mail_edit), !mail_config_has_proxies(account));
gtk_widget_set_sensitive (GTK_WIDGET (prefs->mail_delete), state);
@@ -444,25 +444,25 @@ mail_accounts_load (EMAccountPrefs *prefs)
EIterator *node;
int row = 0;
GtkTreeSelection *selection;
-
+
model = (GtkListStore *) gtk_tree_view_get_model (prefs->table);
gtk_list_store_clear (model);
-
+
default_account = mail_config_get_default_account ();
-
+
accounts = mail_config_get_accounts ();
node = e_list_get_iterator ((EList *) accounts);
selection = gtk_tree_view_get_selection(prefs->table);
-
+
while (e_iterator_is_valid (node)) {
EAccount *account;
CamelURL *url;
-
+
account = (EAccount *) e_iterator_get (node);
if (!account->parent_uid) {
url = account->source && account->source->url ? camel_url_new (account->source->url, NULL) : NULL;
-
+
gtk_list_store_append (model, &iter);
if (account == default_account) {
/* translators: default account indicator */
@@ -479,19 +479,19 @@ mail_accounts_load (EMAccountPrefs *prefs)
3, account,
-1);
g_free (name);
-
+
if (url)
camel_url_free (url);
-
+
/* select the first row by default */
if (row == 0 && !prefs->changed)
- gtk_tree_selection_select_iter (selection, &iter);
+ gtk_tree_selection_select_iter (selection, &iter);
row++;
}
-
+
e_iterator_next (node);
}
-
+
g_object_unref (node);
}
@@ -507,23 +507,23 @@ em_account_prefs_treeview_new (char *widget_name, char *string1, char *string2,
GtkTreeSelection *selection;
GtkCellRenderer *renderer;
GtkListStore *model;
-
+
scrolled = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled),
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled), GTK_SHADOW_IN);
-
+
renderer = gtk_cell_renderer_toggle_new ();
g_object_set ((GObject *) renderer, "activatable", TRUE, NULL);
-
+
model = gtk_list_store_new (4, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER);
table = gtk_tree_view_new_with_model ((GtkTreeModel *) model);
g_object_unref (model);
gtk_tree_view_insert_column_with_attributes ((GtkTreeView *) table, -1, _("Enabled"),
renderer, "active", 0, NULL);
-
+
g_object_set_data ((GObject *) scrolled, "renderer", renderer);
-
+
renderer = gtk_cell_renderer_text_new ();
gtk_tree_view_insert_column_with_attributes ((GtkTreeView *) table, -1, _("Account name"),
renderer, "text", 1, NULL);
@@ -534,18 +534,18 @@ em_account_prefs_treeview_new (char *widget_name, char *string1, char *string2,
gtk_tree_view_set_headers_visible ((GtkTreeView *) table, TRUE);
atk_object_set_name (gtk_widget_get_accessible (table), _("Mail Accounts"));
-
+
/* FIXME: column auto-resize? */
/* Is this needed?
gtk_tree_view_column_set_alignment (gtk_tree_view_get_column (prefs->table, 0), 1.0);*/
-
+
gtk_container_add (GTK_CONTAINER (scrolled), table);
-
+
g_object_set_data ((GObject *) scrolled, "table", table);
-
+
gtk_widget_show (scrolled);
gtk_widget_show (table);
-
+
return scrolled;
}
@@ -556,7 +556,7 @@ em_account_prefs_construct (EMAccountPrefs *prefs)
GtkCellRenderer *renderer;
GladeXML *gui;
char *gladefile;
-
+
gladefile = g_build_filename (EVOLUTION_GLADEDIR,
"mail-config.glade",
NULL);
@@ -564,20 +564,20 @@ em_account_prefs_construct (EMAccountPrefs *prefs)
g_free (gladefile);
prefs->gui = gui;
-
+
/* get our toplevel widget */
toplevel = glade_xml_get_widget (gui, "toplevel");
-
+
/* reparent */
g_object_ref (toplevel);
gtk_container_remove (GTK_CONTAINER (toplevel->parent), toplevel);
gtk_container_add (GTK_CONTAINER (prefs), toplevel);
g_object_unref (toplevel);
-
+
widget = glade_xml_get_widget (gui, "etableMailAccounts");
-
+
prefs->table = (GtkTreeView *) g_object_get_data ((GObject *) widget, "table");
-
+
renderer = g_object_get_data ((GObject *) widget, "renderer");
g_signal_connect (renderer, "toggled", G_CALLBACK (account_able_toggled), prefs);
@@ -587,16 +587,16 @@ em_account_prefs_construct (EMAccountPrefs *prefs)
prefs->mail_add = GTK_BUTTON (glade_xml_get_widget (gui, "cmdAccountAdd"));
g_signal_connect (prefs->mail_add, "clicked", G_CALLBACK (account_add_clicked), prefs);
-
+
prefs->mail_edit = GTK_BUTTON (glade_xml_get_widget (gui, "cmdAccountEdit"));
g_signal_connect (prefs->mail_edit, "clicked", G_CALLBACK (account_edit_clicked), prefs);
-
+
prefs->mail_delete = GTK_BUTTON (glade_xml_get_widget (gui, "cmdAccountDelete"));
g_signal_connect (prefs->mail_delete, "clicked", G_CALLBACK (account_delete_clicked), prefs);
-
+
prefs->mail_default = GTK_BUTTON (glade_xml_get_widget (gui, "cmdAccountDefault"));
g_signal_connect (prefs->mail_default, "clicked", G_CALLBACK (account_default_clicked), prefs);
-
+
prefs->mail_able = GTK_BUTTON (glade_xml_get_widget (gui, "cmdAccountAble"));
g_signal_connect (prefs->mail_able, "clicked", G_CALLBACK (account_able_clicked), prefs);
@@ -611,10 +611,10 @@ GtkWidget *
em_account_prefs_new (GNOME_Evolution_Shell shell)
{
EMAccountPrefs *new;
-
+
new = (EMAccountPrefs *) g_object_new (em_account_prefs_get_type (), NULL);
em_account_prefs_construct (new);
new->shell = shell;
-
+
return (GtkWidget *) new;
}
diff --git a/mail/em-account-prefs.h b/mail/em-account-prefs.h
index c7209f67a5..e3fc4c65e4 100644
--- a/mail/em-account-prefs.h
+++ b/mail/em-account-prefs.h
@@ -53,31 +53,31 @@ typedef struct _EMAccountPrefsClass EMAccountPrefsClass;
struct _EMAccountPrefs {
GtkVBox parent_object;
-
+
GNOME_Evolution_Shell shell;
-
+
GladeXML *gui;
-
+
GtkWidget *druid;
GtkWidget *editor;
-
+
GtkTreeView *table;
-
+
GtkButton *mail_add;
GtkButton *mail_edit;
GtkButton *mail_delete;
GtkButton *mail_default;
GtkButton *mail_able;
-
+
guint destroyed : 1;
guint changed : 1;
};
struct _EMAccountPrefsClass {
GtkVBoxClass parent_class;
-
+
/* signals */
-
+
};
diff --git a/mail/em-composer-prefs.c b/mail/em-composer-prefs.c
index 15944bad72..4839e4e1f6 100644
--- a/mail/em-composer-prefs.c
+++ b/mail/em-composer-prefs.c
@@ -87,7 +87,7 @@ GType
em_composer_prefs_get_type (void)
{
static GType type = 0;
-
+
if (!type) {
static const GTypeInfo info = {
sizeof (EMComposerPrefsClass),
@@ -98,10 +98,10 @@ em_composer_prefs_get_type (void)
0,
(GInstanceInitFunc) em_composer_prefs_init,
};
-
+
type = g_type_register_static (gtk_vbox_get_type (), "EMComposerPrefs", &info, 0);
}
-
+
return type;
}
@@ -110,9 +110,9 @@ em_composer_prefs_class_init (EMComposerPrefsClass *klass)
{
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
GtkObjectClass *object_class = GTK_OBJECT_CLASS (klass);
-
+
parent_class = g_type_class_ref (gtk_vbox_get_type ());
-
+
object_class->destroy = em_composer_prefs_destroy;
gobject_class->finalize = em_composer_prefs_finalise;
}
@@ -131,12 +131,12 @@ static void
em_composer_prefs_finalise (GObject *obj)
{
EMComposerPrefs *prefs = (EMComposerPrefs *) obj;
-
+
g_object_unref (prefs->gui);
g_object_unref (prefs->enabled_pixbuf);
-
+
g_hash_table_destroy (prefs->sig_hash);
-
+
G_OBJECT_CLASS (parent_class)->finalize (obj);
}
@@ -145,24 +145,24 @@ em_composer_prefs_destroy (GtkObject *obj)
{
EMComposerPrefs *prefs = (EMComposerPrefs *) obj;
ESignatureList *signatures;
-
+
signatures = mail_config_get_signatures ();
-
+
if (prefs->sig_added_id != 0) {
g_signal_handler_disconnect (signatures, prefs->sig_added_id);
prefs->sig_added_id = 0;
}
-
+
if (prefs->sig_removed_id != 0) {
g_signal_handler_disconnect (signatures, prefs->sig_removed_id);
prefs->sig_removed_id = 0;
}
-
+
if (prefs->sig_changed_id != 0) {
g_signal_handler_disconnect (signatures, prefs->sig_changed_id);
prefs->sig_changed_id = 0;
}
-
+
GTK_OBJECT_CLASS (parent_class)->destroy (obj);
}
@@ -171,26 +171,26 @@ static void
sig_load_preview (EMComposerPrefs *prefs, ESignature *sig)
{
char *str;
-
+
if (!sig) {
gtk_html_load_from_string (GTK_HTML (prefs->sig_preview), " ", 1);
return;
}
-
+
if (sig->script)
str = mail_config_signature_run_script (sig->filename);
else
str = e_msg_composer_get_sig_file_content (sig->filename, sig->html);
if (!str)
str = g_strdup ("");
-
+
/* printf ("HTML: %s\n", str); */
if (sig->html) {
gtk_html_load_from_string (GTK_HTML (prefs->sig_preview), str, strlen (str));
} else {
GtkHTMLStream *stream;
int len;
-
+
len = strlen (str);
stream = gtk_html_begin_content (GTK_HTML (prefs->sig_preview), "text/html; charset=utf-8");
gtk_html_write (GTK_HTML (prefs->sig_preview), stream, "<PRE>", 5);
@@ -199,7 +199,7 @@ sig_load_preview (EMComposerPrefs *prefs, ESignature *sig)
gtk_html_write (GTK_HTML (prefs->sig_preview), stream, "</PRE>", 6);
gtk_html_end (GTK_HTML (prefs->sig_preview), stream, GTK_HTML_STREAM_OK);
}
-
+
g_free (str);
}
@@ -210,19 +210,19 @@ signature_added (ESignatureList *signatures, ESignature *sig, EMComposerPrefs *p
GtkTreeModel *model;
GtkTreePath *path;
GtkTreeIter iter;
-
+
/* autogen signature is special */
if (sig->autogen)
return;
-
+
model = gtk_tree_view_get_model (prefs->sig_list);
gtk_list_store_append ((GtkListStore *) model, &iter);
gtk_list_store_set ((GtkListStore *) model, &iter, 0, sig->name, 1, sig, -1);
-
+
path = gtk_tree_model_get_path (model, &iter);
row = gtk_tree_row_reference_new (model, path);
gtk_tree_path_free (path);
-
+
g_hash_table_insert (prefs->sig_hash, sig, row);
}
@@ -233,19 +233,19 @@ signature_removed (ESignatureList *signatures, ESignature *sig, EMComposerPrefs
GtkTreeModel *model;
GtkTreePath *path;
GtkTreeIter iter;
-
+
if (!(row = g_hash_table_lookup (prefs->sig_hash, sig)))
return;
-
+
model = gtk_tree_view_get_model (prefs->sig_list);
path = gtk_tree_row_reference_get_path (row);
g_hash_table_remove (prefs->sig_hash, sig);
-
+
if (!gtk_tree_model_get_iter (model, &iter, path)) {
gtk_tree_path_free (path);
return;
}
-
+
gtk_list_store_remove ((GtkListStore *) model, &iter);
}
@@ -258,22 +258,22 @@ signature_changed (ESignatureList *signatures, ESignature *sig, EMComposerPrefs
GtkTreePath *path;
GtkTreeIter iter;
ESignature *cur;
-
+
if (!(row = g_hash_table_lookup (prefs->sig_hash, sig)))
return;
-
+
model = gtk_tree_view_get_model (prefs->sig_list);
path = gtk_tree_row_reference_get_path (row);
-
+
if (!gtk_tree_model_get_iter (model, &iter, path)) {
gtk_tree_path_free (path);
return;
}
-
+
gtk_tree_path_free (path);
-
+
gtk_list_store_set ((GtkListStore *) model, &iter, 0, sig->name, -1);
-
+
selection = gtk_tree_view_get_selection (prefs->sig_list);
if (gtk_tree_selection_get_selected (selection, &model, &iter)) {
gtk_tree_model_get (model, &iter, 1, &cur, -1);
@@ -290,36 +290,36 @@ sig_edit_cb (GtkWidget *widget, EMComposerPrefs *prefs)
GtkWidget *parent;
GtkTreeIter iter;
ESignature *sig;
-
+
selection = gtk_tree_view_get_selection (prefs->sig_list);
if (!gtk_tree_selection_get_selected (selection, &model, &iter))
return;
-
+
gtk_tree_model_get (model, &iter, 1, &sig, -1);
-
+
if (!sig->script) {
/* normal signature */
if (!sig->filename || *sig->filename == '\0') {
g_free (sig->filename);
sig->filename = g_strdup (_("Unnamed"));
}
-
+
parent = gtk_widget_get_toplevel ((GtkWidget *) prefs);
parent = GTK_WIDGET_TOPLEVEL (parent) ? parent : NULL;
-
+
mail_signature_editor (sig, (GtkWindow *) parent, FALSE);
} else {
/* signature script */
GtkWidget *entry;
-
+
entry = glade_xml_get_widget (prefs->sig_script_gui, "filechooserbutton_add_script");
gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (entry), sig->filename);
-
+
entry = glade_xml_get_widget (prefs->sig_script_gui, "entry_add_script_name");
gtk_entry_set_text (GTK_ENTRY (entry), sig->name);
-
+
g_object_set_data ((GObject *) entry, "sig", sig);
-
+
gtk_window_present ((GtkWindow *) prefs->sig_script_dialog);
}
}
@@ -328,12 +328,12 @@ void
em_composer_prefs_new_signature (GtkWindow *parent, gboolean html)
{
ESignature *sig;
-
+
sig = mail_config_signature_new (NULL, FALSE, html);
mail_signature_editor (sig, parent, TRUE);
}
-static void
+static void
sig_delete_cb (GtkWidget *widget, EMComposerPrefs *prefs)
{
GtkTreeSelection *selection;
@@ -356,13 +356,13 @@ sig_add_cb (GtkWidget *widget, EMComposerPrefs *prefs)
GConfClient *gconf;
gboolean send_html;
GtkWidget *parent;
-
+
gconf = mail_config_get_gconf_client ();
send_html = gconf_client_get_bool (gconf, "/apps/evolution/mail/composer/send_html", NULL);
-
+
parent = gtk_widget_get_toplevel ((GtkWidget *) prefs);
parent = GTK_WIDGET_TOPLEVEL (parent) ? parent : NULL;
-
+
em_composer_prefs_new_signature ((GtkWindow *) parent, send_html);
gtk_widget_grab_focus ((GtkWidget *)prefs->sig_list);
}
@@ -374,19 +374,19 @@ sig_add_script_response (GtkWidget *widget, int button, EMComposerPrefs *prefs)
GtkWidget *entry;
const char *name;
int argc;
-
+
if (button == GTK_RESPONSE_ACCEPT) {
entry = glade_xml_get_widget (prefs->sig_script_gui, "filechooserbutton_add_script");
script = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (entry));
-
+
entry = glade_xml_get_widget (prefs->sig_script_gui, "entry_add_script_name");
name = gtk_entry_get_text (GTK_ENTRY (entry));
if (script && *script && g_shell_parse_argv (script, &argc, &argv, NULL)) {
struct stat st;
-
+
if (g_stat (argv[0], &st) == 0 && S_ISREG (st.st_mode) && g_access (argv[0], X_OK) == 0) {
ESignature *sig;
-
+
if ((sig = g_object_get_data ((GObject *) entry, "sig"))) {
/* we're just editing an existing signature script */
g_free (sig->name);
@@ -397,27 +397,27 @@ sig_add_script_response (GtkWidget *widget, int button, EMComposerPrefs *prefs)
} else {
sig = mail_config_signature_new (script, TRUE, TRUE);
sig->name = g_strdup (name);
-
+
e_signature_list_add (mail_config_get_signatures (), sig);
g_object_unref (sig);
}
-
+
mail_config_save_signatures();
gtk_widget_hide (prefs->sig_script_dialog);
g_strfreev (argv);
g_free (script);
-
+
return;
}
}
-
+
e_error_run((GtkWindow *)prefs->sig_script_dialog, "mail:signature-notscript", argv ? argv[0] : script, NULL);
g_strfreev (argv);
g_free (script);
return;
}
-
+
gtk_widget_hide (widget);
}
@@ -425,12 +425,12 @@ static void
sig_add_script_cb (GtkWidget *widget, EMComposerPrefs *prefs)
{
GtkWidget *entry;
-
+
entry = glade_xml_get_widget (prefs->sig_script_gui, "entry_add_script_name");
gtk_entry_set_text (GTK_ENTRY (entry), _("Unnamed"));
-
+
g_object_set_data ((GObject *) entry, "sig", NULL);
-
+
gtk_window_present ((GtkWindow *) prefs->sig_script_dialog);
}
@@ -441,14 +441,14 @@ sig_selection_changed (GtkTreeSelection *selection, EMComposerPrefs *prefs)
GtkTreeIter iter;
ESignature *sig;
int state;
-
+
state = gtk_tree_selection_get_selected (selection, &model, &iter);
if (state) {
gtk_tree_model_get (model, &iter, 1, &sig, -1);
sig_load_preview (prefs, sig);
} else
sig_load_preview (prefs, NULL);
-
+
gtk_widget_set_sensitive ((GtkWidget *) prefs->sig_delete, state);
gtk_widget_set_sensitive ((GtkWidget *) prefs->sig_edit, state);
}
@@ -459,27 +459,27 @@ sig_fill_list (EMComposerPrefs *prefs)
ESignatureList *signatures;
GtkListStore *model;
EIterator *it;
-
+
model = (GtkListStore *) gtk_tree_view_get_model (prefs->sig_list);
gtk_list_store_clear (model);
-
+
signatures = mail_config_get_signatures ();
it = e_list_get_iterator ((EList *) signatures);
-
+
while (e_iterator_is_valid (it)) {
ESignature *sig;
-
+
sig = (ESignature *) e_iterator_get (it);
signature_added (signatures, sig, prefs);
-
+
e_iterator_next (it);
}
-
+
g_object_unref (it);
-
+
gtk_widget_set_sensitive ((GtkWidget *) prefs->sig_edit, FALSE);
gtk_widget_set_sensitive ((GtkWidget *) prefs->sig_delete, FALSE);
-
+
prefs->sig_added_id = g_signal_connect (signatures, "signature-added", G_CALLBACK (signature_added), prefs);
prefs->sig_removed_id = g_signal_connect (signatures, "signature-removed", G_CALLBACK (signature_removed), prefs);
prefs->sig_changed_id = g_signal_connect (signatures, "signature-changed", G_CALLBACK (signature_changed), prefs);
@@ -493,7 +493,7 @@ url_requested (GtkHTML *html, const char *url, GtkHTMLStream *handle)
ssize_t size;
int fd;
char *filename;
-
+
if (!strncmp (url, "file:", 5))
filename = g_filename_from_uri (url, NULL, NULL);
else
@@ -512,7 +512,7 @@ url_requested (GtkHTML *html, const char *url, GtkHTMLStream *handle)
}
} else
status = GTK_HTML_STREAM_ERROR;
-
+
gtk_html_end (html, handle, status);
if (fd > 0)
close (fd);
@@ -542,37 +542,37 @@ spell_set_ui (EMComposerPrefs *prefs)
gboolean go;
char *lang;
int i;
-
+
prefs->spell_active = FALSE;
-
+
/* setup the language list */
if (!(lang = gconf_client_get_string (prefs->gconf, GNOME_SPELL_GCONF_DIR "/language", &err)) || err) {
g_free (lang);
g_clear_error (&err);
lang = g_strdup (e_iconv_locale_language ());
}
-
+
present = g_hash_table_new (g_str_hash, g_str_equal);
if (lang && (strv = g_strsplit (lang, " ", 0))) {
for (i = 0; strv[i]; i++)
g_hash_table_insert (present, strv[i], strv[i]);
}
-
+
g_free (lang);
-
+
model = (GtkListStore *) gtk_tree_view_get_model (prefs->language);
for (go = gtk_tree_model_get_iter_first ((GtkTreeModel *) model, &iter); go;
go = gtk_tree_model_iter_next ((GtkTreeModel *) model, &iter)) {
char *abbr;
-
+
gtk_tree_model_get ((GtkTreeModel *) model, &iter, 2, &abbr, -1);
gtk_list_store_set (model, &iter, 0, g_hash_table_lookup (present, abbr) != NULL, -1);
}
-
+
g_hash_table_destroy (present);
if (strv != NULL)
g_strfreev (strv);
-
+
color.red = gconf_client_get_int (prefs->gconf,
GNOME_SPELL_GCONF_DIR "/spell_error_color_red", NULL);
color.green = gconf_client_get_int (prefs->gconf,
@@ -580,7 +580,7 @@ spell_set_ui (EMComposerPrefs *prefs)
color.blue = gconf_client_get_int (prefs->gconf,
GNOME_SPELL_GCONF_DIR "/spell_error_color_blue", NULL);
gtk_color_button_set_color (GTK_COLOR_BUTTON (prefs->color), &color);
-
+
prefs->spell_active = TRUE;
}
@@ -609,36 +609,36 @@ spell_get_language_str (EMComposerPrefs *prefs)
GtkTreeIter iter;
GString *str;
char *rv;
-
+
model = (GtkListStore *) gtk_tree_view_get_model (prefs->language);
if (!gtk_tree_model_get_iter_first ((GtkTreeModel *) model, &iter))
return NULL;
-
+
str = g_string_new ("");
-
+
do {
gboolean state;
char *abbr;
-
+
gtk_tree_model_get ((GtkTreeModel *) model, &iter, 0, &state, 2, &abbr, -1);
-
+
if (state) {
if (str->len)
g_string_append_c (str, ' ');
g_string_append (str, abbr);
}
-
+
if (!gtk_tree_model_iter_next ((GtkTreeModel *) model, &iter))
break;
} while (1);
-
+
rv = str->str;
g_string_free (str, FALSE);
-
+
return rv;
}
-static void
+static void
spell_language_toggled (GtkCellRendererToggle *renderer, const char *path_string, EMComposerPrefs *prefs)
{
GtkTreePath *path = gtk_tree_path_new_from_string (path_string);
@@ -646,12 +646,12 @@ spell_language_toggled (GtkCellRendererToggle *renderer, const char *path_string
GtkTreeIter iter;
gboolean enabled;
char *str;
-
+
model = gtk_tree_view_get_model (prefs->language);
gtk_tree_model_get_iter (model, &iter, path);
gtk_tree_model_get (model, &iter, 0, &enabled, -1);
gtk_list_store_set ((GtkListStore *) model, &iter, 0, !enabled, -1);
-
+
str = spell_get_language_str (prefs);
gconf_client_set_string (prefs->gconf, GNOME_SPELL_GCONF_DIR "/language", str ? str : "", NULL);
g_free (str);
@@ -666,9 +666,9 @@ spell_setup (EMComposerPrefs *prefs)
GtkTreeIter iter;
GtkWidget *widget;
int i;
-
+
model = (GtkListStore *) gtk_tree_view_get_model (prefs->language);
-
+
if (prefs->language_seq) {
for (i = 0; i < prefs->language_seq->_length; i++) {
gtk_list_store_append (model, &iter);
@@ -678,9 +678,9 @@ spell_setup (EMComposerPrefs *prefs)
-1);
}
}
-
+
spell_set_ui (prefs);
-
+
widget = glade_xml_get_widget (prefs->gui, "colorButtonSpellCheckColor");
g_signal_connect (widget, "color_set", G_CALLBACK (spell_color_set), prefs);
}
@@ -691,28 +691,28 @@ spell_setup_check_options (EMComposerPrefs *prefs)
GNOME_Spell_Dictionary dict;
CORBA_Environment ev;
char *dictionary_id;
-
+
dictionary_id = "OAFIID:GNOME_Spell_Dictionary:" SPELL_API_VERSION;
dict = bonobo_activation_activate_from_id (dictionary_id, 0, NULL, NULL);
if (dict == CORBA_OBJECT_NIL) {
g_warning ("Cannot activate %s", dictionary_id);
-
+
return FALSE;
}
-
+
CORBA_exception_init (&ev);
prefs->language_seq = GNOME_Spell_Dictionary_getLanguages (dict, &ev);
if (ev._major != CORBA_NO_EXCEPTION)
prefs->language_seq = NULL;
CORBA_exception_free (&ev);
-
+
if (prefs->language_seq == NULL)
return FALSE;
-
+
gconf_client_add_dir (prefs->gconf, GNOME_SPELL_GCONF_DIR, GCONF_CLIENT_PRELOAD_NONE, NULL);
-
+
spell_setup (prefs);
-
+
return TRUE;
}
@@ -725,9 +725,9 @@ static void
attach_style_info (GtkWidget *item, gpointer user_data)
{
int *style = user_data;
-
+
g_object_set_data ((GObject *) item, "style", GINT_TO_POINTER (*style));
-
+
(*style)++;
}
@@ -735,7 +735,7 @@ static void
toggle_button_toggled (GtkToggleButton *toggle, EMComposerPrefs *prefs)
{
const char *key;
-
+
key = g_object_get_data ((GObject *) toggle, "key");
gconf_client_set_bool (prefs->gconf, key, gtk_toggle_button_get_active (toggle), NULL);
}
@@ -745,10 +745,10 @@ style_activate (GtkWidget *item, EMComposerPrefs *prefs)
{
const char *key;
int style;
-
+
key = g_object_get_data ((GObject *) item, "key");
style = GPOINTER_TO_INT (g_object_get_data ((GObject *) item, "style"));
-
+
gconf_client_set_int (prefs->gconf, key, style, NULL);
}
@@ -757,11 +757,11 @@ charset_activate (GtkWidget *item, EMComposerPrefs *prefs)
{
GtkWidget *menu;
char *string;
-
+
menu = gtk_option_menu_get_menu (prefs->charset);
if (!(string = e_charset_picker_get_charset (menu)))
string = g_strdup (e_iconv_locale_charset ());
-
+
gconf_client_set_string (prefs->gconf, "/apps/evolution/mail/composer/charset", string, NULL);
g_free (string);
}
@@ -771,9 +771,9 @@ option_menu_connect (EMComposerPrefs *prefs, GtkOptionMenu *omenu, GCallback cal
{
GtkWidget *menu, *item;
GList *items;
-
+
menu = gtk_option_menu_get_menu (omenu);
-
+
items = GTK_MENU_SHELL (menu)->children;
while (items) {
item = items->data;
@@ -781,7 +781,7 @@ option_menu_connect (EMComposerPrefs *prefs, GtkOptionMenu *omenu, GCallback cal
g_signal_connect (item, "activate", callback, prefs);
items = items->next;
}
-
+
if (!gconf_client_key_is_writable (prefs->gconf, key, NULL))
gtk_widget_set_sensitive ((GtkWidget *) omenu, FALSE);
}
@@ -790,13 +790,13 @@ static void
toggle_button_init (EMComposerPrefs *prefs, GtkToggleButton *toggle, int not, const char *key)
{
gboolean bool;
-
+
bool = gconf_client_get_bool (prefs->gconf, key, NULL);
gtk_toggle_button_set_active (toggle, not ? !bool : bool);
-
+
g_object_set_data ((GObject *) toggle, "key", (void *) key);
g_signal_connect (toggle, "toggled", G_CALLBACK (toggle_button_toggled), prefs);
-
+
if (!gconf_client_key_is_writable (prefs->gconf, key, NULL))
gtk_widget_set_sensitive ((GtkWidget *) toggle, FALSE);
}
@@ -832,8 +832,8 @@ emcp_free(EConfig *ec, GSList *items, void *data)
}
static gboolean
-signature_key_press (GtkTreeView *tree_view, GdkEventKey *event, EMComposerPrefs *prefs)
-{
+signature_key_press (GtkTreeView *tree_view, GdkEventKey *event, EMComposerPrefs *prefs)
+{
gboolean ret = FALSE;
/* No need to care about anything other than DEL key */
@@ -845,16 +845,16 @@ signature_key_press (GtkTreeView *tree_view, GdkEventKey *event, EMComposerPrefs
return ret;
}
-static gboolean
+static gboolean
sig_tree_event_cb (GtkTreeView *tree_view, GdkEvent *event, EMComposerPrefs *prefs)
{
gboolean ret = FALSE;
-
+
if (event->type == GDK_2BUTTON_PRESS) {
sig_edit_cb ((GtkWidget *)tree_view, prefs);
ret = TRUE;
- }
-
+ }
+
return ret;
}
@@ -874,9 +874,9 @@ em_composer_prefs_construct (EMComposerPrefs *prefs)
GSList *l;
int i;
char *gladefile;
-
+
prefs->gconf = mail_config_get_gconf_client ();
-
+
gladefile = g_build_filename (EVOLUTION_GLADEDIR,
"mail-config.glade",
NULL);
@@ -900,24 +900,24 @@ em_composer_prefs_construct (EMComposerPrefs *prefs)
e_config_add_items((EConfig *)ec, l, NULL, NULL, emcp_free, prefs);
/* General tab */
-
+
/* Default Behavior */
prefs->send_html = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "chkSendHTML"));
toggle_button_init (prefs, prefs->send_html, FALSE,
"/apps/evolution/mail/composer/send_html");
-
+
prefs->prompt_empty_subject = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "chkPromptEmptySubject"));
toggle_button_init (prefs, prefs->prompt_empty_subject, FALSE,
"/apps/evolution/mail/prompts/empty_subject");
-
+
prefs->prompt_bcc_only = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "chkPromptBccOnly"));
toggle_button_init (prefs, prefs->prompt_bcc_only, FALSE,
"/apps/evolution/mail/prompts/only_bcc");
-
+
prefs->auto_smileys = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "chkAutoSmileys"));
toggle_button_init (prefs, prefs->auto_smileys, FALSE,
"/apps/evolution/mail/composer/magic_smileys");
-
+
prefs->top_signature = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "chkTopSignature"));
toggle_button_init (prefs, prefs->top_signature, FALSE,
"/apps/evolution/mail/composer/top_signature");
@@ -925,7 +925,7 @@ em_composer_prefs_construct (EMComposerPrefs *prefs)
prefs->spell_check = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "chkEnableSpellChecking"));
toggle_button_init (prefs, prefs->spell_check, FALSE,
"/apps/evolution/mail/composer/inline_spelling");
-
+
prefs->charset = GTK_OPTION_MENU (glade_xml_get_widget (gui, "omenuCharset"));
buf = gconf_client_get_string (prefs->gconf, "/apps/evolution/mail/composer/charset", NULL);
menu = e_charset_picker_new (buf && *buf ? buf : e_iconv_locale_charset ());
@@ -933,7 +933,7 @@ em_composer_prefs_construct (EMComposerPrefs *prefs)
option_menu_connect (prefs, prefs->charset, G_CALLBACK (charset_activate),
"/apps/evolution/mail/composer/charset");
g_free (buf);
-
+
/* Spell Checking: GNOME Spell part */
prefs->color = GTK_COLOR_BUTTON (glade_xml_get_widget (gui, "colorButtonSpellCheckColor"));
prefs->language = GTK_TREE_VIEW (glade_xml_get_widget (gui, "listSpellCheckLanguage"));
@@ -945,7 +945,7 @@ em_composer_prefs_construct (EMComposerPrefs *prefs)
"active", 0,
NULL);
g_signal_connect (cell_renderer, "toggled", G_CALLBACK (spell_language_toggled), prefs);
-
+
gtk_tree_view_insert_column_with_attributes (prefs->language, -1, _("Language(s)"),
gtk_cell_renderer_text_new (),
"text", 1,
@@ -958,7 +958,7 @@ em_composer_prefs_construct (EMComposerPrefs *prefs)
gtk_widget_hide (GTK_WIDGET (prefs->color));
gtk_widget_hide (GTK_WIDGET (prefs->language));
}
-
+
/* Forwards and Replies */
prefs->forward_style = GTK_OPTION_MENU (glade_xml_get_widget (gui, "omenuForwardStyle"));
style = gconf_client_get_int (prefs->gconf, "/apps/evolution/mail/format/forward_style", NULL);
@@ -968,7 +968,7 @@ em_composer_prefs_construct (EMComposerPrefs *prefs)
attach_style_info, &style);
option_menu_connect (prefs, prefs->forward_style, G_CALLBACK (style_activate),
"/apps/evolution/mail/format/forward_style");
-
+
prefs->reply_style = GTK_OPTION_MENU (glade_xml_get_widget (gui, "omenuReplyStyle"));
style = gconf_client_get_int (prefs->gconf, "/apps/evolution/mail/format/reply_style", NULL);
gtk_option_menu_set_history (prefs->reply_style, style);
@@ -977,14 +977,14 @@ em_composer_prefs_construct (EMComposerPrefs *prefs)
attach_style_info, &style);
option_menu_connect (prefs, prefs->reply_style, G_CALLBACK (style_activate),
"/apps/evolution/mail/format/reply_style");
-
+
/* Signatures */
dialog = (GtkDialog *) gtk_dialog_new ();
-
+
gtk_widget_realize ((GtkWidget *) dialog);
gtk_container_set_border_width ((GtkContainer *)dialog->action_area, 12);
gtk_container_set_border_width ((GtkContainer *)dialog->vbox, 0);
-
+
prefs->sig_script_dialog = (GtkWidget *) dialog;
gtk_dialog_add_buttons (dialog, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT,
GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL);
@@ -993,19 +993,19 @@ em_composer_prefs_construct (EMComposerPrefs *prefs)
g_signal_connect (dialog, "response", G_CALLBACK (sig_add_script_response), prefs);
widget = glade_xml_get_widget (prefs->sig_script_gui, "vbox_add_script_signature");
gtk_box_pack_start ((GtkBox *) dialog->vbox, widget, TRUE, TRUE, 0);
-
+
prefs->sig_add = GTK_BUTTON (glade_xml_get_widget (gui, "cmdSignatureAdd"));
g_signal_connect (prefs->sig_add, "clicked", G_CALLBACK (sig_add_cb), prefs);
-
+
prefs->sig_add_script = GTK_BUTTON (glade_xml_get_widget (gui, "cmdSignatureAddScript"));
g_signal_connect (prefs->sig_add_script, "clicked", G_CALLBACK (sig_add_script_cb), prefs);
-
+
prefs->sig_edit = GTK_BUTTON (glade_xml_get_widget (gui, "cmdSignatureEdit"));
g_signal_connect (prefs->sig_edit, "clicked", G_CALLBACK (sig_edit_cb), prefs);
-
+
prefs->sig_delete = GTK_BUTTON (glade_xml_get_widget (gui, "cmdSignatureDelete"));
g_signal_connect (prefs->sig_delete, "clicked", G_CALLBACK (sig_delete_cb), prefs);
-
+
prefs->sig_list = GTK_TREE_VIEW (glade_xml_get_widget (gui, "listSignatures"));
model = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_POINTER);
gtk_tree_view_set_model (prefs->sig_list, (GtkTreeModel *)model);
@@ -1017,9 +1017,9 @@ em_composer_prefs_construct (EMComposerPrefs *prefs)
gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE);
g_signal_connect (selection, "changed", G_CALLBACK (sig_selection_changed), prefs);
g_signal_connect (prefs->sig_list, "event", G_CALLBACK (sig_tree_event_cb), prefs);
-
+
sig_fill_list (prefs);
-
+
/* preview GtkHTML widget */
widget = glade_xml_get_widget (gui, "scrolled-sig");
prefs->sig_preview = (GtkHTML *) gtk_html_new ();
@@ -1032,7 +1032,7 @@ em_composer_prefs_construct (EMComposerPrefs *prefs)
e_config_set_target((EConfig *)ec, (EConfigTarget *)target);
toplevel = e_config_create_widget((EConfig *)ec);
gtk_container_add (GTK_CONTAINER (prefs), toplevel);
-
+
g_signal_connect (prefs->sig_list, "key-press-event", G_CALLBACK(signature_key_press), prefs);
}
@@ -1040,9 +1040,9 @@ GtkWidget *
em_composer_prefs_new (void)
{
EMComposerPrefs *new;
-
+
new = (EMComposerPrefs *) g_object_new (em_composer_prefs_get_type (), NULL);
em_composer_prefs_construct (new);
-
+
return (GtkWidget *) new;
}
diff --git a/mail/em-composer-prefs.h b/mail/em-composer-prefs.h
index e6e3638dd9..9a34dcda0a 100644
--- a/mail/em-composer-prefs.h
+++ b/mail/em-composer-prefs.h
@@ -55,36 +55,36 @@ struct _GtkWindow;
struct _EMComposerPrefs {
GtkVBox parent_object;
-
+
struct _GConfClient *gconf;
-
+
struct _GladeXML *gui;
-
+
/* General tab */
-
+
/* Default Behavior */
struct _GtkToggleButton *send_html;
struct _GtkToggleButton *auto_smileys;
struct _GtkToggleButton *prompt_empty_subject;
struct _GtkToggleButton *prompt_bcc_only;
struct _GtkOptionMenu *charset;
-
+
struct _GtkToggleButton *spell_check;
struct _GtkColorButton *color;
struct _GtkTreeView *language;
CORBA_sequence_GNOME_Spell_Language *language_seq;
gboolean spell_active;
-
+
struct _GdkPixbuf *enabled_pixbuf;
-
+
/* Forwards and Replies */
struct _GtkOptionMenu *forward_style;
struct _GtkOptionMenu *reply_style;
struct _GtkToggleButton *top_signature;
-
+
/* Keyboard Shortcuts */
struct _GtkOptionMenu *shortcuts_type;
-
+
/* Signatures */
struct _GtkTreeView *sig_list;
GHashTable *sig_hash;
@@ -93,10 +93,10 @@ struct _EMComposerPrefs {
struct _GtkButton *sig_edit;
struct _GtkButton *sig_delete;
struct _GtkHTML *sig_preview;
-
+
struct _GladeXML *sig_script_gui;
struct _GtkWidget *sig_script_dialog;
-
+
guint sig_added_id;
guint sig_removed_id;
guint sig_changed_id;
@@ -104,9 +104,9 @@ struct _EMComposerPrefs {
struct _EMComposerPrefsClass {
GtkVBoxClass parent_class;
-
+
/* signals */
-
+
};
GType em_composer_prefs_get_type (void);
diff --git a/mail/em-composer-utils.c b/mail/em-composer-utils.c
index ab3e6c7812..580c9650f9 100644
--- a/mail/em-composer-utils.c
+++ b/mail/em-composer-utils.c
@@ -70,10 +70,10 @@ static EAccount * guess_account (CamelMimeMessage *message, CamelFolder *folder)
struct emcs_t {
unsigned int ref_count;
-
+
CamelFolder *drafts_folder;
char *drafts_uid;
-
+
CamelFolder *folder;
guint32 flags, set;
char *uid;
@@ -83,7 +83,7 @@ static struct emcs_t *
emcs_new (void)
{
struct emcs_t *emcs;
-
+
emcs = g_new (struct emcs_t, 1);
emcs->ref_count = 1;
emcs->drafts_folder = NULL;
@@ -92,7 +92,7 @@ emcs_new (void)
emcs->flags = 0;
emcs->set = 0;
emcs->uid = NULL;
-
+
return emcs;
}
@@ -102,7 +102,7 @@ free_emcs (struct emcs_t *emcs)
if (emcs->drafts_folder)
camel_object_unref (emcs->drafts_folder);
g_free (emcs->drafts_uid);
-
+
if (emcs->folder)
camel_object_unref (emcs->folder);
g_free (emcs->uid);
@@ -135,14 +135,14 @@ ask_confirm_for_unwanted_html_mail (EMsgComposer *composer, EDestination **recip
gboolean res;
GString *str;
int i;
-
+
str = g_string_new("");
for (i = 0; recipients[i] != NULL; ++i) {
if (!e_destination_get_html_mail_pref (recipients[i])) {
const char *name;
-
+
name = e_destination_get_textrep (recipients[i], FALSE);
-
+
g_string_append_printf (str, " %s\n", name);
}
}
@@ -173,7 +173,7 @@ ask_confirm_for_only_bcc (EMsgComposer *composer, gboolean hidden_list_case)
realizing it. To try to avoid being totally confusing, I've changed
this dialog to provide slightly different text in that case, to
better explain what the hell is going on. */
-
+
return em_utils_prompt_user((GtkWindow *)composer, "/apps/evolution/mail/prompts/only_bcc",
hidden_list_case?"mail:ask-send-only-bcc-contact":"mail:ask-send-only-bcc", NULL);
}
@@ -190,9 +190,9 @@ composer_send_queued_cb (CamelFolder *folder, CamelMimeMessage *msg, CamelMessag
{
struct emcs_t *emcs;
struct _send_data *send = data;
-
+
emcs = send->emcs;
-
+
if (queued) {
if (emcs && emcs->drafts_folder) {
/* delete the old draft message */
@@ -204,7 +204,7 @@ composer_send_queued_cb (CamelFolder *folder, CamelMimeMessage *msg, CamelMessag
g_free (emcs->drafts_uid);
emcs->drafts_uid = NULL;
}
-
+
if (emcs && emcs->folder) {
/* set any replied flags etc */
camel_folder_set_message_flags (emcs->folder, emcs->uid, emcs->flags, emcs->set);
@@ -214,9 +214,9 @@ composer_send_queued_cb (CamelFolder *folder, CamelMimeMessage *msg, CamelMessag
g_free (emcs->uid);
emcs->uid = NULL;
}
-
+
gtk_widget_destroy (GTK_WIDGET (send->composer));
-
+
if (send->send && camel_session_is_online (session)) {
/* queue a message send */
mail_send ();
@@ -228,20 +228,20 @@ composer_send_queued_cb (CamelFolder *folder, CamelMimeMessage *msg, CamelMessag
0, NULL, em_utils_composer_send_cb, NULL);
g_signal_handlers_disconnect_matched (send->composer, G_SIGNAL_MATCH_FUNC, 0,
0, NULL, em_utils_composer_save_draft_cb, NULL);
-
+
/* reconnect to the signals using a non-NULL emcs for the callback data */
em_composer_utils_setup_default_callbacks (send->composer);
}
-
+
e_msg_composer_set_enable_autosave (send->composer, TRUE);
gtk_widget_show (GTK_WIDGET (send->composer));
}
-
+
camel_message_info_free (info);
-
+
if (send->emcs)
emcs_unref (send->emcs);
-
+
g_object_unref (send->composer);
g_free (send);
}
@@ -262,23 +262,23 @@ composer_get_message (EMsgComposer *composer, gboolean save_html_object_data)
GList *postlist;
EMEvent *eme;
EMEventTargetComposer *target;
-
+
gconf = mail_config_get_gconf_client ();
-
+
/* We should do all of the validity checks based on the composer, and not on
the created message, as extra interaction may occur when we get the message
(e.g. to get a passphrase to sign a message) */
-
+
/* get the message recipients */
recipients = e_msg_composer_get_recipients (composer);
-
+
cia = camel_internet_address_new ();
-
+
/* see which ones are visible/present, etc */
if (recipients) {
for (i = 0; recipients[i] != NULL; i++) {
const char *addr = e_destination_get_address (recipients[i]);
-
+
if (addr && addr[0]) {
camel_address_decode ((CamelAddress *) cia, addr);
if (camel_address_length ((CamelAddress *) cia) > 0) {
@@ -294,12 +294,12 @@ composer_get_message (EMsgComposer *composer, gboolean save_html_object_data)
}
}
}
-
+
recipients_bcc = e_msg_composer_get_bcc (composer);
if (recipients_bcc) {
for (i = 0; recipients_bcc[i] != NULL; i++) {
const char *addr = e_destination_get_address (recipients_bcc[i]);
-
+
if (addr && addr[0]) {
camel_address_decode ((CamelAddress *) cia, addr);
if (camel_address_length ((CamelAddress *) cia) > 0) {
@@ -308,65 +308,65 @@ composer_get_message (EMsgComposer *composer, gboolean save_html_object_data)
}
}
}
-
+
e_destination_freev (recipients_bcc);
}
-
+
camel_object_unref (cia);
postlist = e_msg_composer_hdrs_get_post_to(e_msg_composer_get_hdrs (composer));
num_post = g_list_length(postlist);
g_list_foreach(postlist, (GFunc)g_free, NULL);
g_list_free(postlist);
-
+
/* I'm sensing a lack of love, er, I mean recipients. */
if (num == 0 && num_post == 0) {
e_error_run((GtkWindow *)composer, "mail:send-no-recipients", NULL);
goto finished;
}
-
+
if (num > 0 && (num == num_bcc || shown == 0)) {
- /* this means that the only recipients are Bcc's */
+ /* this means that the only recipients are Bcc's */
if (!ask_confirm_for_only_bcc (composer, shown == 0))
goto finished;
}
-
+
send_html = gconf_client_get_bool (gconf, "/apps/evolution/mail/composer/send_html", NULL);
confirm_html = gconf_client_get_bool (gconf, "/apps/evolution/mail/prompts/unwanted_html", NULL);
-
+
/* Only show this warning if our default is to send html. If it isn't, we've
manually switched into html mode in the composer and (presumably) had a good
reason for doing this. */
if (e_msg_composer_get_send_html (composer) && send_html && confirm_html) {
gboolean html_problem = FALSE;
-
+
if (recipients) {
for (i = 0; recipients[i] != NULL && !html_problem; i++) {
if (!e_destination_get_html_mail_pref (recipients[i]))
html_problem = TRUE;
}
}
-
+
if (html_problem) {
html_problem = !ask_confirm_for_unwanted_html_mail (composer, recipients);
if (html_problem)
goto finished;
}
}
-
+
/* Check for no subject */
subject = e_msg_composer_get_subject (composer);
if (subject == NULL || subject[0] == '\0') {
if (!ask_confirm_for_empty_subject (composer))
goto finished;
}
-
+
/** @Event: composer.presendchecks
* @Title: Composer PreSend Checks
* @Target: EMEventTargetMessage
- *
+ *
* composer.presendchecks is emitted during pre-checks for the message just before sending.
- * Since the e-plugin framework doesn't provide a way to return a value from the plugin,
+ * Since the e-plugin framework doesn't provide a way to return a value from the plugin,
* use 'presend_check_status' to set whether the check passed / failed.
*/
eme = em_event_peek();
@@ -382,10 +382,10 @@ composer_get_message (EMsgComposer *composer, gboolean save_html_object_data)
message = e_msg_composer_get_message (composer, save_html_object_data);
if (message == NULL)
goto finished;
-
+
/* Add info about the sending account */
account = e_msg_composer_get_preferred_account (composer);
-
+
if (account) {
/* FIXME: Why isn't this crap just in e_msg_composer_get_message? */
camel_medium_set_header (CAMEL_MEDIUM (message), "X-Evolution-Account", account->uid);
@@ -393,18 +393,18 @@ composer_get_message (EMsgComposer *composer, gboolean save_html_object_data)
camel_medium_set_header (CAMEL_MEDIUM (message), "X-Evolution-Fcc", account->sent_folder_uri);
if (account->id->organization && *account->id->organization) {
char *org;
-
+
org = camel_header_encode_string ((const unsigned char *)account->id->organization);
camel_medium_set_header (CAMEL_MEDIUM (message), "Organization", org);
g_free (org);
}
}
-
+
finished:
-
+
if (recipients)
e_destination_freev (recipients);
-
+
return message;
}
@@ -428,11 +428,11 @@ em_utils_composer_send_cb (EMsgComposer *composer, gpointer user_data)
mail_folder = mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_OUTBOX);
camel_object_ref (mail_folder);
-
+
/* mail the message */
info = camel_message_info_new(NULL);
camel_message_info_set_flags(info, CAMEL_MESSAGE_SEEN, ~0);
-
+
send = g_malloc (sizeof (*send));
send->emcs = user_data;
if (send->emcs)
@@ -443,7 +443,7 @@ em_utils_composer_send_cb (EMsgComposer *composer, gpointer user_data)
gtk_widget_hide (GTK_WIDGET (composer));
e_msg_composer_set_enable_autosave (composer, FALSE);
-
+
mail_append_mail (mail_folder, message, info, composer_send_queued_cb, send);
camel_object_unref (mail_folder);
camel_object_unref (message);
@@ -462,23 +462,23 @@ save_draft_done (CamelFolder *folder, CamelMimeMessage *msg, CamelMessageInfo *i
{
struct _save_draft_info *sdi = user_data;
struct emcs_t *emcs;
-
+
if (!ok)
goto done;
e_msg_composer_set_saved (sdi->composer);
-
+
if ((emcs = sdi->emcs) == NULL) {
emcs = emcs_new ();
-
+
/* disconnect the previous signal handlers */
g_signal_handlers_disconnect_by_func (sdi->composer, G_CALLBACK (em_utils_composer_send_cb), NULL);
g_signal_handlers_disconnect_by_func (sdi->composer, G_CALLBACK (em_utils_composer_save_draft_cb), NULL);
-
+
/* reconnect to the signals using a non-NULL emcs for the callback data */
em_composer_utils_setup_default_callbacks (sdi->composer);
}
-
+
if (emcs->drafts_folder) {
/* delete the original draft message */
camel_folder_set_message_flags (emcs->drafts_folder, emcs->drafts_uid,
@@ -489,7 +489,7 @@ save_draft_done (CamelFolder *folder, CamelMimeMessage *msg, CamelMessageInfo *i
g_free (emcs->drafts_uid);
emcs->drafts_uid = NULL;
}
-
+
if (emcs->folder) {
/* set the replied flags etc */
camel_folder_set_message_flags (emcs->folder, emcs->uid, emcs->flags, emcs->set);
@@ -498,16 +498,16 @@ save_draft_done (CamelFolder *folder, CamelMimeMessage *msg, CamelMessageInfo *i
g_free (emcs->uid);
emcs->uid = NULL;
}
-
+
if (appended_uid) {
camel_object_ref (folder);
emcs->drafts_folder = folder;
emcs->drafts_uid = g_strdup (appended_uid);
}
-
+
if (sdi->quit)
gtk_widget_destroy (GTK_WIDGET (sdi->composer));
-
+
done:
g_object_unref (sdi->composer);
if (sdi->emcs)
@@ -520,7 +520,7 @@ static void
save_draft_folder (char *uri, CamelFolder *folder, gpointer data)
{
CamelFolder **save = data;
-
+
if (folder) {
*save = folder;
camel_object_ref (folder);
@@ -556,10 +556,10 @@ em_utils_composer_save_draft_cb (EMsgComposer *composer, int quit, gpointer user
if (account && account->drafts_folder_uri &&
strcmp (account->drafts_folder_uri, default_drafts_folder_uri) != 0) {
int id;
-
+
id = mail_get_folder (account->drafts_folder_uri, 0, save_draft_folder, &folder, mail_thread_new);
mail_msg_wait (id);
-
+
if (!folder || !account->enabled) {
if (e_error_run((GtkWindow *)composer, "mail:ask-default-drafts", NULL) != GTK_RESPONSE_YES) {
g_object_unref(composer);
@@ -569,7 +569,7 @@ em_utils_composer_save_draft_cb (EMsgComposer *composer, int quit, gpointer user
g_free(sdi);
return;
}
-
+
folder = drafts_folder;
camel_object_ref (drafts_folder);
}
@@ -577,7 +577,7 @@ em_utils_composer_save_draft_cb (EMsgComposer *composer, int quit, gpointer user
folder = drafts_folder;
camel_object_ref (folder);
}
-
+
info = camel_message_info_new(NULL);
camel_message_info_set_flags(info, CAMEL_MESSAGE_DRAFT | CAMEL_MESSAGE_SEEN, ~0);
@@ -591,9 +591,9 @@ em_composer_utils_setup_callbacks (EMsgComposer *composer, CamelFolder *folder,
guint32 flags, guint32 set, CamelFolder *drafts, const char *drafts_uid)
{
struct emcs_t *emcs;
-
+
emcs = emcs_new ();
-
+
if (folder && uid) {
camel_object_ref (folder);
emcs->folder = folder;
@@ -601,16 +601,16 @@ em_composer_utils_setup_callbacks (EMsgComposer *composer, CamelFolder *folder,
emcs->flags = flags;
emcs->set = set;
}
-
+
if (drafts && drafts_uid) {
camel_object_ref (drafts);
emcs->drafts_folder = drafts;
emcs->drafts_uid = g_strdup (drafts_uid);
}
-
+
g_signal_connect (composer, "send", G_CALLBACK (em_utils_composer_send_cb), emcs);
g_signal_connect (composer, "save-draft", G_CALLBACK (em_utils_composer_save_draft_cb), emcs);
-
+
g_object_weak_ref ((GObject *) composer, (GWeakNotify) composer_destroy_cb, emcs);
}
@@ -677,12 +677,12 @@ em_utils_compose_new_message_with_mailto (const char *url, const char *fromuri)
{
EMsgComposer *composer;
EAccount *account = NULL;
-
+
if (url != NULL)
composer = e_msg_composer_new_from_url (url);
else
composer = e_msg_composer_new ();
-
+
em_composer_utils_setup_default_callbacks (composer);
if (fromuri
@@ -691,7 +691,7 @@ em_utils_compose_new_message_with_mailto (const char *url, const char *fromuri)
e_msg_composer_unset_changed (composer);
e_msg_composer_drop_editor_undo (composer);
-
+
gtk_widget_show ((GtkWidget *) composer);
gdk_window_raise (((GtkWidget *) composer)->window);
}
@@ -709,28 +709,28 @@ em_utils_post_to_folder (CamelFolder *folder)
{
EMsgComposer *composer;
EAccount *account;
-
+
composer = e_msg_composer_new_with_type (E_MSG_COMPOSER_POST);
-
+
if (folder != NULL) {
char *url = mail_tools_folder_to_url (folder);
-
+
e_msg_composer_hdrs_set_post_to (e_msg_composer_get_hdrs (composer), url);
g_free (url);
-
+
url = camel_url_to_string (CAMEL_SERVICE (folder->parent_store)->url, CAMEL_URL_HIDE_ALL);
account = mail_config_get_account_by_source_url (url);
g_free (url);
-
+
if (account)
e_msg_composer_hdrs_set_from_account (e_msg_composer_get_hdrs(composer), account->name);
}
-
+
em_composer_utils_setup_default_callbacks (composer);
-
+
e_msg_composer_unset_changed (composer);
e_msg_composer_drop_editor_undo (composer);
-
+
gtk_widget_show ((GtkWidget *) composer);
}
@@ -746,17 +746,17 @@ void
em_utils_post_to_url (const char *url)
{
EMsgComposer *composer;
-
+
composer = e_msg_composer_new_with_type (E_MSG_COMPOSER_POST);
-
+
if (url != NULL)
e_msg_composer_hdrs_set_post_to (e_msg_composer_get_hdrs (composer), url);
-
+
em_composer_utils_setup_default_callbacks (composer);
-
+
e_msg_composer_unset_changed (composer);
e_msg_composer_drop_editor_undo (composer);
-
+
gtk_widget_show ((GtkWidget *) composer);
}
@@ -771,7 +771,7 @@ edit_message (CamelMimeMessage *message, CamelFolder *drafts, const char *uid)
em_composer_utils_setup_callbacks (composer, NULL, NULL, 0, 0, drafts, uid);
e_msg_composer_unset_changed (composer);
e_msg_composer_drop_editor_undo (composer);
-
+
gtk_widget_show (GTK_WIDGET (composer));
}
@@ -786,7 +786,7 @@ void
em_utils_edit_message (CamelMimeMessage *message)
{
g_return_if_fail (CAMEL_IS_MIME_MESSAGE (message));
-
+
edit_message (message, NULL, NULL);
}
@@ -795,13 +795,13 @@ edit_messages (CamelFolder *folder, GPtrArray *uids, GPtrArray *msgs, void *user
{
gboolean replace = GPOINTER_TO_INT (user_data);
int i;
-
+
if (msgs == NULL)
return;
-
+
for (i = 0; i < msgs->len; i++) {
camel_medium_remove_header (CAMEL_MEDIUM (msgs->pdata[i]), "X-Mailer");
-
+
if (replace)
edit_message (msgs->pdata[i], folder, uids->pdata[i]);
else
@@ -822,7 +822,7 @@ em_utils_edit_messages (CamelFolder *folder, GPtrArray *uids, gboolean replace)
{
g_return_if_fail (CAMEL_IS_FOLDER (folder));
g_return_if_fail (uids != NULL);
-
+
mail_get_messages (folder, uids, edit_messages, GINT_TO_POINTER (replace));
}
@@ -831,7 +831,7 @@ static void
forward_attached (CamelFolder *folder, GPtrArray *messages, CamelMimePart *part, char *subject, const char *fromuri)
{
EMsgComposer *composer;
-
+
composer = create_new_composer (subject, fromuri);
if (composer == NULL)
return;
@@ -839,7 +839,7 @@ forward_attached (CamelFolder *folder, GPtrArray *messages, CamelMimePart *part,
e_msg_composer_attach (composer, part);
e_msg_composer_unset_changed (composer);
e_msg_composer_drop_editor_undo (composer);
-
+
gtk_widget_show (GTK_WIDGET (composer));
}
@@ -868,7 +868,7 @@ em_utils_forward_attached (CamelFolder *folder, GPtrArray *uids, const char *fro
{
g_return_if_fail (CAMEL_IS_FOLDER (folder));
g_return_if_fail (uids != NULL);
-
+
mail_build_attachment (folder, uids, forward_attached_cb, g_strdup(fromuri));
}
@@ -893,9 +893,9 @@ forward_non_attached (GPtrArray *messages, int style, const char *fromuri)
message = messages->pdata[i];
subject = mail_tool_generate_forward_subject (message);
-
+
text = em_utils_message_to_html (message, _("-------- Forwarded Message --------"), flags, &len, NULL);
-
+
if (text) {
composer = create_new_composer (subject, fromuri);
@@ -906,12 +906,12 @@ forward_non_attached (GPtrArray *messages, int style, const char *fromuri)
e_msg_composer_set_body_text (composer, text, len);
e_msg_composer_unset_changed (composer);
e_msg_composer_drop_editor_undo (composer);
-
+
gtk_widget_show (GTK_WIDGET (composer));
}
g_free (text);
}
-
+
g_free (subject);
}
}
@@ -936,7 +936,7 @@ em_utils_forward_inline (CamelFolder *folder, GPtrArray *uids, const char *fromu
{
g_return_if_fail (CAMEL_IS_FOLDER (folder));
g_return_if_fail (uids != NULL);
-
+
mail_get_messages (folder, uids, forward_inline, g_strdup(fromuri));
}
@@ -961,7 +961,7 @@ em_utils_forward_quoted (CamelFolder *folder, GPtrArray *uids, const char *fromu
{
g_return_if_fail (CAMEL_IS_FOLDER (folder));
g_return_if_fail (uids != NULL);
-
+
mail_get_messages (folder, uids, forward_quoted, g_strdup(fromuri));
}
@@ -981,20 +981,20 @@ em_utils_forward_message (CamelMimeMessage *message, const char *fromuri)
GConfClient *gconf;
char *subject;
int mode;
-
+
messages = g_ptr_array_new ();
g_ptr_array_add (messages, message);
-
+
gconf = mail_config_get_gconf_client ();
mode = gconf_client_get_int (gconf, "/apps/evolution/mail/format/forward_style", NULL);
-
+
switch (mode) {
case MAIL_CONFIG_FORWARD_ATTACHED:
default:
part = mail_tool_make_message_attachment (message);
-
+
subject = mail_tool_generate_forward_subject (message);
-
+
forward_attached (NULL, messages, part, subject, fromuri);
camel_object_unref (part);
g_free (subject);
@@ -1006,7 +1006,7 @@ em_utils_forward_message (CamelMimeMessage *message, const char *fromuri)
forward_non_attached (messages, MAIL_CONFIG_FORWARD_QUOTED, fromuri);
break;
}
-
+
g_ptr_array_free (messages, TRUE);
}
@@ -1023,10 +1023,10 @@ em_utils_forward_messages (CamelFolder *folder, GPtrArray *uids, const char *fro
{
GConfClient *gconf;
int mode;
-
+
gconf = mail_config_get_gconf_client ();
mode = gconf_client_get_int (gconf, "/apps/evolution/mail/format/forward_style", NULL);
-
+
switch (mode) {
case MAIL_CONFIG_FORWARD_ATTACHED:
default:
@@ -1048,19 +1048,19 @@ redirect_get_composer (CamelMimeMessage *message)
{
EMsgComposer *composer;
EAccount *account;
-
+
/* QMail will refuse to send a message if it finds one of
it's Delivered-To headers in the message, so remove all
Delivered-To headers. Fixes bug #23635. */
while (camel_medium_get_header (CAMEL_MEDIUM (message), "Delivered-To"))
camel_medium_remove_header (CAMEL_MEDIUM (message), "Delivered-To");
-
+
account = guess_account (message, NULL);
-
+
composer = e_msg_composer_new_redirect (message, account ? account->name : NULL);
-
+
em_composer_utils_setup_default_callbacks (composer);
-
+
return composer;
}
@@ -1075,11 +1075,11 @@ void
em_utils_redirect_message (CamelMimeMessage *message)
{
EMsgComposer *composer;
-
+
g_return_if_fail (CAMEL_IS_MIME_MESSAGE (message));
-
+
composer = redirect_get_composer (message);
-
+
gtk_widget_show (GTK_WIDGET (composer));
e_msg_composer_unset_changed (composer);
e_msg_composer_drop_editor_undo (composer);
@@ -1090,7 +1090,7 @@ redirect_msg (CamelFolder *folder, const char *uid, CamelMimeMessage *message, v
{
if (message == NULL)
return;
-
+
em_utils_redirect_message (message);
}
@@ -1107,7 +1107,7 @@ em_utils_redirect_message_by_uid (CamelFolder *folder, const char *uid)
{
g_return_if_fail (CAMEL_IS_FOLDER (folder));
g_return_if_fail (uid != NULL);
-
+
mail_get_message (folder, uid, redirect_msg, NULL, mail_thread_new);
}
@@ -1151,7 +1151,7 @@ em_utils_handle_receipt (CamelFolder *folder, const char *uid, CamelMimeMessage
camel_message_info_set_user_flag(info, "receipt-handled", TRUE);
camel_message_info_free(info);
-
+
account = guess_account(msg, folder);
/* TODO: should probably decode/format the address, it could be in rfc2047 format */
@@ -1161,7 +1161,7 @@ em_utils_handle_receipt (CamelFolder *folder, const char *uid, CamelMimeMessage
while (camel_mime_is_lwsp(*addr))
addr++;
}
-
+
if (account && (account->receipt_policy == E_ACCOUNT_RECEIPT_ALWAYS || account->receipt_policy == E_ACCOUNT_RECEIPT_ASK)
&& e_error_run (NULL, "mail:ask-receipt", addr, camel_mime_message_get_subject(msg)) == GTK_RESPONSE_YES)
em_utils_send_receipt(folder, msg);
@@ -1187,7 +1187,7 @@ em_utils_send_receipt (CamelFolder *folder, CamelMimeMessage *message)
CamelDataWrapper *receipt_text, *receipt_data;
CamelContentType *type;
CamelInternetAddress *addr;
- CamelStream *stream;
+ CamelStream *stream;
CamelFolder *out_folder;
CamelMessageInfo *info;
const char *message_id = camel_medium_get_header (CAMEL_MEDIUM (message), "Message-ID");
@@ -1201,27 +1201,27 @@ em_utils_send_receipt (CamelFolder *folder, CamelMimeMessage *message)
if (!receipt_address)
return;
-
+
/* Collect information for the receipt */
-
+
/* We use camel_header_msgid_generate () to get a canonical
* hostname, then skip the part leading to '@' */
hostname = strchr ((fake_msgid = camel_header_msgid_generate ()), '@');
hostname++;
-
+
self_address = account->id->address;
if (!message_id)
message_id = "";
if (!message_date)
message_date ="";
-
+
/* Create toplevel container */
camel_data_wrapper_set_mime_type (CAMEL_DATA_WRAPPER (body),
"multipart/report;"
"report-type=\"disposition-notification\"");
- camel_multipart_set_boundary (body, NULL);
-
+ camel_multipart_set_boundary (body, NULL);
+
/* Create textual receipt */
receipt_text = camel_data_wrapper_new ();
type = camel_content_type_new ("text", "plain");
@@ -1234,20 +1234,20 @@ em_utils_send_receipt (CamelFolder *folder, CamelMimeMessage *message)
self_address, message_subject, message_date);
camel_data_wrapper_construct_from_stream (receipt_text, stream);
camel_object_unref (stream);
-
+
part = camel_mime_part_new ();
camel_medium_set_content_object (CAMEL_MEDIUM (part), receipt_text);
camel_object_unref (receipt_text);
camel_multipart_add_part (body, part);
- camel_object_unref (part);
-
+ camel_object_unref (part);
+
/* Create the machine-readable receipt */
receipt_data = camel_data_wrapper_new ();
stream = camel_stream_mem_new ();
part = camel_mime_part_new ();
ua = g_strdup_printf ("%s; %s", hostname, "Evolution " VERSION SUB_VERSION " " VERSION_COMMENT);
- recipient = g_strdup_printf ("rfc822; %s", self_address);
+ recipient = g_strdup_printf ("rfc822; %s", self_address);
type = camel_content_type_new ("message", "disposition-notification");
camel_data_wrapper_set_mime_type_field (CAMEL_DATA_WRAPPER (part), type);
@@ -1260,27 +1260,27 @@ em_utils_send_receipt (CamelFolder *folder, CamelMimeMessage *message)
g_free (ua);
g_free (recipient);
g_free (fake_msgid);
-
+
camel_data_wrapper_construct_from_stream (receipt_data, stream);
camel_object_unref (stream);
camel_medium_set_content_object (CAMEL_MEDIUM (part), receipt_data);
camel_object_unref (receipt_data);
camel_multipart_add_part (body, part);
- camel_object_unref (part);
-
+ camel_object_unref (part);
+
/* Finish creating the message */
camel_medium_set_content_object (CAMEL_MEDIUM (receipt), CAMEL_DATA_WRAPPER (body));
camel_object_unref (body);
-
+
receipt_subject = g_strdup_printf ("Delivery Notification for: \"%s\"", message_subject);
camel_mime_message_set_subject (receipt, receipt_subject);
g_free (receipt_subject);
-
+
addr = camel_internet_address_new ();
camel_address_decode (CAMEL_ADDRESS (addr), self_address);
camel_mime_message_set_from (receipt, addr);
camel_object_unref (addr);
-
+
addr = camel_internet_address_new ();
camel_address_decode (CAMEL_ADDRESS (addr), receipt_address);
camel_mime_message_set_recipients (receipt, CAMEL_RECIPIENT_TYPE_TO, addr);
@@ -1288,11 +1288,11 @@ em_utils_send_receipt (CamelFolder *folder, CamelMimeMessage *message)
camel_medium_set_header (CAMEL_MEDIUM (receipt), "Return-Path", "<>");
if(account) {
- camel_medium_set_header (CAMEL_MEDIUM (receipt),
+ camel_medium_set_header (CAMEL_MEDIUM (receipt),
"X-Evolution-Account", account->uid);
- camel_medium_set_header (CAMEL_MEDIUM (receipt),
+ camel_medium_set_header (CAMEL_MEDIUM (receipt),
"X-Evolution-Transport", account->transport->url);
- camel_medium_set_header (CAMEL_MEDIUM (receipt),
+ camel_medium_set_header (CAMEL_MEDIUM (receipt),
"X-Evolution-Fcc", account->sent_folder_uri);
}
@@ -1312,19 +1312,19 @@ generate_account_hash (void)
EAccount *account, *def;
EAccountList *accounts;
EIterator *iter;
-
+
accounts = mail_config_get_accounts ();
account_hash = g_hash_table_new (camel_strcase_hash, camel_strcase_equal);
-
+
def = mail_config_get_default_account ();
-
+
iter = e_list_get_iterator ((EList *) accounts);
while (e_iterator_is_valid (iter)) {
account = (EAccount *) e_iterator_get (iter);
-
+
if (account->id->address) {
EAccount *acnt;
-
+
/* Accounts with identical email addresses that are enabled
* take precedence over the accounts that aren't. If all
* accounts with matching email addresses are disabled, then
@@ -1336,20 +1336,20 @@ generate_account_hash (void)
g_hash_table_remove (account_hash, acnt->id->address);
acnt = NULL;
}
-
+
if (!acnt)
g_hash_table_insert (account_hash, (char *) account->id->address, (void *) account);
}
-
+
e_iterator_next (iter);
}
-
+
g_object_unref (iter);
/* The default account has to be there if none of the enabled accounts are present */
if (g_hash_table_size (account_hash) == 0 && def && def->id->address)
g_hash_table_insert (account_hash, (char *) def->id->address, (void *) def);
-
+
return account_hash;
}
@@ -1358,33 +1358,33 @@ em_utils_camel_address_to_destination (CamelInternetAddress *iaddr)
{
EDestination *dest, **destv;
int n, i, j;
-
+
if (iaddr == NULL)
return NULL;
-
+
if ((n = camel_address_length ((CamelAddress *) iaddr)) == 0)
return NULL;
-
+
destv = g_malloc (sizeof (EDestination *) * (n + 1));
for (i = 0, j = 0; i < n; i++) {
const char *name, *addr;
-
+
if (camel_internet_address_get (iaddr, i, &name, &addr)) {
dest = e_destination_new ();
e_destination_set_name (dest, name);
e_destination_set_email (dest, addr);
-
+
destv[j++] = dest;
}
}
-
+
if (j == 0) {
g_free (destv);
return NULL;
}
-
+
destv[j] = NULL;
-
+
return destv;
}
@@ -1397,7 +1397,7 @@ reply_get_composer (CamelMimeMessage *message, EAccount *account,
EDestination **tov, **ccv;
EMsgComposer *composer;
char *subject;
-
+
g_return_val_if_fail (CAMEL_IS_MIME_MESSAGE (message), NULL);
g_return_val_if_fail (to == NULL || CAMEL_IS_INTERNET_ADDRESS (to), NULL);
g_return_val_if_fail (cc == NULL || CAMEL_IS_INTERNET_ADDRESS (cc), NULL);
@@ -1425,9 +1425,9 @@ reply_get_composer (CamelMimeMessage *message, EAccount *account,
}
e_msg_composer_set_headers (composer, account ? account->name : NULL, tov, ccv, NULL, subject);
-
+
g_free (subject);
-
+
/* add post-to, if nessecary */
if (postto && camel_address_length((CamelAddress *)postto)) {
char *store_url = NULL;
@@ -1444,28 +1444,28 @@ reply_get_composer (CamelMimeMessage *message, EAccount *account,
g_free(post);
g_free (store_url);
}
-
+
/* Add In-Reply-To and References. */
message_id = camel_medium_get_header (CAMEL_MEDIUM (message), "Message-Id");
references = camel_medium_get_header (CAMEL_MEDIUM (message), "References");
if (message_id) {
char *reply_refs;
-
+
e_msg_composer_add_header (composer, "In-Reply-To", message_id);
-
+
if (references)
reply_refs = g_strdup_printf ("%s %s", references, message_id);
else
reply_refs = g_strdup (message_id);
-
+
e_msg_composer_add_header (composer, "References", reply_refs);
g_free (reply_refs);
} else if (references) {
e_msg_composer_add_header (composer, "References", references);
}
-
+
e_msg_composer_drop_editor_undo (composer);
-
+
return composer;
}
@@ -1501,7 +1501,7 @@ guess_account (CamelMimeMessage *message, CamelFolder *folder)
account_hash = generate_account_hash ();
for (j=0;account == NULL && j<2;j++) {
const CamelInternetAddress *to;
-
+
to = camel_mime_message_get_recipients(message, types[j]);
if (to) {
for (i = 0; camel_internet_address_get(to, i, NULL, &tmp); i++) {
@@ -1532,7 +1532,7 @@ get_reply_sender (CamelMimeMessage *message, CamelInternetAddress *to, CamelNNTP
const CamelInternetAddress *reply_to;
const char *name, *addr, *posthdr;
int i;
-
+
/* check whether there is a 'Newsgroups: ' header in there */
if (postto
&& ((posthdr = camel_medium_get_header((CamelMedium *)message, "Followup-To"))
@@ -1540,11 +1540,11 @@ get_reply_sender (CamelMimeMessage *message, CamelInternetAddress *to, CamelNNTP
camel_address_decode((CamelAddress *)postto, posthdr);
return;
}
-
+
reply_to = camel_mime_message_get_reply_to (message);
if (!reply_to)
reply_to = camel_mime_message_get_from (message);
-
+
if (reply_to) {
for (i = 0; camel_internet_address_get (reply_to, i, &name, &addr); i++)
camel_internet_address_add (to, name, addr);
@@ -1556,38 +1556,38 @@ get_reply_list (CamelMimeMessage *message, CamelInternetAddress *to)
{
const char *header, *p;
char *addr;
-
+
/* Examples:
- *
+ *
* List-Post: <mailto:list@host.com>
* List-Post: <mailto:moderator@host.com?subject=list%20posting>
* List-Post: NO (posting not allowed on this list)
*/
if (!(header = camel_medium_get_header ((CamelMedium *) message, "List-Post")))
return FALSE;
-
+
while (*header == ' ' || *header == '\t')
header++;
-
+
/* check for NO */
if (!g_ascii_strncasecmp (header, "NO", 2))
return FALSE;
-
+
/* Search for the first mailto angle-bracket enclosed URL.
* (See rfc2369, Section 2, paragraph 3 for details) */
if (!(header = camel_strstrcase (header, "<mailto:")))
return FALSE;
-
+
header += 8;
-
+
p = header;
while (*p && !strchr ("?>", *p))
p++;
-
- addr = g_strndup (header, p - header);
+
+ addr = g_strndup (header, p - header);
camel_internet_address_add(to, NULL, addr);
g_free (addr);
-
+
return TRUE;
}
@@ -1596,7 +1596,7 @@ concat_unique_addrs (CamelInternetAddress *dest, const CamelInternetAddress *src
{
const char *name, *addr;
int i;
-
+
for (i = 0; camel_internet_address_get (src, i, &name, &addr); i++) {
if (!g_hash_table_lookup (rcpt_hash, addr)) {
camel_internet_address_add (dest, name, addr);
@@ -1612,7 +1612,7 @@ get_reply_all (CamelMimeMessage *message, CamelInternetAddress *to, CamelInterne
const char *name, *addr, *posthdr;
GHashTable *rcpt_hash;
int i;
-
+
/* check whether there is a 'Newsgroups: ' header in there */
if (postto) {
if ((posthdr = camel_medium_get_header((CamelMedium *)message, "Followup-To")))
@@ -1620,16 +1620,16 @@ get_reply_all (CamelMimeMessage *message, CamelInternetAddress *to, CamelInterne
if ((posthdr = camel_medium_get_header((CamelMedium *)message, "Newsgroups")))
camel_address_decode((CamelAddress *)postto, posthdr);
}
-
+
rcpt_hash = generate_account_hash ();
-
+
reply_to = camel_mime_message_get_reply_to (message);
if (!reply_to)
reply_to = camel_mime_message_get_from (message);
-
+
to_addrs = camel_mime_message_get_recipients (message, CAMEL_RECIPIENT_TYPE_TO);
cc_addrs = camel_mime_message_get_recipients (message, CAMEL_RECIPIENT_TYPE_CC);
-
+
if (reply_to) {
for (i = 0; camel_internet_address_get (reply_to, i, &name, &addr); i++) {
/* ignore references to the Reply-To address in the To and Cc lists */
@@ -1637,16 +1637,16 @@ get_reply_all (CamelMimeMessage *message, CamelInternetAddress *to, CamelInterne
/* In the case that we are doing a Reply-To-All, we do not want
to include the user's email address because replying to oneself
is kinda silly. */
-
+
camel_internet_address_add (to, name, addr);
g_hash_table_insert (rcpt_hash, (char *) addr, GINT_TO_POINTER (1));
}
}
}
-
+
concat_unique_addrs (cc, to_addrs, rcpt_hash);
concat_unique_addrs (cc, cc_addrs, rcpt_hash);
-
+
/* promote the first Cc: address to To: if To: is empty */
if (camel_address_length ((CamelAddress *) to) == 0 && camel_address_length ((CamelAddress *)cc) > 0) {
camel_internet_address_get (cc, 0, &name, &addr);
@@ -1660,7 +1660,7 @@ get_reply_all (CamelMimeMessage *message, CamelInternetAddress *to, CamelInterne
|| camel_internet_address_get(cc_addrs, 0, &name, &addr))) {
camel_internet_address_add(to, name, addr);
}
-
+
g_hash_table_destroy (rcpt_hash);
}
@@ -1688,14 +1688,14 @@ format_sender (GString *str, const char *attr, CamelMimeMessage *message)
{
const CamelInternetAddress *sender;
const char *name, *addr;
-
+
sender = camel_mime_message_get_from (message);
if (sender != NULL && camel_address_length (CAMEL_ADDRESS (sender)) > 0) {
camel_internet_address_get (sender, 0, &name, &addr);
} else {
name = _("an unknown sender");
}
-
+
if (name && !strcmp (attr, "{SenderName}")) {
g_string_append (str, name);
} else if (addr && !strcmp (attr, "{SenderEMail}")) {
@@ -1753,9 +1753,9 @@ attribution_format (const char *format, CamelMimeMessage *message)
struct tm tm;
time_t date;
int type;
-
+
str = g_string_new ("");
-
+
date = camel_mime_message_get_date (message, &tzone);
if (date == CAMEL_MESSAGE_DATE_CURRENT) {
@@ -1767,35 +1767,35 @@ attribution_format (const char *format, CamelMimeMessage *message)
time (&date);
tzone = 0;
}
-
+
/* Convert to UTC */
date += (tzone / 100) * 60 * 60;
date += (tzone % 100) * 60;
-
+
gmtime_r (&date, &tm);
-
+
start = inptr = format;
while (*inptr != '\0') {
start = inptr;
while (*inptr && strncmp (inptr, "${", 2) != 0)
inptr++;
-
+
g_string_append_len (str, start, inptr - start);
-
+
if (*inptr == '\0')
break;
-
+
start = ++inptr;
while (*inptr && *inptr != '}')
inptr++;
-
+
if (*inptr != '}') {
/* broken translation */
g_string_append_len (str, "${", 2);
inptr = start + 1;
continue;
}
-
+
inptr++;
len = inptr - start;
type = ATTRIB_UNKNOWN;
@@ -1805,7 +1805,7 @@ attribution_format (const char *format, CamelMimeMessage *message)
break;
}
}
-
+
switch (type) {
case ATTRIB_CUSTOM:
attribvars[i].v.formatter (str, attribvars[i].name, message);
@@ -1853,10 +1853,10 @@ attribution_format (const char *format, CamelMimeMessage *message)
break;
}
}
-
+
s = str->str;
g_string_free (str, FALSE);
-
+
return s;
}
@@ -1867,9 +1867,9 @@ composer_set_body (EMsgComposer *composer, CamelMimeMessage *message, EMFormat *
CamelMimePart *part;
GConfClient *gconf;
ssize_t len;
-
+
gconf = mail_config_get_gconf_client ();
-
+
switch (gconf_client_get_int (gconf, "/apps/evolution/mail/format/reply_style", NULL)) {
case MAIL_CONFIG_REPLY_DO_NOT_QUOTE:
/* do nothing */
@@ -1896,7 +1896,7 @@ composer_set_body (EMsgComposer *composer, CamelMimeMessage *message, EMFormat *
g_free (text);
break;
}
-
+
e_msg_composer_drop_editor_undo (composer);
}
@@ -1963,7 +1963,7 @@ em_utils_reply_to_message(CamelFolder *folder, const char *uid, CamelMimeMessage
/** @Event: message.replying
* @Title: Message being replied to
* @Target: EMEventTargetMessage
- *
+ *
* message.replying is emitted when a user starts replying to a message.
*/
@@ -1974,10 +1974,10 @@ em_utils_reply_to_message(CamelFolder *folder, const char *uid, CamelMimeMessage
to = camel_internet_address_new();
cc = camel_internet_address_new();
-
+
account = guess_account (message, folder);
flags = CAMEL_MESSAGE_ANSWERED | CAMEL_MESSAGE_SEEN;
-
+
switch (mode) {
case REPLY_MODE_SENDER:
if (folder)
@@ -1998,7 +1998,7 @@ em_utils_reply_to_message(CamelFolder *folder, const char *uid, CamelMimeMessage
get_reply_all(message, to, cc, postto);
break;
}
-
+
composer = reply_get_composer (message, account, to, cc, folder, postto);
e_msg_composer_add_message_attachments (composer, message, TRUE);
@@ -2006,11 +2006,11 @@ em_utils_reply_to_message(CamelFolder *folder, const char *uid, CamelMimeMessage
camel_object_unref(postto);
camel_object_unref(to);
camel_object_unref(cc);
-
+
composer_set_body (composer, message, source);
-
+
em_composer_utils_setup_callbacks (composer, folder, uid, flags, flags, NULL, NULL);
-
+
gtk_widget_show (GTK_WIDGET (composer));
e_msg_composer_unset_changed (composer);
}
@@ -2030,13 +2030,13 @@ post_reply_to_message (CamelFolder *folder, const char *uid, CamelMimeMessage *m
EAccount *account;
char *real_uid;
guint32 flags;
-
+
if (message == NULL)
return;
-
+
if (CAMEL_IS_VEE_FOLDER (folder)) {
CamelMessageInfo *info;
-
+
info = camel_folder_get_message_info (folder, uid);
real_folder = camel_vee_folder_get_location ((CamelVeeFolder *) folder, (struct _CamelVeeMessageInfo *) info, &real_uid);
camel_folder_free_message_info (folder, info);
@@ -2045,18 +2045,18 @@ post_reply_to_message (CamelFolder *folder, const char *uid, CamelMimeMessage *m
camel_object_ref (folder);
real_uid = g_strdup (uid);
}
-
+
account = guess_account (message, real_folder);
flags = CAMEL_MESSAGE_ANSWERED | CAMEL_MESSAGE_SEEN;
-
+
to = camel_internet_address_new();
get_reply_sender (message, to, NULL);
-
+
composer = e_msg_composer_new_with_type (E_MSG_COMPOSER_MAIL_POST);
-
+
/* construct the tov/ccv */
tov = em_utils_camel_address_to_destination (to);
-
+
/* Set the subject of the new message. */
if ((subject = (char *) camel_mime_message_get_subject (message))) {
if (g_ascii_strncasecmp (subject, "Re: ", 4) != 0)
@@ -2066,45 +2066,45 @@ post_reply_to_message (CamelFolder *folder, const char *uid, CamelMimeMessage *m
} else {
subject = g_strdup ("");
}
-
+
e_msg_composer_set_headers (composer, account ? account->name : NULL, tov, NULL, NULL, subject);
-
+
g_free (subject);
-
+
url = mail_tools_folder_to_url (real_folder);
e_msg_composer_hdrs_set_post_to (e_msg_composer_get_hdrs(composer), url);
g_free (url);
-
+
/* Add In-Reply-To and References. */
message_id = camel_medium_get_header (CAMEL_MEDIUM (message), "Message-Id");
references = camel_medium_get_header (CAMEL_MEDIUM (message), "References");
if (message_id) {
char *reply_refs;
-
+
e_msg_composer_add_header (composer, "In-Reply-To", message_id);
-
+
if (references)
reply_refs = g_strdup_printf ("%s %s", references, message_id);
else
reply_refs = g_strdup (message_id);
-
+
e_msg_composer_add_header (composer, "References", reply_refs);
g_free (reply_refs);
} else if (references) {
e_msg_composer_add_header (composer, "References", references);
}
-
+
e_msg_composer_drop_editor_undo (composer);
-
+
e_msg_composer_add_message_attachments (composer, message, TRUE);
-
+
composer_set_body (composer, message, NULL);
-
+
em_composer_utils_setup_callbacks (composer, real_folder, real_uid, flags, flags, NULL, NULL);
-
- gtk_widget_show (GTK_WIDGET (composer));
+
+ gtk_widget_show (GTK_WIDGET (composer));
e_msg_composer_unset_changed (composer);
-
+
camel_object_unref (real_folder);
camel_object_unref(to);
g_free (real_uid);
@@ -2124,6 +2124,6 @@ em_utils_post_reply_to_message_by_uid (CamelFolder *folder, const char *uid)
{
g_return_if_fail (CAMEL_IS_FOLDER (folder));
g_return_if_fail (uid != NULL);
-
+
mail_get_message (folder, uid, post_reply_to_message, NULL, mail_thread_new);
}
diff --git a/mail/em-config.c b/mail/em-config.c
index ef3f793563..80869faa4b 100644
--- a/mail/em-config.c
+++ b/mail/em-config.c
@@ -104,7 +104,7 @@ emp_target_free(EConfig *ep, EConfigTarget *t)
break; }
case EM_CONFIG_TARGET_ACCOUNT: {
EMConfigTargetAccount *s = (EMConfigTargetAccount *)t;
-
+
if (((EMConfig *)ep)->priv->account_changed_id) {
g_signal_handler_disconnect(s->account, ((EMConfig *)ep)->priv->account_changed_id);
((EMConfig *)ep)->priv->account_changed_id = 0;
@@ -157,7 +157,7 @@ emp_set_target(EConfig *ep, EConfigTarget *t)
break; }
case EM_CONFIG_TARGET_ACCOUNT: {
EMConfigTargetAccount *s = (EMConfigTargetAccount *)t;
-
+
((EMConfig *)ep)->priv->account_changed_id = g_signal_connect(s->account, "changed", G_CALLBACK(emp_account_changed), ep);
break; }
}
@@ -306,7 +306,7 @@ GType
em_config_hook_get_type(void)
{
static GType type = 0;
-
+
if (!type) {
static const GTypeInfo info = {
sizeof(EMConfigHookClass), NULL, NULL, (GClassInitFunc) emph_class_init, NULL, NULL,
@@ -316,6 +316,6 @@ em_config_hook_get_type(void)
emph_parent_class = g_type_class_ref(e_config_hook_get_type());
type = g_type_register_static(e_config_hook_get_type(), "EMConfigHook", &info, 0);
}
-
+
return type;
}
diff --git a/mail/em-event.c b/mail/em-event.c
index a690c25763..173d7d18fd 100644
--- a/mail/em-event.c
+++ b/mail/em-event.c
@@ -80,7 +80,7 @@ eme_target_free(EEvent *ep, EEventTarget *t)
break; }
case EM_EVENT_TARGET_COMPOSER : {
EMEventTargetComposer *s = (EMEventTargetComposer *)t;
-
+
if (s->composer)
g_object_unref (s->composer);
break; }
@@ -119,11 +119,11 @@ em_event_get_type(void)
/**
* em_event_peek:
- * @void:
- *
+ * @void:
+ *
* Get the singular instance of the mail event handler.
- *
- * Return value:
+ *
+ * Return value:
**/
EMEvent *em_event_peek(void)
{
@@ -249,7 +249,7 @@ GType
em_event_hook_get_type(void)
{
static GType type = 0;
-
+
if (!type) {
static const GTypeInfo info = {
sizeof(EMEventHookClass), NULL, NULL, (GClassInitFunc) emeh_class_init, NULL, NULL,
@@ -259,6 +259,6 @@ em_event_hook_get_type(void)
emeh_parent_class = g_type_class_ref(e_event_hook_get_type());
type = g_type_register_static(e_event_hook_get_type(), "EMEventHook", &info, 0);
}
-
+
return type;
}
diff --git a/mail/em-event.h b/mail/em-event.h
index 4279565c19..3db64e8cb4 100644
--- a/mail/em-event.h
+++ b/mail/em-event.h
@@ -98,7 +98,7 @@ typedef struct _EMEventTargetSendReceive EMEventTargetSendReceive;
struct _EMEventTargetSendReceive {
EEventTarget target;
-
+
struct _GtkWidget *table;
gpointer data;
int row;
diff --git a/mail/em-filter-context.c b/mail/em-filter-context.c
index 75b7e6a605..6c11261d12 100644
--- a/mail/em-filter-context.c
+++ b/mail/em-filter-context.c
@@ -35,7 +35,7 @@
/* For poking into filter-folder guts */
#include "em-filter-folder-element.h"
-#define d(x)
+#define d(x)
static void em_filter_context_class_init(EMFilterContextClass *klass);
static void em_filter_context_init(EMFilterContext *fc);
@@ -51,7 +51,7 @@ GType
em_filter_context_get_type(void)
{
static GType type = 0;
-
+
if (!type) {
static const GTypeInfo info = {
sizeof(EMFilterContextClass),
@@ -64,10 +64,10 @@ em_filter_context_get_type(void)
0, /* n_preallocs */
(GInstanceInitFunc) em_filter_context_init,
};
-
+
type = g_type_register_static(RULE_TYPE_CONTEXT, "EMFilterContext", &info, 0);
}
-
+
return type;
}
@@ -76,11 +76,11 @@ em_filter_context_class_init(EMFilterContextClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS(klass);
RuleContextClass *rc_class = RULE_CONTEXT_CLASS(klass);
-
+
parent_class = g_type_class_ref(RULE_TYPE_CONTEXT);
-
+
object_class->finalize = em_filter_context_finalise;
-
+
/* override methods */
rc_class->rename_uri = filter_rename_uri;
rc_class->delete_uri = filter_delete_uri;
@@ -95,7 +95,7 @@ em_filter_context_init(EMFilterContext *fc)
rule_context_add_part_set((RuleContext *) fc, "actionset", filter_part_get_type(),
(RCPartFunc) em_filter_context_add_action,
(RCNextPartFunc) em_filter_context_next_action);
-
+
rule_context_add_rule_set((RuleContext *) fc, "ruleset", em_filter_rule_get_type(),
(RCRuleFunc) rule_context_add_rule, rule_context_next_rule);
}
@@ -104,10 +104,10 @@ static void
em_filter_context_finalise(GObject *obj)
{
EMFilterContext *fc = (EMFilterContext *)obj;
-
+
g_list_foreach(fc->actions, (GFunc)g_object_unref, NULL);
g_list_free(fc->actions);
-
+
G_OBJECT_CLASS(parent_class)->finalize(obj);
}
@@ -115,7 +115,7 @@ em_filter_context_finalise(GObject *obj)
* em_filter_context_new:
*
* Create a new EMFilterContext object.
- *
+ *
* Return value: A new #EMFilterContext object.
**/
EMFilterContext *
@@ -142,10 +142,10 @@ FilterPart *
em_filter_context_create_action(EMFilterContext *fc, const char *name)
{
FilterPart *part;
-
+
if ((part = em_filter_context_find_action(fc, name)))
return filter_part_clone(part);
-
+
return NULL;
}
@@ -165,33 +165,33 @@ filter_rename_uri(RuleContext *rc, const char *olduri, const char *newuri, GComp
FilterElement *element;
int count = 0;
GList *changed = NULL;
-
+
d(printf("uri '%s' renamed to '%s'\n", olduri, newuri));
-
+
/* For all rules, for all actions, for all elements, rename any folder elements */
/* Yes we could do this inside each part itself, but not today */
rule = NULL;
while ((rule = rule_context_next_rule(rc, rule, NULL))) {
int rulecount = 0;
-
+
d(printf("checking rule '%s'\n", rule->name));
-
+
l = EM_FILTER_RULE(rule)->actions;
while (l) {
action = l->data;
-
+
d(printf("checking action '%s'\n", action->name));
-
+
el = action->elements;
while (el) {
element = el->data;
-
+
d(printf("checking element '%s'\n", element->name));
if (EM_IS_FILTER_FOLDER_ELEMENT(element)) {
d(printf(" is folder, existing uri = '%s'\n",
FILTER_FOLDER(element)->uri));
}
-
+
if (EM_IS_FILTER_FOLDER_ELEMENT(element)
&& cmp(((EMFilterFolderElement *)element)->uri, olduri)) {
d(printf(" Changed!\n"));
@@ -202,17 +202,17 @@ filter_rename_uri(RuleContext *rc, const char *olduri, const char *newuri, GComp
}
l = l->next;
}
-
+
if (rulecount) {
changed = g_list_append(changed, g_strdup(rule->name));
filter_rule_emit_changed(rule);
}
-
+
count += rulecount;
}
-
+
/* might need to call parent class, if it did anything ... parent_class->rename_uri(f, olduri, newuri, cmp); */
-
+
return changed;
}
@@ -221,40 +221,40 @@ filter_delete_uri(RuleContext *rc, const char *uri, GCompareFunc cmp)
{
/* We basically do similar to above, but when we find it,
Remove the action, and if thats the last action, this might create an empty rule? remove the rule? */
-
+
FilterRule *rule;
GList *l, *el;
FilterPart *action;
FilterElement *element;
int count = 0;
GList *deleted = NULL;
-
+
d(printf("uri '%s' deleted\n", uri));
-
+
/* For all rules, for all actions, for all elements, check deleted folder elements */
/* Yes we could do this inside each part itself, but not today */
rule = NULL;
while ((rule = rule_context_next_rule(rc, rule, NULL))) {
int recorded = 0;
-
+
d(printf("checking rule '%s'\n", rule->name));
-
+
l = EM_FILTER_RULE(rule)->actions;
while (l) {
action = l->data;
-
+
d(printf("checking action '%s'\n", action->name));
-
+
el = action->elements;
while (el) {
element = el->data;
-
+
d(printf("checking element '%s'\n", element->name));
if (EM_IS_FILTER_FOLDER_ELEMENT(element)) {
d(printf(" is folder, existing uri = '%s'\n",
FILTER_FOLDER(element)->uri));
}
-
+
if (EM_IS_FILTER_FOLDER_ELEMENT(element)
&& cmp(((EMFilterFolderElement *)element)->uri, uri)) {
d(printf(" Deleted!\n"));
@@ -274,9 +274,9 @@ filter_delete_uri(RuleContext *rc, const char *uri, GCompareFunc cmp)
;
}
}
-
+
/* TODO: could call parent and merge lists */
-
+
return deleted;
}
diff --git a/mail/em-filter-context.h b/mail/em-filter-context.h
index f2a5581f8b..051e600bd7 100644
--- a/mail/em-filter-context.h
+++ b/mail/em-filter-context.h
@@ -37,7 +37,7 @@ typedef struct _EMFilterContextClass EMFilterContextClass;
struct _EMFilterContext {
RuleContext parent_object;
-
+
GList *actions;
};
diff --git a/mail/em-filter-editor.c b/mail/em-filter-editor.c
index 4c5703dcd9..aff4bda747 100644
--- a/mail/em-filter-editor.c
+++ b/mail/em-filter-editor.c
@@ -49,7 +49,7 @@ GtkType
em_filter_editor_get_type (void)
{
static GtkType type = 0;
-
+
if (!type) {
static const GTypeInfo info = {
sizeof (EMFilterEditorClass),
@@ -62,10 +62,10 @@ em_filter_editor_get_type (void)
0, /* n_preallocs */
(GInstanceInitFunc) em_filter_editor_init,
};
-
+
type = g_type_register_static (RULE_TYPE_EDITOR, "EMFilterEditor", &info, 0);
}
-
+
return type;
}
@@ -74,11 +74,11 @@ em_filter_editor_class_init (EMFilterEditorClass *klass)
{
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
RuleEditorClass *re_class = (RuleEditorClass *) klass;
-
+
parent_class = g_type_class_ref (rule_editor_get_type ());
-
+
gobject_class->finalize = em_filter_editor_finalise;
-
+
/* override methods */
re_class->create_rule = create_rule;
}
@@ -99,7 +99,7 @@ em_filter_editor_finalise (GObject *obj)
* em_filter_editor_new:
*
* Create a new EMFilterEditor object.
- *
+ *
* Return value: A new #EMFilterEditor object.
**/
EMFilterEditor *
@@ -117,7 +117,7 @@ em_filter_editor_new (EMFilterContext *fc, const EMFilterSource *source_names)
em_filter_editor_construct (fe, fc, gui, source_names);
g_object_unref (gui);
-
+
return fe;
}
@@ -125,10 +125,10 @@ static void
select_source (GtkMenuItem *mi, EMFilterEditor *fe)
{
char *source;
-
+
source = g_object_get_data(G_OBJECT(mi), "source");
g_return_if_fail (source);
-
+
rule_editor_set_source ((RuleEditor *)fe, source);
}
@@ -137,11 +137,11 @@ em_filter_editor_construct (EMFilterEditor *fe, EMFilterContext *fc, GladeXML *g
{
GtkWidget *menu, *item, *omenu;
int i;
-
+
omenu = glade_xml_get_widget (gui, "filter_source");
gtk_option_menu_remove_menu (GTK_OPTION_MENU (omenu));
menu = gtk_menu_new ();
-
+
for (i = 0; source_names[i].source; i++) {
item = gtk_menu_item_new_with_label(source_names[i].name);
g_object_set_data_full((GObject *)item, "source", g_strdup(source_names[i].source), g_free);
@@ -151,7 +151,7 @@ em_filter_editor_construct (EMFilterEditor *fe, EMFilterContext *fc, GladeXML *g
}
gtk_option_menu_set_menu (GTK_OPTION_MENU (omenu), menu);
gtk_widget_show (omenu);
-
+
rule_editor_construct ((RuleEditor *) fe, (RuleContext *) fc, gui, source_names[0].source, _("_Filter Rules"));
}
@@ -160,13 +160,13 @@ create_rule (RuleEditor *re)
{
FilterRule *rule = filter_rule_new ();
FilterPart *part;
-
+
/* create a rule with 1 part & 1 action in it */
rule = (FilterRule *)em_filter_rule_new ();
part = rule_context_next_part (re->context, NULL);
filter_rule_add_part (rule, filter_part_clone (part));
part = em_filter_context_next_action ((EMFilterContext *)re->context, NULL);
em_filter_rule_add_action ((EMFilterRule *)rule, filter_part_clone (part));
-
+
return rule;
}
diff --git a/mail/em-filter-folder-element.c b/mail/em-filter-folder-element.c
index 0b038294a2..e159296640 100644
--- a/mail/em-filter-folder-element.c
+++ b/mail/em-filter-folder-element.c
@@ -58,7 +58,7 @@ GType
em_filter_folder_element_get_type(void)
{
static GType type = 0;
-
+
if (!type) {
static const GTypeInfo info = {
sizeof(EMFilterFolderElementClass),
@@ -71,10 +71,10 @@ em_filter_folder_element_get_type(void)
0, /* n_preallocs */
(GInstanceInitFunc)em_filter_folder_element_init,
};
-
+
type = g_type_register_static(FILTER_TYPE_ELEMENT, "EMFilterFolderElement", &info, 0);
}
-
+
return type;
}
@@ -83,11 +83,11 @@ em_filter_folder_element_class_init(EMFilterFolderElementClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS(klass);
FilterElementClass *fe_class = FILTER_ELEMENT_CLASS(klass);
-
+
parent_class = g_type_class_ref(FILTER_TYPE_ELEMENT);
-
+
object_class->finalize = em_filter_folder_element_finalise;
-
+
/* override methods */
fe_class->validate = validate;
fe_class->eq = folder_eq;
@@ -110,9 +110,9 @@ static void
em_filter_folder_element_finalise(GObject *obj)
{
EMFilterFolderElement *ff = (EMFilterFolderElement *)obj;
-
+
g_free(ff->uri);
-
+
G_OBJECT_CLASS(parent_class)->finalize(obj);
}
@@ -120,7 +120,7 @@ em_filter_folder_element_finalise(GObject *obj)
* em_filter_folder_element_new:
*
* Create a new EMFilterFolderElement object.
- *
+ *
* Return value: A new #EMFilterFolderElement object.
**/
EMFilterFolderElement *
@@ -140,7 +140,7 @@ static gboolean
validate(FilterElement *fe)
{
EMFilterFolderElement *ff = (EMFilterFolderElement *)fe;
-
+
if (ff->uri && *ff->uri) {
return TRUE;
} else {
@@ -173,16 +173,16 @@ xml_encode(FilterElement *fe)
{
xmlNodePtr value, work;
EMFilterFolderElement *ff = (EMFilterFolderElement *)fe;
-
+
d(printf("Encoding folder as xml\n"));
-
+
value = xmlNewNode(NULL, (unsigned const char *)"value");
xmlSetProp(value, (unsigned const char *)"name", (unsigned char *)fe->name);
xmlSetProp(value, (unsigned const char *)"type", (unsigned const char *)"folder");
-
+
work = xmlNewChild(value, NULL, (unsigned const char *)"folder", NULL);
xmlSetProp(work, (unsigned const char *)"uri", (unsigned const char *)ff->uri);
-
+
return value;
}
@@ -191,17 +191,17 @@ xml_decode(FilterElement *fe, xmlNodePtr node)
{
EMFilterFolderElement *ff = (EMFilterFolderElement *)fe;
xmlNodePtr n;
-
+
d(printf("Decoding folder from xml %p\n", fe));
-
+
xmlFree(fe->name);
fe->name = (char *)xmlGetProp(node, (unsigned const char *)"name");
-
+
n = node->children;
while(n) {
if (!strcmp((char *)n->name, "folder")) {
char *uri;
-
+
uri = (char *)xmlGetProp(n, (unsigned const char *)"uri");
g_free(ff->uri);
ff->uri = g_strdup(uri);
@@ -210,7 +210,7 @@ xml_decode(FilterElement *fe, xmlNodePtr node)
}
n = n->next;
}
-
+
return 0;
}
@@ -222,7 +222,7 @@ folder_selected(EMFolderSelectionButton *button, EMFilterFolderElement *ff)
uri = em_folder_selection_button_get_selection(button);
g_free(ff->uri);
ff->uri = uri!=NULL?em_uri_from_camel(uri):NULL;
-
+
gdk_window_raise(GTK_WIDGET(gtk_widget_get_ancestor(GTK_WIDGET(button), GTK_TYPE_WINDOW))->window);
}
@@ -237,10 +237,10 @@ get_widget(FilterElement *fe)
button = em_folder_selection_button_new(_("Select Folder"), NULL);
em_folder_selection_button_set_selection(EM_FOLDER_SELECTION_BUTTON(button), uri);
g_free(uri);
-
+
gtk_widget_show(button);
g_signal_connect(button, "selected", G_CALLBACK(folder_selected), ff);
-
+
return button;
}
@@ -254,7 +254,7 @@ static void
format_sexp(FilterElement *fe, GString *out)
{
EMFilterFolderElement *ff = (EMFilterFolderElement *)fe;
-
+
e_sexp_encode_string(out, ff->uri);
}
diff --git a/mail/em-filter-folder-element.h b/mail/em-filter-folder-element.h
index f59d76c901..042ab5d504 100644
--- a/mail/em-filter-folder-element.h
+++ b/mail/em-filter-folder-element.h
@@ -36,7 +36,7 @@ typedef struct _EMFilterFolderElementClass EMFilterFolderElementClass;
struct _EMFilterFolderElement {
FilterElement parent_object;
-
+
char *uri;
};
diff --git a/mail/em-filter-rule.c b/mail/em-filter-rule.c
index 1815e0dcdb..aaec41ba3b 100644
--- a/mail/em-filter-rule.c
+++ b/mail/em-filter-rule.c
@@ -52,7 +52,7 @@ GType
em_filter_rule_get_type(void)
{
static GType type = 0;
-
+
if (!type) {
static const GTypeInfo info = {
sizeof(EMFilterRuleClass),
@@ -65,10 +65,10 @@ em_filter_rule_get_type(void)
0, /* n_preallocs */
(GInstanceInitFunc)em_filter_rule_init,
};
-
+
type = g_type_register_static(FILTER_TYPE_RULE, "EMFilterRule", &info, 0);
}
-
+
return type;
}
@@ -77,11 +77,11 @@ em_filter_rule_class_init(EMFilterRuleClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS(klass);
FilterRuleClass *fr_class =(FilterRuleClass *)klass;
-
+
parent_class = g_type_class_ref(FILTER_TYPE_RULE);
-
+
object_class->finalize = em_filter_rule_finalise;
-
+
/* override methods */
fr_class->validate = validate;
fr_class->eq = filter_eq;
@@ -111,10 +111,10 @@ static void
em_filter_rule_finalise(GObject *obj)
{
EMFilterRule *ff =(EMFilterRule *) obj;
-
+
unref_list(ff->actions);
g_list_free(ff->actions);
-
+
G_OBJECT_CLASS(parent_class)->finalize(obj);
}
@@ -122,7 +122,7 @@ em_filter_rule_finalise(GObject *obj)
* em_filter_rule_new:
*
* Create a new EMFilterRule object.
- *
+ *
* Return value: A new #EMFilterRule object.
**/
EMFilterRule *
@@ -135,7 +135,7 @@ void
em_filter_rule_add_action(EMFilterRule *fr, FilterPart *fp)
{
fr->actions = g_list_append(fr->actions, fp);
-
+
filter_rule_emit_changed((FilterRule *)fr);
}
@@ -143,7 +143,7 @@ void
em_filter_rule_remove_action(EMFilterRule *fr, FilterPart *fp)
{
fr->actions = g_list_remove(fr->actions, fp);
-
+
filter_rule_emit_changed((FilterRule *)fr);
}
@@ -151,14 +151,14 @@ void
em_filter_rule_replace_action(EMFilterRule *fr, FilterPart *fp, FilterPart *new)
{
GList *l;
-
+
l = g_list_find(fr->actions, fp);
if (l) {
l->data = new;
} else {
fr->actions = g_list_append(fr->actions, new);
}
-
+
filter_rule_emit_changed((FilterRule *)fr);
}
@@ -176,16 +176,16 @@ validate(FilterRule *fr)
EMFilterRule *ff =(EMFilterRule *)fr;
GList *parts;
int valid;
-
+
valid = FILTER_RULE_CLASS(parent_class)->validate(fr);
-
+
/* validate rule actions */
parts = ff->actions;
while (parts && valid) {
valid = filter_part_validate((FilterPart *)parts->data);
parts = parts->next;
}
-
+
return valid;
}
@@ -193,15 +193,15 @@ static int
list_eq(GList *al, GList *bl)
{
int truth = TRUE;
-
+
while (truth && al && bl) {
FilterPart *a = al->data, *b = bl->data;
-
+
truth = filter_part_eq(a, b);
al = al->next;
bl = bl->next;
}
-
+
return truth && al == NULL && bl == NULL;
}
@@ -218,7 +218,7 @@ xml_encode(FilterRule *fr)
EMFilterRule *ff =(EMFilterRule *)fr;
xmlNodePtr node, set, work;
GList *l;
-
+
node = FILTER_RULE_CLASS(parent_class)->xml_encode(fr);
g_return_val_if_fail (node != NULL, NULL);
set = xmlNewNode(NULL, (const unsigned char *)"actionset");
@@ -229,7 +229,7 @@ xml_encode(FilterRule *fr)
xmlAddChild(set, work);
l = l->next;
}
-
+
return node;
}
@@ -240,7 +240,7 @@ load_set(xmlNodePtr node, EMFilterRule *ff, RuleContext *rc)
xmlNodePtr work;
char *rulename;
FilterPart *part;
-
+
work = node->children;
while (work) {
if (!strcmp((char *)work->name, "part")) {
@@ -267,11 +267,11 @@ xml_decode(FilterRule *fr, xmlNodePtr node, RuleContext *rc)
EMFilterRule *ff =(EMFilterRule *)fr;
xmlNodePtr work;
int result;
-
+
result = FILTER_RULE_CLASS(parent_class)->xml_decode(fr, node, rc);
if (result != 0)
return result;
-
+
work = node->children;
while (work) {
if (!strcmp((char *)work->name, "actionset")) {
@@ -279,7 +279,7 @@ xml_decode(FilterRule *fr, xmlNodePtr node, RuleContext *rc)
}
work = work->next;
}
-
+
return 0;
}
@@ -288,25 +288,25 @@ rule_copy(FilterRule *dest, FilterRule *src)
{
EMFilterRule *fdest, *fsrc;
GList *node;
-
+
fdest =(EMFilterRule *)dest;
fsrc =(EMFilterRule *)src;
-
+
if (fdest->actions) {
g_list_foreach(fdest->actions, (GFunc)g_object_unref, NULL);
g_list_free(fdest->actions);
fdest->actions = NULL;
}
-
+
node = fsrc->actions;
while (node) {
FilterPart *part = node->data;
-
+
g_object_ref(part);
fdest->actions = g_list_append(fdest->actions, part);
node = node->next;
}
-
+
FILTER_RULE_CLASS(parent_class)->copy(dest, src);
}
@@ -327,16 +327,16 @@ option_activate(GtkMenuItem *item, struct _part_data *data)
{
FilterPart *part = g_object_get_data((GObject *)item, "part");
FilterPart *newpart;
-
+
/* dont update if we haven't changed */
if (!strcmp(part->title, data->part->title))
return;
-
+
/* here we do a widget shuffle, throw away the old widget/rulepart,
and create another */
if (data->partwidget)
gtk_container_remove(GTK_CONTAINER(data->container), data->partwidget);
-
+
newpart = filter_part_clone(part);
filter_part_copy_values(newpart, data->part);
em_filter_rule_replace_action((EMFilterRule *)data->fr, data->part, newpart);
@@ -345,7 +345,7 @@ option_activate(GtkMenuItem *item, struct _part_data *data)
data->partwidget = filter_part_get_widget(newpart);
if (data->partwidget)
gtk_box_pack_start(GTK_BOX(data->container), data->partwidget, TRUE, TRUE, 0);
-
+
g_object_set_data((GObject *)data->container, "part", newpart);
}
@@ -360,44 +360,44 @@ get_rule_part_widget(EMFilterContext *f, FilterPart *newpart, FilterRule *fr)
GtkWidget *p;
int index = 0, current = 0;
struct _part_data *data;
-
+
data = g_malloc0(sizeof(*data));
data->fr = fr;
data->f = f;
data->part = newpart;
-
+
hbox = gtk_hbox_new(FALSE, 0);
p = filter_part_get_widget(newpart);
-
+
data->partwidget = p;
data->container = hbox;
-
+
menu = gtk_menu_new();
while ((part = em_filter_context_next_action(f, part))) {
item = gtk_menu_item_new_with_label(_(part->title));
-
+
g_object_set_data((GObject *)item, "part", part);
g_signal_connect(item, "activate", G_CALLBACK(option_activate), data);
gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
gtk_widget_show(item);
-
+
if (!strcmp(newpart->title, part->title))
current = index;
-
+
index++;
}
-
+
omenu = gtk_option_menu_new();
gtk_option_menu_set_menu(GTK_OPTION_MENU(omenu), menu);
gtk_option_menu_set_history(GTK_OPTION_MENU(omenu), current);
gtk_widget_show(omenu);
-
+
gtk_box_pack_start(GTK_BOX(hbox), omenu, FALSE, FALSE, 0);
if (p)
gtk_box_pack_start(GTK_BOX(hbox), p, TRUE, TRUE, 0);
-
+
gtk_widget_show_all(hbox);
-
+
return hbox;
}
@@ -413,18 +413,18 @@ less_parts(GtkWidget *button, struct _rule_data *data)
FilterPart *part;
GtkWidget *rule;
GList *l;
-
+
l =((EMFilterRule *)data->fr)->actions;
if (g_list_length(l) < 2)
return;
-
+
rule = g_object_get_data((GObject *)button, "rule");
part = g_object_get_data((GObject *)rule, "part");
-
+
/* remove the part from the list */
em_filter_rule_remove_action((EMFilterRule *)data->fr, part);
g_object_unref(part);
-
+
/* and from the display */
gtk_container_remove(GTK_CONTAINER(data->parts), rule);
gtk_container_remove(GTK_CONTAINER(data->parts), button);
@@ -434,10 +434,10 @@ static void
attach_rule(GtkWidget *rule, struct _rule_data *data, FilterPart *part, int row)
{
GtkWidget *remove;
-
+
gtk_table_attach(GTK_TABLE(data->parts), rule, 0, 1, row, row + 1,
GTK_EXPAND | GTK_FILL, 0, 0, 0);
-
+
remove = gtk_button_new_from_stock(GTK_STOCK_REMOVE);
g_object_set_data((GObject *)remove, "rule", rule);
g_object_set_data((GObject *)rule, "part", part);
@@ -452,17 +452,17 @@ static void
more_parts(GtkWidget *button, struct _rule_data *data)
{
FilterPart *new;
-
+
/* create a new rule entry, use the first type of rule */
new = em_filter_context_next_action((EMFilterContext *)data->f, NULL);
if (new) {
GtkWidget *w;
guint16 rows;
-
+
new = filter_part_clone(new);
em_filter_rule_add_action((EMFilterRule *)data->fr, new);
w = get_rule_part_widget(data->f, new, data->fr);
-
+
rows = GTK_TABLE(data->parts)->nrows;
gtk_table_resize(GTK_TABLE(data->parts), rows + 1, 2);
attach_rule(w, data, new, rows);
@@ -482,11 +482,11 @@ get_widget(FilterRule *fr, RuleContext *rc)
EMFilterRule *ff =(EMFilterRule *)fr;
int rows, i = 0;
gchar *msg;
-
+
widget = FILTER_RULE_CLASS(parent_class)->get_widget(fr, rc);
-
+
/* and now for the action area */
- msg = g_strdup_printf("<b>%s</b>", _("Then"));
+ msg = g_strdup_printf("<b>%s</b>", _("Then"));
label = gtk_label_new(msg);
gtk_label_set_use_markup(GTK_LABEL(label), TRUE);
gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
@@ -504,24 +504,24 @@ get_widget(FilterRule *fr, RuleContext *rc)
inframe = gtk_vbox_new(FALSE, 6);
gtk_box_pack_start(GTK_BOX(hbox), inframe, TRUE, TRUE, 0);
-
+
rows = g_list_length(ff->actions);
parts = gtk_table_new(rows, 2, FALSE);
data = g_malloc0(sizeof(*data));
data->f =(EMFilterContext *)rc;
data->fr = fr;
data->parts = parts;
-
+
hbox = gtk_hbox_new(FALSE, 3);
-
+
add = gtk_button_new_with_mnemonic (_("Add Ac_tion"));
gtk_button_set_image (GTK_BUTTON (add), gtk_image_new_from_stock (GTK_STOCK_ADD, GTK_ICON_SIZE_BUTTON));
/* gtk_button_set_relief(GTK_BUTTON(add), GTK_RELIEF_NONE); */
g_signal_connect(add, "clicked", G_CALLBACK(more_parts), data);
gtk_box_pack_start(GTK_BOX(hbox), add, FALSE, FALSE, 0);
-
+
gtk_box_pack_start(GTK_BOX(inframe), hbox, FALSE, FALSE, 3);
-
+
l = ff->actions;
while (l) {
part = l->data;
@@ -530,20 +530,20 @@ get_widget(FilterRule *fr, RuleContext *rc)
attach_rule(w, data, part, i++);
l = l->next;
}
-
+
hadj = gtk_adjustment_new(0.0, 0.0, 1.0, 1.0 ,1.0, 1.0);
vadj = gtk_adjustment_new(0.0, 0.0, 1.0, 1.0 ,1.0, 1.0);
scrolledwindow = gtk_scrolled_window_new(GTK_ADJUSTMENT(hadj), GTK_ADJUSTMENT(vadj));
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwindow),
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
-
+
gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolledwindow), parts);
-
+
gtk_box_pack_start(GTK_BOX(inframe), scrolledwindow, TRUE, TRUE, 0);
-
+
/*gtk_box_pack_start(GTK_BOX(inframe), parts, FALSE, FALSE, 3);*/
-
+
gtk_widget_show_all(widget);
-
+
return widget;
}
diff --git a/mail/em-filter-rule.h b/mail/em-filter-rule.h
index 75c4b2834a..93953cd56b 100644
--- a/mail/em-filter-rule.h
+++ b/mail/em-filter-rule.h
@@ -36,7 +36,7 @@ typedef struct _EMFilterRuleClass EMFilterRuleClass;
struct _EMFilterRule {
FilterRule parent_object;
-
+
GList *actions;
};
diff --git a/mail/em-filter-source-element.c b/mail/em-filter-source-element.c
index 2d6c551e2a..316e7f8435 100644
--- a/mail/em-filter-source-element.c
+++ b/mail/em-filter-source-element.c
@@ -73,7 +73,7 @@ GType
em_filter_source_element_get_type(void)
{
static GType type = 0;
-
+
if (!type) {
static const GTypeInfo info = {
sizeof(EMFilterSourceElementClass),
@@ -86,10 +86,10 @@ em_filter_source_element_get_type(void)
0, /* n_preallocs */
(GInstanceInitFunc)em_filter_source_element_init,
};
-
+
type = g_type_register_static(FILTER_TYPE_ELEMENT, "EMFilterSourceElement", &info, 0);
}
-
+
return type;
}
@@ -98,11 +98,11 @@ em_filter_source_element_class_init(EMFilterSourceElementClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS(klass);
FilterElementClass *fe_class = FILTER_ELEMENT_CLASS(klass);
-
+
parent_class = g_type_class_ref(FILTER_TYPE_ELEMENT);
-
+
object_class->finalize = em_filter_source_element_finalize;
-
+
/* override methods */
fe_class->eq = source_eq;
fe_class->xml_create = xml_create;
@@ -127,7 +127,7 @@ em_filter_source_element_finalize(GObject *obj)
{
EMFilterSourceElement *fs = (EMFilterSourceElement *)obj;
GList *i = fs->priv->sources;
-
+
while (i) {
SourceInfo *info = i->data;
g_free(info->account_name);
@@ -137,12 +137,12 @@ em_filter_source_element_finalize(GObject *obj)
g_free(info);
i = g_list_next(i);
}
-
+
g_list_free(fs->priv->sources);
g_free(fs->priv->current_url);
g_free(fs->priv);
-
+
G_OBJECT_CLASS(parent_class)->finalize(obj);
}
@@ -156,7 +156,7 @@ static int
source_eq(FilterElement *fe, FilterElement *cm)
{
EMFilterSourceElement *fs = (EMFilterSourceElement *)fe, *cs = (EMFilterSourceElement *)cm;
-
+
return FILTER_ELEMENT_CLASS(parent_class)->eq(fe, cm)
&&((fs->priv->current_url && cs->priv->current_url
&& strcmp(fs->priv->current_url, cs->priv->current_url)== 0)
@@ -174,16 +174,16 @@ static xmlNodePtr
xml_encode(FilterElement *fe)
{
xmlNodePtr value;
-
+
EMFilterSourceElement *fs = (EMFilterSourceElement *)fe;
-
+
value = xmlNewNode(NULL, (const unsigned char *)"value");
xmlSetProp(value, (const unsigned char *)"name", (unsigned char *)fe->name);
xmlSetProp(value, (const unsigned char *)"type", (const unsigned char *)"uri");
-
+
if (fs->priv->current_url)
xmlNewTextChild(value, NULL, (const unsigned char *)"uri", (unsigned char *)fs->priv->current_url);
-
+
return value;
}
@@ -193,23 +193,23 @@ xml_decode(FilterElement *fe, xmlNodePtr node)
EMFilterSourceElement *fs = (EMFilterSourceElement *)fe;
CamelURL *url;
char *uri;
-
+
node = node->children;
while (node != NULL) {
if (!strcmp((char *)node->name, "uri")) {
uri = (char *)xmlNodeGetContent(node);
url = camel_url_new(uri, NULL);
xmlFree(uri);
-
+
g_free(fs->priv->current_url);
fs->priv->current_url = camel_url_to_string(url, CAMEL_URL_HIDE_ALL);
camel_url_free(url);
break;
}
-
+
node = node->next;
}
-
+
return 0;
}
@@ -219,16 +219,16 @@ clone(FilterElement *fe)
EMFilterSourceElement *fs = (EMFilterSourceElement *)fe;
EMFilterSourceElement *cpy = em_filter_source_element_new();
GList *i;
-
+
((FilterElement *)cpy)->name = (char *)xmlStrdup((unsigned char *)fe->name);
-
+
cpy->priv->current_url = g_strdup(fs->priv->current_url);
-
+
for (i = fs->priv->sources; i != NULL; i = g_list_next(i)) {
SourceInfo *info = (SourceInfo *)i->data;
em_filter_source_element_add_source(cpy, info->account_name, info->name, info->address, info->url);
}
-
+
return (FilterElement *)cpy;
}
@@ -236,7 +236,7 @@ static void
source_changed(GtkWidget *item, EMFilterSourceElement *fs)
{
SourceInfo *info = (SourceInfo *)g_object_get_data((GObject *)item, "source");
-
+
g_free(fs->priv->current_url);
fs->priv->current_url = g_strdup(info->url);
}
@@ -251,60 +251,60 @@ get_widget(FilterElement *fe)
GList *i;
SourceInfo *first = NULL;
int index, current_index;
-
+
if (fs->priv->sources == NULL)
em_filter_source_element_get_sources(fs);
-
+
menu = gtk_menu_new();
-
+
index = 0;
current_index = -1;
-
+
for (i = fs->priv->sources; i != NULL; i = g_list_next(i)) {
SourceInfo *info = (SourceInfo *)i->data;
char *label;
-
+
if (info->url != NULL) {
if (first == NULL)
first = info;
-
+
if (info->account_name && strcmp(info->account_name, info->address))
label = g_strdup_printf("%s <%s>(%s)", info->name,
info->address, info->account_name);
else
label = g_strdup_printf("%s <%s>", info->name, info->address);
-
+
item = gtk_menu_item_new_with_label(label);
g_free(label);
-
+
g_object_set_data((GObject *)item, "source", info);
g_signal_connect(item, "activate", G_CALLBACK(source_changed), fs);
-
+
gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
gtk_widget_show(item);
-
+
if (fs->priv->current_url && !strcmp(info->url, fs->priv->current_url))
current_index = index;
-
+
index++;
}
}
-
+
omenu = gtk_option_menu_new();
gtk_option_menu_set_menu(GTK_OPTION_MENU(omenu), menu);
-
+
if (current_index >= 0) {
gtk_option_menu_set_history(GTK_OPTION_MENU(omenu), current_index);
} else {
gtk_option_menu_set_history(GTK_OPTION_MENU(omenu), 0);
g_free(fs->priv->current_url);
-
+
if (first)
fs->priv->current_url = g_strdup(first->url);
else
fs->priv->current_url = NULL;
}
-
+
return omenu;
}
@@ -318,7 +318,7 @@ static void
format_sexp(FilterElement *fe, GString *out)
{
EMFilterSourceElement *fs = (EMFilterSourceElement *)fe;
-
+
e_sexp_encode_string(out, fs->priv->current_url);
}
@@ -328,15 +328,15 @@ em_filter_source_element_add_source(EMFilterSourceElement *fs, const char *accou
const char *addr, const char *url)
{
SourceInfo *info;
-
+
g_return_if_fail(EM_IS_FILTER_SOURCE_ELEMENT(fs));
-
+
info = g_new0(SourceInfo, 1);
info->account_name = g_strdup(account_name);
info->name = g_strdup(name);
info->address = g_strdup(addr);
info->url = g_strdup(url);
-
+
fs->priv->sources = g_list_append(fs->priv->sources, info);
}
@@ -349,12 +349,12 @@ em_filter_source_element_get_sources(EMFilterSourceElement *fs)
EIterator *it;
char *uri;
CamelURL *url;
-
+
/* should this get the global object from mail? */
gconf = gconf_client_get_default();
accounts = e_account_list_new(gconf);
g_object_unref(gconf);
-
+
for (it = e_list_get_iterator((EList *)accounts);
e_iterator_is_valid(it);
e_iterator_next(it)) {
diff --git a/mail/em-folder-browser.c b/mail/em-folder-browser.c
index 28fb4ae19a..9bbb62e30f 100644
--- a/mail/em-folder-browser.c
+++ b/mail/em-folder-browser.c
@@ -115,16 +115,16 @@ struct _EMFolderBrowserPrivate {
double default_scroll_position;
guint idle_scroll_id;
guint list_scrolled_id;
-
+
guint vpane_resize_id;
guint list_built_id; /* hook onto list-built for delayed 'select first unread' stuff */
-
+
char *select_uid;
guint folder_changed_id;
guint show_wide:1;
gboolean scope_restricted;
-
+
EMMenu *menu; /* toplevel menu manager */
};
@@ -241,7 +241,7 @@ emfb_pane_realised(GtkWidget *w, EMFolderBrowser *emfb)
GConfClient *gconf;
gconf = mail_config_get_gconf_client ();
-
+
if (emfb->priv->show_wide)
gtk_paned_set_position((GtkPaned *)emfb->vpane, gconf_client_get_int(gconf, "/apps/evolution/mail/display/hpaned_size", NULL));
else
@@ -260,9 +260,9 @@ emfb_pane_button_release_event(GtkWidget *w, GdkEventButton *e, EMFolderBrowser
else
gconf_client_set_int(gconf, "/apps/evolution/mail/display/paned_size",
gtk_paned_get_position(GTK_PANED(w)), NULL);
-
+
}
-
+
return FALSE;
}
@@ -288,7 +288,7 @@ generate_viewoption_menu (GtkWidget *emfv)
str = e_str_without_underscores (_(emfb_view_items[i].search.text));
menu_item = gtk_image_menu_item_new_with_label (str);
if (emfb_view_items[i].image)
- gtk_image_menu_item_set_image ((GtkImageMenuItem *)menu_item, e_icon_factory_get_image (emfb_view_items[i].image, E_ICON_SIZE_MENU));
+ gtk_image_menu_item_set_image ((GtkImageMenuItem *)menu_item, e_icon_factory_get_image (emfb_view_items[i].image, E_ICON_SIZE_MENU));
g_free (str);
} else {
menu_item = gtk_menu_item_new ();
@@ -311,24 +311,24 @@ generate_viewoption_menu (GtkWidget *emfv)
GdkColor colour;
GdkGC *gc;
GtkWidget *image;
-
+
gdk_color_parse(label->colour, &colour);
gdk_colormap_alloc_color(gdk_colormap_get_system(), &colour, FALSE, TRUE);
-
+
pixmap = gdk_pixmap_new(((GtkWidget *)emfv)->window, 16, 16, -1);
gc = gdk_gc_new(((GtkWidget *)emfv)->window);
gdk_gc_set_foreground(gc, &colour);
gdk_draw_rectangle(pixmap, gc, TRUE, 0, 0, 16, 16);
- g_object_unref(gc);
-
- image = gtk_image_new_from_pixmap(pixmap, NULL);
+ g_object_unref(gc);
+
+ image = gtk_image_new_from_pixmap(pixmap, NULL);
str = e_str_without_underscores (label->name);
menu_item = gtk_image_menu_item_new_with_label (str);
g_free (str);
- gtk_image_menu_item_set_image ((GtkImageMenuItem *)menu_item, image);
+ gtk_image_menu_item_set_image ((GtkImageMenuItem *)menu_item, image);
g_object_set_data (G_OBJECT (menu_item), "EsbItemId",
GINT_TO_POINTER (VIEW_LABEL));
-
+
g_object_set_data (G_OBJECT (menu_item), "LabelTag",
g_strdup(label->tag));
}
@@ -343,7 +343,7 @@ generate_viewoption_menu (GtkWidget *emfv)
str = e_str_without_underscores (_(temp_view_items[i].search.text));
menu_item = gtk_image_menu_item_new_with_label (str);
if (temp_view_items[i].image)
- gtk_image_menu_item_set_image ((GtkImageMenuItem *)menu_item, e_icon_factory_get_image (temp_view_items[i].image, E_ICON_SIZE_MENU));
+ gtk_image_menu_item_set_image ((GtkImageMenuItem *)menu_item, e_icon_factory_get_image (temp_view_items[i].image, E_ICON_SIZE_MENU));
g_free (str);
} else {
menu_item = gtk_menu_item_new ();
@@ -369,13 +369,13 @@ viewoption_menu_generator ()
ESearchBarItem dup_item;
GSList *l;
- for (i = 0; emfb_view_items[i].search.id != -1; i++)
+ for (i = 0; emfb_view_items[i].search.id != -1; i++)
g_array_append_vals (menu, &emfb_view_items[i], 1);
for (l = mail_config_get_labels(); l; l = l->next) {
ESearchBarItem item;
MailConfigLabel *label = l->data;
-
+
item.text = label->name;
item.id = VIEW_LABEL;
@@ -397,9 +397,9 @@ emfb_realize (GtkWidget *widget)
EMFolderBrowser *emfb = (EMFolderBrowser *)widget;
menu = generate_viewoption_menu(widget);
- e_search_bar_set_viewoption_menu ((ESearchBar *)emfb->search, menu);
+ e_search_bar_set_viewoption_menu ((ESearchBar *)emfb->search, menu);
}
-
+
static void
html_scroll (GtkHTML *html,
GtkOrientation orientation,
@@ -413,10 +413,10 @@ html_scroll (GtkHTML *html,
if (scroll_type == GTK_SCROLL_PAGE_FORWARD) {
gtk_widget_grab_focus ((GtkWidget *)((EMFolderView *) emfb)->list);
- message_list_select(((EMFolderView *) emfb)->list, MESSAGE_LIST_SELECT_NEXT, 0, CAMEL_MESSAGE_SEEN);
+ message_list_select(((EMFolderView *) emfb)->list, MESSAGE_LIST_SELECT_NEXT, 0, CAMEL_MESSAGE_SEEN);
} else if (scroll_type == GTK_SCROLL_PAGE_BACKWARD) {
gtk_widget_grab_focus ((GtkWidget *)((EMFolderView *) emfb)->list);
- message_list_select(((EMFolderView *) emfb)->list, MESSAGE_LIST_SELECT_NEXT, 0, CAMEL_MESSAGE_SEEN);
+ message_list_select(((EMFolderView *) emfb)->list, MESSAGE_LIST_SELECT_NEXT, 0, CAMEL_MESSAGE_SEEN);
}
}
static void
@@ -455,11 +455,11 @@ emfb_init(GObject *o)
const char *systemrules = g_object_get_data (G_OBJECT (search_context), "system");
const char *userrules = g_object_get_data (G_OBJECT (search_context), "user");
EFilterBar *efb;
-
+
emfb->search = e_filter_bar_new(search_context, systemrules, userrules, emfb_search_config_search, emfb);
efb = (EFilterBar *)emfb->search;
efb->account_search_vf = NULL;
- efb->all_account_search_vf = NULL;
+ efb->all_account_search_vf = NULL;
e_search_bar_set_menu ((ESearchBar *)emfb->search, emfb_search_items);
e_search_bar_set_scopeoption ((ESearchBar *)emfb->search, emfb_search_scope_items);
e_search_bar_scope_enable ((ESearchBar *)emfb->search, E_FILTERBAR_CURRENT_MESSAGE_ID, FALSE);
@@ -470,7 +470,7 @@ emfb_init(GObject *o)
p->search_menu_activated_id = g_signal_connect(emfb->search, "menu_activated", G_CALLBACK(emfb_search_menu_activated), emfb);
p->search_activated_id = g_signal_connect(emfb->search, "search_activated", G_CALLBACK(emfb_search_search_activated), emfb);
g_signal_connect(emfb->search, "search_cleared", G_CALLBACK(emfb_search_search_cleared), NULL);
-
+
gtk_box_pack_start((GtkBox *)emfb, (GtkWidget *)emfb->search, FALSE, TRUE, 0);
}
@@ -483,7 +483,7 @@ emfb_init(GObject *o)
gtk_widget_show(emfb->vpane);
gtk_box_pack_start_defaults((GtkBox *)emfb, emfb->vpane);
-
+
gtk_paned_add1((GtkPaned *)emfb->vpane, (GtkWidget *)emfb->view.list);
gtk_widget_show((GtkWidget *)emfb->view.list);
@@ -510,7 +510,7 @@ static void
emfb_finalise(GObject *o)
{
EMFolderBrowser *emfb = (EMFolderBrowser *)o;
-
+
g_free (emfb->priv->select_uid);
g_free (emfb->priv);
@@ -526,12 +526,12 @@ emfb_destroy(GtkObject *o)
g_signal_handler_disconnect(((EMFolderView *)emfb)->list, emfb->priv->list_built_id);
emfb->priv->list_built_id = 0;
}
-
+
if (emfb->priv->list_scrolled_id) {
g_signal_handler_disconnect (((EMFolderView *) emfb)->list, emfb->priv->list_scrolled_id);
emfb->priv->list_scrolled_id = 0;
}
-
+
if (emfb->priv->idle_scroll_id) {
g_source_remove (emfb->priv->idle_scroll_id);
emfb->priv->idle_scroll_id = 0;
@@ -539,7 +539,7 @@ emfb_destroy(GtkObject *o)
if (emfb->view.folder && emfb->priv->folder_changed_id)
camel_object_remove_event(emfb->view.folder, emfb->priv->folder_changed_id);
-
+
((GtkObjectClass *)emfb_parent)->destroy(o);
}
@@ -604,7 +604,7 @@ GtkWidget *em_folder_browser_new(void)
* @Class: org.gnome.evolution.mail.bonobomenu:1.0
* @Target: EMMenuTargetSelect
*
- * The main menu of mail view of the main application window.
+ * The main menu of mail view of the main application window.
* If the folder is NULL (not selected), the target will be empty, not NULL.
*/
((EMFolderView *)emfb)->menu = em_menu_new("org.gnome.evolution.mail.browser");
@@ -620,12 +620,12 @@ void em_folder_browser_show_preview(EMFolderBrowser *emfb, gboolean state)
e_search_bar_scope_enable ((ESearchBar *)emfb->search, E_FILTERBAR_CURRENT_MESSAGE_ID, TRUE);
emfb->priv->scope_restricted = FALSE;
}
-
+
return;
}
-
+
emfb->view.preview_active = state;
-
+
if (state) {
GConfClient *gconf = mail_config_get_gconf_client ();
int paned_size /*, y*/;
@@ -639,8 +639,8 @@ void em_folder_browser_show_preview(EMFolderBrowser *emfb, gboolean state)
if (emfb->view.list->cursor_uid) {
char *uid = g_alloca(strlen(emfb->view.list->cursor_uid)+1);
- e_search_bar_scope_enable ((ESearchBar *)emfb->search, E_FILTERBAR_CURRENT_MESSAGE_ID, TRUE);
- emfb->priv->scope_restricted = FALSE;
+ e_search_bar_scope_enable ((ESearchBar *)emfb->search, E_FILTERBAR_CURRENT_MESSAGE_ID, TRUE);
+ emfb->priv->scope_restricted = FALSE;
strcpy(uid, emfb->view.list->cursor_uid);
em_folder_view_set_message(&emfb->view, uid, FALSE);
}
@@ -655,7 +655,7 @@ void em_folder_browser_show_preview(EMFolderBrowser *emfb, gboolean state)
emfb->view.displayed_uid = NULL;
gtk_widget_hide(emfb->priv->preview);
- e_search_bar_scope_enable ((ESearchBar *)emfb->search, E_FILTERBAR_CURRENT_MESSAGE_ID, FALSE);
+ e_search_bar_scope_enable ((ESearchBar *)emfb->search, E_FILTERBAR_CURRENT_MESSAGE_ID, FALSE);
emfb->priv->scope_restricted = TRUE;
/*
mail_display_set_message (emfb->mail_display, NULL, NULL, NULL);
@@ -713,22 +713,22 @@ static void
emfb_search_menu_activated(ESearchBar *esb, int id, EMFolderBrowser *emfb)
{
EFilterBar *efb = (EFilterBar *)esb;
-
+
d(printf("menu activated\n"));
-
+
switch (id) {
case ESB_SAVE:
d(printf("Save vfolder\n"));
if (efb->current_query) {
- FilterRule *rule = vfolder_clone_rule(efb->current_query);
+ FilterRule *rule = vfolder_clone_rule(efb->current_query);
char *name, *text;
-
+
text = e_search_bar_get_text(esb);
name = g_strdup_printf("%s %s", rule->name, (text&&text[0])?text:"''");
g_free (text);
filter_rule_set_name(rule, name);
g_free (name);
-
+
filter_rule_set_source(rule, FILTER_SOURCE_INCOMING);
em_vfolder_rule_add_source((EMVFolderRule *)rule, emfb->view.folder_uri);
vfolder_gui_add_rule((EMVFolderRule *)rule);
@@ -750,7 +750,7 @@ emfb_search_config_search(EFilterBar *efb, FilterRule *rule, int id, const char
partl = rule->parts;
while (partl) {
FilterPart *part = partl->data;
-
+
if (!strcmp(part->name, "subject")) {
FilterInput *input = (FilterInput *)filter_part_find_element(part, "subject");
if (input)
@@ -759,7 +759,7 @@ emfb_search_config_search(EFilterBar *efb, FilterRule *rule, int id, const char
FilterInput *input = (FilterInput *)filter_part_find_element(part, "word");
if (input)
filter_input_set_value(input, query);
-
+
words = camel_search_words_split((unsigned char *)query);
for (i=0;i<words->len;i++)
strings = g_slist_prepend(strings, g_strdup(words->words[i]->word));
@@ -773,7 +773,7 @@ emfb_search_config_search(EFilterBar *efb, FilterRule *rule, int id, const char
if (input)
filter_input_set_value(input, query);
}
-
+
partl = partl->next;
}
@@ -826,7 +826,7 @@ get_view_query (ESearchBar *esb)
case VIEW_NO_LABEL:
/* FIXME : cannot hard code this query */
view_sexp = "(and (match-all (not (= (user-tag \"label\") \"important\")))"
- "(match-all (not (= (user-tag \"label\") \"work\"))) (match-all (not (= (user-tag \"label\") \"personal\")))"
+ "(match-all (not (= (user-tag \"label\") \"work\"))) (match-all (not (= (user-tag \"label\") \"personal\")))"
"(match-all (not (= (user-tag \"label\") \"todo\"))) (match-all (not (= (user-tag \"label\") \"later\"))) ))";
break;
case VIEW_LABEL:
@@ -949,14 +949,14 @@ vfolder_setup(CamelFolder *folder, const char *query, GList *sources_uri, GList
{
struct _setup_msg *m;
int id;
-
+
m = mail_msg_new(&vfolder_setup_op, NULL, sizeof (*m));
m->folder = folder;
camel_object_ref(folder);
m->query = g_strdup(query);
m->sources_uri = sources_uri;
m->sources_folder = sources_folder;
-
+
id = m->msg.seq;
e_thread_put(mail_thread_queued_slow, (EMsg *)m);
@@ -981,7 +981,7 @@ emfb_search_search_activated(ESearchBar *esb, EMFolderBrowser *emfb)
if (emfv->list == NULL || emfv->folder == NULL)
return;
-
+
id = e_search_bar_get_search_scope (esb);
switch (id) {
@@ -1013,11 +1013,11 @@ emfb_search_search_activated(ESearchBar *esb, EMFolderBrowser *emfb)
break;
}
- g_object_get (esb, "query", &search_word, NULL);
+ g_object_get (esb, "query", &search_word, NULL);
if (efb->account_search_vf && !strcmp (search_word, ((CamelVeeFolder *) efb->account_search_vf)->expression) ) {
break;
}
- gtk_widget_set_sensitive (esb->scopeoption, FALSE);
+ gtk_widget_set_sensitive (esb->scopeoption, FALSE);
/* Disable the folder tree */
g_signal_emit (emfb, folder_browser_signals [ACCOUNT_SEARCH_ACTIVATED], 0);
@@ -1044,12 +1044,12 @@ emfb_search_search_activated(ESearchBar *esb, EMFolderBrowser *emfb)
folder_uri = mail_tools_folder_to_url ((CamelFolder *)efb->account_search_vf);
emfb_set_search_folder (emfv, (CamelFolder *)efb->account_search_vf, folder_uri);
g_free (folder_uri);
- g_free (storeuri);
+ g_free (storeuri);
} else {
/* Reuse the existing search folder */
camel_vee_folder_set_expression((CamelVeeFolder *)efb->account_search_vf, search_word);
}
-
+
break;
case E_FILTERBAR_ALL_ACCOUNTS_ID:
@@ -1061,18 +1061,18 @@ emfb_search_search_activated(ESearchBar *esb, EMFolderBrowser *emfb)
efb->all_account_search_vf=NULL;
}
g_signal_emit (emfb, folder_browser_signals [ACCOUNT_SEARCH_CLEARED], 0);
- gtk_widget_set_sensitive (esb->scopeoption, TRUE);
+ gtk_widget_set_sensitive (esb->scopeoption, TRUE);
break;
}
g_object_get (esb, "query", &search_word, NULL);
-
+
if (search_word && efb->all_account_search_vf && !strcmp (search_word, ((CamelVeeFolder *) efb->all_account_search_vf)->expression) ) {
/* No real search apart from the existing one */
break;
}
-
- gtk_widget_set_sensitive (esb->scopeoption, FALSE);
+
+ gtk_widget_set_sensitive (esb->scopeoption, FALSE);
g_signal_emit (emfb, folder_browser_signals [ACCOUNT_SEARCH_ACTIVATED], 0);
if (!efb->all_account_search_vf) {
@@ -1121,13 +1121,13 @@ emfb_search_search_activated(ESearchBar *esb, EMFolderBrowser *emfb)
/* Reuse the existing search folder */
camel_vee_folder_set_expression((CamelVeeFolder *)efb->all_account_search_vf, search_word);
}
-
+
break;
}
g_object_get (esb, "state", &search_state, NULL);
camel_object_meta_set (emfv->folder, "evolution:search_state", search_state);
camel_object_state_write (emfv->folder);
-
+
/* Merge the view and search expresion*/
view_sexp = get_view_query (esb);
g_object_get (esb, "query", &search_word, NULL);
@@ -1159,7 +1159,7 @@ emfb_list_key_press(ETree *tree, int row, ETreePath path, int col, GdkEvent *ev,
gboolean state, folder_choose = TRUE;
if ((ev->key.state & GDK_CONTROL_MASK) != 0)
return FALSE;
-
+
switch (ev->key.keyval) {
case GDK_space:
if (!emfb->view.preview->caret_mode) {
@@ -1167,11 +1167,11 @@ emfb_list_key_press(ETree *tree, int row, ETreePath path, int col, GdkEvent *ev,
if (!state) {
folder_choose = message_list_select(((EMFolderView *) emfb)->list, MESSAGE_LIST_SELECT_NEXT, 0, CAMEL_MESSAGE_SEEN);
if (!folder_choose)
- folder_choose = message_list_select(((EMFolderView *) emfb)->list,
+ folder_choose = message_list_select(((EMFolderView *) emfb)->list,
MESSAGE_LIST_SELECT_NEXT | MESSAGE_LIST_SELECT_WRAP, 0, CAMEL_MESSAGE_SEEN);
}
- } else
+ } else
em_utils_adjustment_page(gtk_scrolled_window_get_vadjustment((GtkScrolledWindow *)emfb->priv->scroll), TRUE);
break;
case GDK_BackSpace:
@@ -1180,7 +1180,7 @@ emfb_list_key_press(ETree *tree, int row, ETreePath path, int col, GdkEvent *ev,
if (!state) {
folder_choose = message_list_select(((EMFolderView *) emfb)->list, MESSAGE_LIST_SELECT_PREVIOUS, 0, CAMEL_MESSAGE_SEEN);
if (!folder_choose)
- folder_choose = message_list_select(((EMFolderView *) emfb)->list,
+ folder_choose = message_list_select(((EMFolderView *) emfb)->list,
MESSAGE_LIST_SELECT_PREVIOUS | MESSAGE_LIST_SELECT_WRAP, 0, CAMEL_MESSAGE_SEEN);
}
@@ -1190,7 +1190,7 @@ emfb_list_key_press(ETree *tree, int row, ETreePath path, int col, GdkEvent *ev,
default:
return FALSE;
}
-
+
if (!folder_choose && !emfb->view.preview->caret_mode) {
//check for unread messages. if yes .. rewindback to the folder
EMFolderTree *emft = g_object_get_data((GObject*)emfb, "foldertree");
@@ -1216,10 +1216,10 @@ emfb_list_message_selected (MessageList *ml, const char *uid, EMFolderBrowser *e
return;
if (uid && *uid && emfb->priv->scope_restricted && emfb->view.preview_active) {
- e_search_bar_scope_enable ((ESearchBar *)emfb->search, E_FILTERBAR_CURRENT_MESSAGE_ID, TRUE);
+ e_search_bar_scope_enable ((ESearchBar *)emfb->search, E_FILTERBAR_CURRENT_MESSAGE_ID, TRUE);
emfb->priv->scope_restricted = FALSE;
} else if ( !(uid && *uid) && !emfb->priv->scope_restricted) {
- e_search_bar_scope_enable ((ESearchBar *)emfb->search, E_FILTERBAR_CURRENT_MESSAGE_ID, FALSE);
+ e_search_bar_scope_enable ((ESearchBar *)emfb->search, E_FILTERBAR_CURRENT_MESSAGE_ID, FALSE);
emfb->priv->scope_restricted = TRUE;
}
@@ -1272,7 +1272,7 @@ static void
emfb_edit_invert_selection(BonoboUIComponent *uid, void *data, const char *path)
{
EMFolderView *emfv = data;
-
+
message_list_invert_selection(emfv->list);
}
@@ -1280,7 +1280,7 @@ static void
emfb_edit_select_all(BonoboUIComponent *uid, void *data, const char *path)
{
EMFolderView *emfv = data;
-
+
message_list_select_all(emfv->list);
gtk_widget_grab_focus ((GtkWidget *)emfv->list);
}
@@ -1289,7 +1289,7 @@ static void
emfb_edit_select_thread(BonoboUIComponent *uid, void *data, const char *path)
{
EMFolderView *emfv = data;
-
+
message_list_select_thread(emfv->list);
}
@@ -1411,7 +1411,7 @@ emfb_folder_create(BonoboUIComponent *uid, void *data, const char *path)
if ((fi = em_folder_tree_get_selected_folder_info (tree)) != NULL) {
em_folder_utils_create_folder(fi, tree);
camel_folder_info_free(fi);
- }
+ }
} else {
em_folder_utils_create_folder(NULL, tree);
}
@@ -1452,7 +1452,7 @@ static void
emfb_view_hide_read(BonoboUIComponent *uid, void *data, const char *path)
{
EMFolderView *emfv = data;
-
+
message_list_hide_add(emfv->list, "(match-all (system-flag \"seen\"))", ML_HIDE_SAME, ML_HIDE_SAME);
}
@@ -1501,7 +1501,7 @@ static void
emfb_tools_filters(BonoboUIComponent *uid, void *data, const char *path)
{
EMFolderBrowser *emfb = data;
-
+
em_utils_edit_filters ((GtkWidget *) emfb);
}
@@ -1559,7 +1559,7 @@ static BonoboUIVerb emfb_verbs[] = {
/* ViewThreaded is a toggle */
BONOBO_UI_UNSAFE_VERB ("ViewThreadsExpandAll", emfb_expand_all_threads),
- BONOBO_UI_UNSAFE_VERB ("ViewThreadsCollapseAll", emfb_collapse_all_threads),
+ BONOBO_UI_UNSAFE_VERB ("ViewThreadsCollapseAll", emfb_collapse_all_threads),
BONOBO_UI_UNSAFE_VERB ("FolderCopy", emfb_folder_copy),
BONOBO_UI_UNSAFE_VERB ("FolderMove", emfb_folder_move),
@@ -1574,7 +1574,7 @@ static BonoboUIVerb emfb_verbs[] = {
BONOBO_UI_UNSAFE_VERB ("ToolsSubscriptions", emfb_tools_subscriptions),
BONOBO_UI_UNSAFE_VERB ("ToolsVFolders", emfb_tools_vfolders),
BONOBO_UI_UNSAFE_VERB ("FocusSearch", emfb_focus_search),
-
+
/* ViewPreview is a toggle */
BONOBO_UI_VERB_END
@@ -1620,7 +1620,7 @@ emfb_view_threaded(BonoboUIComponent *uic, const char *path, Bonobo_UIComponent_
/* FIXME: do set_threaded via meta-data listener on folder? */
message_list_set_threaded(emfv->list, state[0] != '0');
-
+
/* FIXME: update selection state? */
}
@@ -1679,13 +1679,13 @@ emfb_list_scrolled (MessageList *ml, EMFolderBrowser *emfb)
EMFolderView *emfv = (EMFolderView *) emfb;
double position;
char *state;
-
+
position = message_list_get_scrollbar_position (ml);
state = g_strdup_printf ("%f", position);
-
+
if (camel_object_meta_set (emfv->folder, "evolution:list_scroll_position", state))
camel_object_state_write (emfv->folder);
-
+
g_free (state);
}
@@ -1695,20 +1695,20 @@ scroll_idle_cb (EMFolderBrowser *emfb)
EMFolderView *emfv = (EMFolderView *) emfb;
double position;
char *state;
-
+
if ((state = camel_object_meta_get (emfv->folder, "evolution:list_scroll_position"))) {
position = strtod (state, NULL);
g_free (state);
} else {
position = emfb->priv->default_scroll_position;
}
-
+
message_list_set_scrollbar_position (emfv->list, position);
-
+
emfb->priv->list_scrolled_id = g_signal_connect (emfv->list, "message_list_scrolled", G_CALLBACK (emfb_list_scrolled), emfb);
-
+
emfb->priv->idle_scroll_id = 0;
-
+
return FALSE;
}
@@ -1754,10 +1754,10 @@ emfb_list_built (MessageList *ml, EMFolderBrowser *emfb)
{
EMFolderView *emfv = (EMFolderView *) emfb;
double position = 0.0f;
-
+
g_signal_handler_disconnect (ml, emfb->priv->list_built_id);
emfb->priv->list_built_id = 0;
-
+
if (emfv->list->cursor_uid == NULL) {
if (emfb->priv->select_uid) {
CamelMessageInfo *mi;
@@ -1771,7 +1771,7 @@ emfb_list_built (MessageList *ml, EMFolderBrowser *emfb)
g_free (emfb->priv->select_uid);
emfb->priv->select_uid = NULL;
}
-
+
/* change the default to the current position */
position = message_list_get_scrollbar_position (ml);
} else {
@@ -1780,9 +1780,9 @@ emfb_list_built (MessageList *ml, EMFolderBrowser *emfb)
/*message_list_select (ml, MESSAGE_LIST_SELECT_NEXT, 0, CAMEL_MESSAGE_SEEN, TRUE);*/
}
}
-
+
emfb->priv->default_scroll_position = position;
-
+
/* FIXME: this is a gross workaround for an etable bug that I can't fix - bug #55303 */
/* this needs to be a lower priority than anything in e-table-item/e-canvas, since
* e_canvas_item_region_show_relay() uses a timeout, we have to use a timeout of the
@@ -1797,14 +1797,14 @@ emfb_set_search_folder(EMFolderView *emfv, CamelFolder *folder, const char *uri)
{
EMFolderBrowser *emfb = (EMFolderBrowser *) emfv;
char *state;
-
+
message_list_freeze(emfv->list);
-
+
if (emfb->priv->list_scrolled_id) {
g_signal_handler_disconnect (emfv->list, emfb->priv->list_scrolled_id);
emfb->priv->list_scrolled_id = 0;
}
-
+
if (emfb->priv->idle_scroll_id) {
g_source_remove (emfb->priv->idle_scroll_id);
emfb->priv->idle_scroll_id = 0;
@@ -1824,7 +1824,7 @@ emfb_set_search_folder(EMFolderView *emfv, CamelFolder *folder, const char *uri)
"<column source=\"7\"/> <column source=\"13\"/> "
"<grouping><leaf column=\"7\" ascending=\"false\"/> </grouping> </ETableState>";
e_tree_set_state (((MessageList *)emfv->list)->tree, state);
-
+
message_list_thaw(emfv->list);
}
@@ -1834,14 +1834,14 @@ emfb_set_folder(EMFolderView *emfv, CamelFolder *folder, const char *uri)
{
EMFolderBrowser *emfb = (EMFolderBrowser *) emfv;
struct _EMFolderBrowserPrivate *p = emfb->priv;
-
+
message_list_freeze(emfv->list);
-
+
if (emfb->priv->list_scrolled_id) {
g_signal_handler_disconnect (emfv->list, emfb->priv->list_scrolled_id);
emfb->priv->list_scrolled_id = 0;
}
-
+
if (emfb->priv->idle_scroll_id) {
g_source_remove (emfb->priv->idle_scroll_id);
emfb->priv->idle_scroll_id = 0;
@@ -1853,7 +1853,7 @@ emfb_set_folder(EMFolderView *emfv, CamelFolder *folder, const char *uri)
}
emfb_parent->set_folder(emfv, folder, uri);
-
+
/* This is required since we get activated the first time
before the folder is open and need to override the
defaults */
@@ -1862,7 +1862,7 @@ emfb_set_folder(EMFolderView *emfv, CamelFolder *folder, const char *uri)
int state;
gboolean safe;
GConfClient *gconf = mail_config_get_gconf_client();
-
+
safe = gconf_client_get_bool (gconf, "/apps/evolution/mail/display/safe_list", NULL);
if (safe) {
if (camel_object_meta_set(emfv->folder, "evolution:show_preview", "0") &&
@@ -1886,7 +1886,7 @@ emfb_set_folder(EMFolderView *emfv, CamelFolder *folder, const char *uri)
em_folder_browser_show_preview(emfb, state);
if (emfv->uic)
bonobo_ui_component_set_prop(emfv->uic, "/commands/ViewPreview", "state", state?"1":"0", NULL);
-
+
if ((sstate = camel_object_meta_get(folder, "evolution:thread_list"))) {
state = sstate[0] != '0';
g_free(sstate);
@@ -1895,10 +1895,10 @@ emfb_set_folder(EMFolderView *emfv, CamelFolder *folder, const char *uri)
message_list_set_threaded(emfv->list, state);
if (emfv->uic) {
bonobo_ui_component_set_prop(emfv->uic, "/commands/ViewThreaded", "state", state?"1":"0", NULL);
- bonobo_ui_component_set_prop(emfv->uic, "/commands/ViewThreadsCollapseAll", "sensitive", state?"1":"0", NULL);
- bonobo_ui_component_set_prop(emfv->uic, "/commands/ViewThreadsExpandAll", "sensitive", state?"1":"0", NULL);
+ bonobo_ui_component_set_prop(emfv->uic, "/commands/ViewThreadsCollapseAll", "sensitive", state?"1":"0", NULL);
+ bonobo_ui_component_set_prop(emfv->uic, "/commands/ViewThreadsExpandAll", "sensitive", state?"1":"0", NULL);
}
-
+
if (emfv->uic) {
state = (folder->folder_flags & CAMEL_FOLDER_IS_TRASH) == 0;
bonobo_ui_component_set_prop(emfv->uic, "/commands/HideDeleted", "sensitive", state?"1":"0", NULL);
@@ -1908,7 +1908,7 @@ emfb_set_folder(EMFolderView *emfv, CamelFolder *folder, const char *uri)
sstate = camel_object_meta_get(folder, "evolution:search_state");
g_object_set(emfb->search, "state", sstate, NULL);
g_free(sstate);
-
+
/* set the query manually, so we dont pop up advanced or saved search stuff */
if ((sstate = camel_object_meta_get (folder, "evolution:selected_uid"))) {
@@ -1917,7 +1917,7 @@ emfb_set_folder(EMFolderView *emfv, CamelFolder *folder, const char *uri)
g_free(p->select_uid);
p->select_uid = NULL;
}
-
+
if (emfv->list->cursor_uid == NULL && emfb->priv->list_built_id == 0)
p->list_built_id = g_signal_connect(emfv->list, "message_list_built", G_CALLBACK (emfb_list_built), emfv);
}
@@ -1949,7 +1949,7 @@ emfb_activate(EMFolderView *emfv, BonoboUIComponent *uic, int act)
g_signal_handler_block(emfb->vpane, emfb->priv->vpane_resize_id);
gtk_paned_set_position((GtkPaned *)emfb->vpane, gconf_client_get_int (gconf, emfb->priv->show_wide ? "/apps/evolution/mail/display/hpaned_size": "/apps/evolution/mail/display/paned_size", NULL));
g_signal_handler_unblock(emfb->vpane, emfb->priv->vpane_resize_id);
-
+
/* (Pre)view toggle */
if (emfv->folder
&& (sstate = camel_object_meta_get(emfv->folder, "evolution:show_preview"))) {
@@ -1962,7 +1962,7 @@ emfb_activate(EMFolderView *emfv, BonoboUIComponent *uic, int act)
bonobo_ui_component_set_prop(uic, "/commands/ViewPreview", "state", state?"1":"0", NULL);
em_folder_browser_show_preview((EMFolderBrowser *)emfv, state);
bonobo_ui_component_add_listener(uic, "ViewPreview", emfb_view_preview, emfv);
-
+
/* Stop button */
state = mail_msg_active((unsigned int)-1);
bonobo_ui_component_set_prop(uic, "/commands/MailStop", "sensitive", state?"1":"0", NULL);
@@ -1991,8 +1991,8 @@ emfb_activate(EMFolderView *emfv, BonoboUIComponent *uic, int act)
}
bonobo_ui_component_set_prop(uic, "/commands/ViewThreaded", "state", state?"1":"0", NULL);
- bonobo_ui_component_set_prop(uic, "/commands/ViewThreadsCollapseAll", "sensitive", state?"1":"0", NULL);
- bonobo_ui_component_set_prop(uic, "/commands/ViewThreadsExpandAll", "sensitive", state?"1":"0", NULL);
+ bonobo_ui_component_set_prop(uic, "/commands/ViewThreadsCollapseAll", "sensitive", state?"1":"0", NULL);
+ bonobo_ui_component_set_prop(uic, "/commands/ViewThreadsExpandAll", "sensitive", state?"1":"0", NULL);
bonobo_ui_component_add_listener(uic, "ViewThreaded", emfb_view_threaded, emfv);
message_list_set_threaded(emfv->list, state);
@@ -2002,9 +2002,9 @@ emfb_activate(EMFolderView *emfv, BonoboUIComponent *uic, int act)
bonobo_ui_component_set_prop(uic, "/commands/ViewBelow", "state", "0", NULL);
} else {
bonobo_ui_component_set_prop(uic, "/commands/ViewAfter", "state", "0", NULL);
- bonobo_ui_component_set_prop(uic, "/commands/ViewBelow", "state", "1", NULL);
+ bonobo_ui_component_set_prop(uic, "/commands/ViewBelow", "state", "1", NULL);
}
-
+
bonobo_ui_component_add_listener(uic, "ViewAfter", emfb_show_next, emfv);
bonobo_ui_component_add_listener(uic, "ViewBelow", emfb_show_below, emfv);
/* em_folder_browser_show_wide((EMFolderBrowser *)emfv, state); */
@@ -2018,7 +2018,7 @@ emfb_activate(EMFolderView *emfv, BonoboUIComponent *uic, int act)
e_search_bar_set_ui_component((ESearchBar *)((EMFolderBrowser *)emfv)->search, uic);
} else {
const BonoboUIVerb *v;
-
+
for (v = &emfb_verbs[0]; v->cname; v++)
bonobo_ui_component_remove_verb(uic, v->cname);
diff --git a/mail/em-folder-properties.c b/mail/em-folder-properties.c
index 697641f7cd..98adb08588 100644
--- a/mail/em-folder-properties.c
+++ b/mail/em-folder-properties.c
@@ -84,10 +84,10 @@ emfp_commit(EConfig *ec, GSList *items, void *data)
struct _prop_data *prop_data = data;
CamelArgV *argv = prop_data->argv;
int i;
-
+
for (i = 0; i < argv->argc; i++) {
CamelArg *arg = &argv->argv[i];
-
+
switch (arg->tag & CAMEL_ARG_TYPE) {
case CAMEL_ARG_BOO:
arg->ca_int = gtk_toggle_button_get_active ((GtkToggleButton *) prop_data->widgets[i]);
@@ -101,7 +101,7 @@ emfp_commit(EConfig *ec, GSList *items, void *data)
break;
}
}
-
+
camel_object_setv (prop_data->object, NULL, argv);
}
@@ -110,7 +110,7 @@ emfp_free(EConfig *ec, GSList *items, void *data)
{
struct _prop_data *prop_data = data;
int i;
-
+
g_slist_free(items);
for (i = 0; i < prop_data->argv->argc; i++) {
@@ -120,7 +120,7 @@ emfp_free(EConfig *ec, GSList *items, void *data)
camel_object_free (prop_data->object, CAMEL_FOLDER_PROPERTIES, prop_data->properties);
camel_object_free (prop_data->object, CAMEL_FOLDER_NAME, prop_data->name);
-
+
camel_object_unref (prop_data->object);
g_free (prop_data->argv);
@@ -150,7 +150,7 @@ emfp_get_folder_item(EConfig *ec, EConfigItem *item, struct _GtkWidget *parent,
gtk_widget_show (label);
gtk_misc_set_alignment ((GtkMisc *) label, 0.0, 0.5);
gtk_table_attach ((GtkTable *) table, label, 0, 1, row, row+1, GTK_FILL, 0, 0, 0);
-
+
sprintf(countstr, "%d", prop_data->unread);
label = gtk_label_new (countstr);
gtk_widget_show (label);
@@ -164,7 +164,7 @@ emfp_get_folder_item(EConfig *ec, EConfigItem *item, struct _GtkWidget *parent,
gtk_widget_show (label);
gtk_misc_set_alignment ((GtkMisc *) label, 0.0, 0.5);
gtk_table_attach ((GtkTable *) table, label, 0, 1, row, row+1, GTK_FILL, 0, 0, 0);
-
+
sprintf(countstr, "%d", prop_data->total);
label = gtk_label_new (countstr);
gtk_widget_show (label);
@@ -177,7 +177,7 @@ emfp_get_folder_item(EConfig *ec, EConfigItem *item, struct _GtkWidget *parent,
i = 0;
while (l) {
CamelProperty *prop = l->data;
-
+
switch (prop->tag & CAMEL_ARG_TYPE) {
case CAMEL_ARG_BOO:
w = gtk_check_button_new_with_label (prop->description);
@@ -191,7 +191,7 @@ emfp_get_folder_item(EConfig *ec, EConfigItem *item, struct _GtkWidget *parent,
gtk_misc_set_alignment ((GtkMisc *) label, 0.0, 0.5);
gtk_widget_show (label);
gtk_table_attach ((GtkTable *) table, label, 0, 1, row, row + 1, GTK_FILL, 0, 0, 0);
-
+
w = gtk_entry_new ();
gtk_widget_show (w);
if (prop_data->argv->argv[i].ca_str) {
@@ -206,7 +206,7 @@ emfp_get_folder_item(EConfig *ec, EConfigItem *item, struct _GtkWidget *parent,
g_warning ("This shouldn't be reached\n");
break;
}
-
+
row++;
l = l->next;
i++;
@@ -250,16 +250,16 @@ emfp_dialog_got_folder (char *uri, CamelFolder *folder, void *data)
camel_object_ref (folder);
/*
- Get number of VISIBLE and DELETED messages, instead of TOTAL messages. VISIBLE+DELETED
+ Get number of VISIBLE and DELETED messages, instead of TOTAL messages. VISIBLE+DELETED
gives the correct count that matches the label below the Send & Receive button
*/
camel_object_get (folder, NULL, CAMEL_FOLDER_PROPERTIES, &prop_data->properties, CAMEL_FOLDER_NAME, &prop_data->name,
CAMEL_FOLDER_VISIBLE, &prop_data->total, CAMEL_FOLDER_UNREAD, &prop_data->unread, CAMEL_FOLDER_DELETED, &deleted, NULL);
-
+
gconf = mail_config_get_gconf_client ();
hide_deleted = !gconf_client_get_bool(gconf, "/apps/evolution/mail/display/show_deleted", NULL);
- /*
+ /*
Do the calculation only for those accounts that support VTRASHes
*/
if (store->flags & CAMEL_STORE_VTRASH) {
@@ -302,20 +302,20 @@ emfp_dialog_got_folder (char *uri, CamelFolder *folder, void *data)
argv->argc = count;
arggetv = g_malloc0 (sizeof (*arggetv) + (count - CAMEL_ARGV_MAX) * sizeof (arggetv->argv[0]));
arggetv->argc = count;
-
+
i = 0;
l = prop_data->properties;
while (l) {
CamelProperty *prop = l->data;
-
+
argv->argv[i].tag = prop->tag;
arggetv->argv[i].tag = prop->tag;
arggetv->argv[i].ca_ptr = &argv->argv[i].ca_ptr;
-
+
l = l->next;
i++;
}
-
+
camel_object_getv (prop_data->object, NULL, arggetv);
g_free (arggetv);
prop_data->argv = argv;
@@ -351,7 +351,7 @@ emfp_dialog_got_folder (char *uri, CamelFolder *folder, void *data)
gtk_box_pack_start ((GtkBox *) ((GtkDialog *) dialog)->vbox, w, TRUE, TRUE, 0);
/* we do 'apply on ok' ... since instant apply may apply some very long running tasks */
-
+
g_signal_connect (dialog, "response", G_CALLBACK (emfp_dialog_response), prop_data);
gtk_widget_show (dialog);
}
@@ -359,9 +359,9 @@ emfp_dialog_got_folder (char *uri, CamelFolder *folder, void *data)
/**
* em_folder_properties_show:
* @parent: parent window for dialogue (currently unused)
- * @folder:
- * @uri:
- *
+ * @folder:
+ * @uri:
+ *
* Show folder properties for @folder and @uri. If @folder is passed
* as NULL, then the folder @uri will be loaded first.
**/
diff --git a/mail/em-folder-selection-button.c b/mail/em-folder-selection-button.c
index 0cb4b437d6..1a6406943f 100644
--- a/mail/em-folder-selection-button.c
+++ b/mail/em-folder-selection-button.c
@@ -53,13 +53,13 @@ struct _EMFolderSelectionButtonPrivate {
GtkWidget *label;
GtkWidget *selector;
-
+
char *uri; /* for single-select mode */
GList *uris; /* for multi-select mode */
-
+
char *title;
char *caption;
-
+
gboolean multiple_select;
};
@@ -74,7 +74,7 @@ GType
em_folder_selection_button_get_type (void)
{
static GType type = 0;
-
+
if (!type) {
static const GTypeInfo info = {
sizeof (EMFolderSelectionButtonClass),
@@ -87,10 +87,10 @@ em_folder_selection_button_get_type (void)
0, /* n_preallocs */
(GInstanceInitFunc) em_folder_selection_button_init,
};
-
+
type = g_type_register_static (GTK_TYPE_BUTTON, "EMFolderSelectionButton", &info, 0);
}
-
+
return type;
}
@@ -100,13 +100,13 @@ em_folder_selection_button_class_init (EMFolderSelectionButtonClass *klass)
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkObjectClass *gtk_object_class = GTK_OBJECT_CLASS (klass);
GtkButtonClass *button_class = GTK_BUTTON_CLASS (klass);
-
+
parent_class = g_type_class_ref (GTK_TYPE_BUTTON);
-
+
object_class->finalize = em_folder_selection_button_finalize;
gtk_object_class->destroy = em_folder_selection_button_destroy;
button_class->clicked = em_folder_selection_button_clicked;
-
+
signals[SELECTED] = g_signal_new ("selected",
G_OBJECT_CLASS_TYPE (object_class),
G_SIGNAL_RUN_FIRST,
@@ -118,7 +118,7 @@ em_folder_selection_button_class_init (EMFolderSelectionButtonClass *klass)
static void
set_contents_unselected (EMFolderSelectionButton *button)
-{
+{
gtk_image_set_from_pixbuf (GTK_IMAGE (button->priv->icon), NULL);
gtk_label_set_text (GTK_LABEL (button->priv->label), _("<click here to select a folder>"));
}
@@ -128,7 +128,7 @@ set_contents (EMFolderSelectionButton *button)
{
struct _EMFolderSelectionButtonPrivate *priv = button->priv;
char *folder_name = em_utils_folder_name_from_uri (priv->uri);
-
+
if (folder_name) {
gtk_label_set_text (GTK_LABEL (priv->label), _(folder_name));
g_free (folder_name);
@@ -142,27 +142,27 @@ em_folder_selection_button_init (EMFolderSelectionButton *emfsb)
{
struct _EMFolderSelectionButtonPrivate *priv;
GtkWidget *box;
-
+
priv = g_new0 (struct _EMFolderSelectionButtonPrivate, 1);
emfsb->priv = priv;
-
+
priv->multiple_select = FALSE;
-
+
box = gtk_hbox_new (FALSE, 4);
-
+
priv->icon = gtk_image_new ();
gtk_widget_show (priv->icon);
gtk_box_pack_start (GTK_BOX (box), priv->icon, FALSE, TRUE, 0);
-
+
priv->label = gtk_label_new ("");
gtk_widget_show (priv->label);
gtk_label_set_justify (GTK_LABEL (priv->label), GTK_JUSTIFY_LEFT);
gtk_misc_set_alignment (GTK_MISC (priv->label), 0.0, 0.0);
gtk_box_pack_start (GTK_BOX (box), priv->label, TRUE, TRUE, 0);
-
+
gtk_widget_show (box);
gtk_container_add (GTK_CONTAINER (emfsb), box);
-
+
set_contents (emfsb);
}
@@ -187,12 +187,12 @@ em_folder_selection_button_finalize (GObject *obj)
GList *lst = ((EMFolderSelectionButton*) obj)->priv->uris;
g_list_foreach (lst, (GFunc) g_free, NULL);
g_list_free (lst);
-
+
g_free (priv->title);
g_free (priv->caption);
g_free (priv->uri);
g_free (priv);
-
+
G_OBJECT_CLASS (parent_class)->finalize (obj);
}
@@ -202,17 +202,17 @@ emfsb_selector_response (EMFolderSelector *emfs, int response, EMFolderSelection
if (response == GTK_RESPONSE_OK) {
if (button->priv->multiple_select) {
GList *uris = em_folder_selector_get_selected_uris (emfs);
-
+
em_folder_selection_button_set_selection_mult (button, uris);
g_signal_emit (button, signals[SELECTED], 0);
} else {
const char *uri = em_folder_selector_get_selected_uri (emfs);
-
+
em_folder_selection_button_set_selection (button, uri);
g_signal_emit (button, signals[SELECTED], 0);
}
}
-
+
gtk_widget_destroy ((GtkWidget *) emfs);
}
@@ -223,7 +223,7 @@ em_folder_selection_button_clicked (GtkButton *button)
EMFolderTreeModel *model;
EMFolderTree *emft;
GtkWidget *dialog;
-
+
if (GTK_BUTTON_CLASS (parent_class)->clicked != NULL)
(* GTK_BUTTON_CLASS (parent_class)->clicked) (button);
@@ -252,10 +252,10 @@ GtkWidget *
em_folder_selection_button_new (const char *title, const char *caption)
{
EMFolderSelectionButton *button = g_object_new (EM_TYPE_FOLDER_SELECTION_BUTTON, NULL);
-
+
button->priv->title = g_strdup (title);
button->priv->caption = g_strdup (caption);
-
+
return GTK_WIDGET (button);
}
@@ -263,14 +263,14 @@ void
em_folder_selection_button_set_selection (EMFolderSelectionButton *button, const char *uri)
{
struct _EMFolderSelectionButtonPrivate *priv = button->priv;
-
+
g_return_if_fail (EM_IS_FOLDER_SELECTION_BUTTON (button));
-
+
if (priv->uri != uri) {
g_free (priv->uri);
priv->uri = g_strdup (uri);
}
-
+
set_contents (button);
}
@@ -278,7 +278,7 @@ const char *
em_folder_selection_button_get_selection (EMFolderSelectionButton *button)
{
g_return_val_if_fail (EM_IS_FOLDER_SELECTION_BUTTON (button), NULL);
-
+
return button->priv->uri;
}
@@ -287,20 +287,20 @@ em_folder_selection_button_set_selection_mult (EMFolderSelectionButton *button,
{
struct _EMFolderSelectionButtonPrivate *priv = button->priv;
char *caption, *tmp, *tmp2;
-
+
g_return_if_fail (EM_IS_FOLDER_SELECTION_BUTTON (button));
-
+
if (priv->uris) {
g_list_foreach (priv->uris, (GFunc) g_free, NULL);
g_list_free (priv->uris);
priv->uris = NULL;
}
-
+
priv->uris = uris;
-
+
/* compile the name */
caption = g_strdup ("");
-
+
while (uris) {
tmp = em_utils_folder_name_from_uri (uris->data);
if (tmp) {
@@ -316,12 +316,12 @@ em_folder_selection_button_set_selection_mult (EMFolderSelectionButton *button,
priv->uris = g_list_remove (priv->uris, uris->data);
}
}
-
+
if (caption[0])
gtk_label_set_text (GTK_LABEL (priv->label), caption + 2);
else
set_contents_unselected (button);
-
+
g_free (caption);
}
@@ -329,7 +329,7 @@ GList *
em_folder_selection_button_get_selection_mult (EMFolderSelectionButton *button)
{
g_return_val_if_fail (EM_IS_FOLDER_SELECTION_BUTTON (button), NULL);
-
+
return button->priv->uris;
}
diff --git a/mail/em-folder-selection-button.h b/mail/em-folder-selection-button.h
index 172c97c28c..5077f86f2a 100644
--- a/mail/em-folder-selection-button.h
+++ b/mail/em-folder-selection-button.h
@@ -42,15 +42,15 @@ typedef struct _EMFolderSelectionButtonClass EMFolderSelectionButtonClass;
struct _EMFolderSelectionButton {
GtkButton parent;
-
+
struct _EMFolderSelectionButtonPrivate *priv;
};
struct _EMFolderSelectionButtonClass {
GtkButtonClass parent_class;
-
+
/* Signals. */
-
+
void (* selected) (EMFolderSelectionButton *button);
};
diff --git a/mail/em-folder-selection.c b/mail/em-folder-selection.c
index d5d4430545..fb8ce56f1d 100644
--- a/mail/em-folder-selection.c
+++ b/mail/em-folder-selection.c
@@ -62,23 +62,23 @@ em_select_folder (GtkWindow *parent_window, const char *title, const char *oklab
EMFolderTreeModel *model;
GtkWidget *dialog;
EMFolderTree *emft;
-
+
model = mail_component_peek_tree_model (mail_component_peek ());
emft = (EMFolderTree *) em_folder_tree_new_with_model (model);
if (exclude)
em_folder_tree_set_excluded_func(emft, exclude, user_data);
else
em_folder_tree_set_excluded (emft, EMFT_EXCLUDE_NOSELECT|EMFT_EXCLUDE_VIRTUAL|EMFT_EXCLUDE_VTRASH);
-
+
dialog = em_folder_selector_new(emft, EM_FOLDER_SELECTOR_CAN_CREATE, title, NULL, oklabel);
-
+
d = g_malloc0(sizeof(*d));
d->data = user_data;
d->done = done;
g_signal_connect(dialog, "response", G_CALLBACK (emfs_selector_response), d);
g_object_set_data_full((GObject *)dialog, "e-select-data", d, (GDestroyNotify)g_free);
gtk_widget_show(dialog);
-
+
if (default_uri)
em_folder_selector_set_selected((EMFolderSelector *)dialog, default_uri);
}
diff --git a/mail/em-folder-selector.c b/mail/em-folder-selector.c
index 3294c4fa5a..eb1cfa19bd 100644
--- a/mail/em-folder-selector.c
+++ b/mail/em-folder-selector.c
@@ -67,7 +67,7 @@ GType
em_folder_selector_get_type (void)
{
static GType type = 0;
-
+
if (!type) {
static const GTypeInfo info = {
sizeof (EMFolderSelectorClass),
@@ -80,10 +80,10 @@ em_folder_selector_get_type (void)
0, /* n_preallocs */
(GInstanceInitFunc) em_folder_selector_init,
};
-
+
type = g_type_register_static (GTK_TYPE_DIALOG, "EMFolderSelector", &info, 0);
}
-
+
return type;
}
@@ -92,9 +92,9 @@ em_folder_selector_class_init (EMFolderSelectorClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkObjectClass *gtk_object_class = GTK_OBJECT_CLASS (klass);
-
+
parent_class = g_type_class_ref (GTK_TYPE_DIALOG);
-
+
object_class->finalize = em_folder_selector_finalize;
gtk_object_class->destroy = em_folder_selector_destroy;
}
@@ -111,13 +111,13 @@ em_folder_selector_destroy (GtkObject *obj)
{
EMFolderSelector *emfs = (EMFolderSelector *) obj;
EMFolderTreeModel *model;
-
+
if (emfs->created_id != 0) {
model = em_folder_tree_get_model (emfs->emft);
g_signal_handler_disconnect (model, emfs->created_id);
emfs->created_id = 0;
}
-
+
GTK_OBJECT_CLASS (parent_class)->destroy (obj);
}
@@ -125,11 +125,11 @@ static void
em_folder_selector_finalize (GObject *obj)
{
EMFolderSelector *emfs = (EMFolderSelector *) obj;
-
+
g_free (emfs->selected_path);
g_free (emfs->selected_uri);
g_free (emfs->created_uri);
-
+
G_OBJECT_CLASS (parent_class)->finalize (obj);
}
@@ -138,10 +138,10 @@ emfs_response (GtkWidget *dialog, int response, EMFolderSelector *emfs)
{
if (response != EM_FOLDER_SELECTOR_RESPONSE_NEW)
return;
-
+
g_object_set_data ((GObject *)emfs->emft, "select", GUINT_TO_POINTER (1));
em_folder_utils_create_folder(NULL, emfs->emft);
-
+
g_signal_stop_emission_by_name (emfs, "response");
}
@@ -151,10 +151,10 @@ emfs_create_name_changed (GtkEntry *entry, EMFolderSelector *emfs)
char *path;
const char *text = NULL;
gboolean active;
-
+
if (emfs->name_entry->text_length > 0)
text = gtk_entry_get_text (emfs->name_entry);
-
+
path = em_folder_tree_get_selected_uri(emfs->emft);
active = text && path && !strchr (text, '/');
g_free(path);
@@ -181,42 +181,42 @@ void
em_folder_selector_construct (EMFolderSelector *emfs, EMFolderTree *emft, guint32 flags, const char *title, const char *text, const char *oklabel)
{
GtkWidget *label;
-
+
gtk_window_set_modal (GTK_WINDOW (emfs), FALSE);
gtk_window_set_default_size (GTK_WINDOW (emfs), 350, 300);
gtk_window_set_title (GTK_WINDOW (emfs), title);
gtk_container_set_border_width (GTK_CONTAINER (emfs), 6);
-
+
gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (emfs)->vbox), 6);
gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (emfs)->vbox), 6);
-
+
emfs->flags = flags;
if (flags & EM_FOLDER_SELECTOR_CAN_CREATE) {
gtk_dialog_add_button (GTK_DIALOG (emfs), GTK_STOCK_NEW, EM_FOLDER_SELECTOR_RESPONSE_NEW);
g_signal_connect (emfs, "response", G_CALLBACK (emfs_response), emfs);
}
-
+
gtk_dialog_add_buttons (GTK_DIALOG (emfs), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
oklabel?oklabel:GTK_STOCK_OK, GTK_RESPONSE_OK, NULL);
-
+
gtk_dialog_set_response_sensitive (GTK_DIALOG (emfs), GTK_RESPONSE_OK, FALSE);
gtk_dialog_set_default_response (GTK_DIALOG (emfs), GTK_RESPONSE_OK);
-
+
emfs->emft = emft;
gtk_widget_show ((GtkWidget *) emft);
-
+
g_signal_connect (emfs->emft, "folder-selected", G_CALLBACK (folder_selected_cb), emfs);
g_signal_connect (emfs->emft, "folder-activated", G_CALLBACK (folder_activated_cb), emfs);
gtk_box_pack_end (GTK_BOX (GTK_DIALOG (emfs)->vbox), (GtkWidget *)emft, TRUE, TRUE, 6);
-
+
if (text != NULL) {
label = gtk_label_new (text);
- gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
+ gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
gtk_widget_show (label);
-
+
gtk_box_pack_end (GTK_BOX (GTK_DIALOG (emfs)->vbox), label, FALSE, TRUE, 6);
}
-
+
gtk_widget_grab_focus ((GtkWidget *) emfs->emft);
}
@@ -224,10 +224,10 @@ GtkWidget *
em_folder_selector_new (EMFolderTree *emft, guint32 flags, const char *title, const char *text, const char *oklabel)
{
EMFolderSelector *emfs;
-
+
emfs = g_object_new (em_folder_selector_get_type (), NULL);
em_folder_selector_construct (emfs, emft, flags, title, text, oklabel);
-
+
return (GtkWidget *) emfs;
}
@@ -238,10 +238,10 @@ emfs_create_name_activate (GtkEntry *entry, EMFolderSelector *emfs)
if (emfs->name_entry->text_length > 0) {
char *path;
const char *text;
-
+
text = gtk_entry_get_text (emfs->name_entry);
path = em_folder_tree_get_selected_uri(emfs->emft);
-
+
if (text && path && !strchr (text, '/'))
g_signal_emit_by_name (emfs, "response", GTK_RESPONSE_OK);
g_free(path);
@@ -253,15 +253,15 @@ em_folder_selector_create_new (EMFolderTree *emft, guint32 flags, const char *ti
{
EMFolderSelector *emfs;
GtkWidget *hbox, *w;
-
+
/* remove the CREATE flag if it is there since that's the
* whole purpose of this dialog */
flags &= ~EM_FOLDER_SELECTOR_CAN_CREATE;
-
+
emfs = g_object_new (em_folder_selector_get_type (), NULL);
em_folder_selector_construct (emfs, emft, flags, title, text, _("Create"));
em_folder_tree_set_excluded(emft, EMFT_EXCLUDE_NOINFERIORS);
-
+
hbox = gtk_hbox_new (FALSE, 0);
w = gtk_label_new_with_mnemonic (_("Folder _name:"));
gtk_box_pack_start ((GtkBox *) hbox, w, FALSE, FALSE, 6);
@@ -271,11 +271,11 @@ em_folder_selector_create_new (EMFolderTree *emft, guint32 flags, const char *ti
g_signal_connect (emfs->name_entry, "activate", G_CALLBACK (emfs_create_name_activate), emfs);
gtk_box_pack_start ((GtkBox *) hbox, (GtkWidget *) emfs->name_entry, TRUE, FALSE, 6);
gtk_widget_show_all (hbox);
-
+
gtk_box_pack_start ((GtkBox *) ((GtkDialog *) emfs)->vbox, hbox, FALSE, TRUE, 0);
-
+
gtk_widget_grab_focus ((GtkWidget *) emfs->name_entry);
-
+
return (GtkWidget *) emfs;
}
@@ -297,28 +297,28 @@ em_folder_selector_get_selected_uri (EMFolderSelector *emfs)
{
char *uri;
const char *name;
-
+
if (!(uri = em_folder_tree_get_selected_uri (emfs->emft))) {
d(printf ("no selected folder?\n"));
return NULL;
}
-
+
if (uri && emfs->name_entry) {
CamelProvider *provider;
CamelURL *url;
char *newpath;
-
+
provider = camel_provider_get(uri, NULL);
-
+
name = gtk_entry_get_text (emfs->name_entry);
-
+
url = camel_url_new (uri, NULL);
if (provider && (provider->url_flags & CAMEL_URL_FRAGMENT_IS_PATH)) {
if (url->fragment)
newpath = g_strdup_printf ("%s/%s", url->fragment, name);
else
newpath = g_strdup (name);
-
+
camel_url_set_fragment (url, newpath);
} else {
char *path;
@@ -331,17 +331,17 @@ em_folder_selector_get_selected_uri (EMFolderSelector *emfs)
} else
newpath = path;
}
-
+
g_free (emfs->selected_path);
emfs->selected_path = newpath;
-
+
g_free (emfs->selected_uri);
emfs->selected_uri = camel_url_to_string (url, 0);
-
+
camel_url_free (url);
uri = emfs->selected_uri;
}
-
+
return uri;
}
@@ -361,7 +361,7 @@ const char *
em_folder_selector_get_selected_path (EMFolderSelector *emfs)
{
char *uri, *path;
-
+
if (emfs->selected_path) {
/* already did the work in a previous call */
return emfs->selected_path;
@@ -377,7 +377,7 @@ em_folder_selector_get_selected_path (EMFolderSelector *emfs)
if (emfs->name_entry) {
const char *name;
char *newpath;
-
+
name = gtk_entry_get_text (emfs->name_entry);
newpath = g_strdup_printf ("%s/%s", path?path:"", name);
diff --git a/mail/em-folder-selector.h b/mail/em-folder-selector.h
index 1b5a0d31c9..7df2743c7c 100644
--- a/mail/em-folder-selector.h
+++ b/mail/em-folder-selector.h
@@ -42,21 +42,21 @@ typedef struct _EMFolderSelectorClass EMFolderSelectorClass;
struct _EMFolderSelector {
GtkDialog parent;
-
+
guint32 flags;
struct _EMFolderTree *emft;
-
+
struct _GtkEntry *name_entry;
char *selected_path;
char *selected_uri;
-
+
char *created_uri;
guint created_id;
};
struct _EMFolderSelectorClass {
GtkDialogClass parent_class;
-
+
};
enum {
diff --git a/mail/em-folder-tree-model.c b/mail/em-folder-tree-model.c
index 9048969fef..5f4c67fc6e 100644
--- a/mail/em-folder-tree-model.c
+++ b/mail/em-folder-tree-model.c
@@ -100,7 +100,7 @@ GType
em_folder_tree_model_get_type (void)
{
static GType type = 0;
-
+
if (!type) {
static const GTypeInfo info = {
sizeof (EMFolderTreeModelClass),
@@ -123,15 +123,15 @@ em_folder_tree_model_get_type (void)
NULL,
NULL
};
-
+
type = g_type_register_static (GTK_TYPE_TREE_STORE, "EMFolderTreeModel", &info, 0);
-
+
g_type_add_interface_static (type, GTK_TYPE_TREE_MODEL,
&tree_model_info);
g_type_add_interface_static (type, GTK_TYPE_TREE_SORTABLE,
&sortable_info);
}
-
+
return type;
}
@@ -140,11 +140,11 @@ static void
em_folder_tree_model_class_init (EMFolderTreeModelClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
-
+
parent_class = g_type_class_ref (GTK_TYPE_TREE_STORE);
-
+
object_class->finalize = em_folder_tree_model_finalize;
-
+
/* signals */
signals[LOADING_ROW] =
g_signal_new ("loading-row",
@@ -156,7 +156,7 @@ em_folder_tree_model_class_init (EMFolderTreeModelClass *klass)
G_TYPE_NONE, 2,
G_TYPE_POINTER,
G_TYPE_POINTER);
-
+
signals[LOADED_ROW] =
g_signal_new ("loaded-row",
G_OBJECT_CLASS_TYPE (object_class),
@@ -167,7 +167,7 @@ em_folder_tree_model_class_init (EMFolderTreeModelClass *klass)
G_TYPE_NONE, 2,
G_TYPE_POINTER,
G_TYPE_POINTER);
-
+
signals[FOLDER_ADDED] =
g_signal_new ("folder-added",
G_OBJECT_CLASS_TYPE (object_class),
@@ -189,12 +189,12 @@ sort_cb (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer user_data
gboolean is_store;
guint32 aflags, bflags;
int rv = -2;
-
+
gtk_tree_model_get (model, a, COL_BOOL_IS_STORE, &is_store,
COL_POINTER_CAMEL_STORE, &store,
COL_STRING_DISPLAY_NAME, &aname, COL_UINT_FLAGS, &aflags, -1);
gtk_tree_model_get (model, b, COL_STRING_DISPLAY_NAME, &bname, COL_UINT_FLAGS, &bflags, -1);
-
+
if (is_store) {
/* On This Computer is always first and Search Folders is always last */
if (!strcmp (aname, _("On This Computer")))
@@ -218,19 +218,19 @@ sort_cb (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer user_data
else if ((bflags & CAMEL_FOLDER_TYPE_MASK) == CAMEL_FOLDER_TYPE_INBOX)
rv = 1;
}
-
+
if (aname == NULL) {
if (bname == NULL)
rv = 0;
} else if (bname == NULL)
rv = 1;
-
+
if (rv == -2)
rv = g_utf8_collate (aname, bname);
-
+
g_free (aname);
g_free (bname);
-
+
return rv;
}
@@ -242,7 +242,7 @@ store_info_free (struct _EMFolderTreeModelStoreInfo *si)
camel_object_remove_event (si->store, si->renamed_id);
camel_object_remove_event (si->store, si->subscribed_id);
camel_object_remove_event (si->store, si->unsubscribed_id);
-
+
g_free (si->display_name);
camel_object_unref (si->store);
gtk_tree_row_reference_free (si->row);
@@ -262,9 +262,9 @@ em_folder_tree_model_init (EMFolderTreeModel *model)
g_str_hash, g_str_equal,
(GDestroyNotify) g_free,
(GDestroyNotify) gtk_tree_row_reference_free);
-
+
gtk_tree_sortable_set_default_sort_func ((GtkTreeSortable *) model, sort_cb, NULL, NULL);
-
+
model->accounts = mail_config_get_accounts ();
model->account_hash = g_hash_table_new (g_direct_hash, g_direct_equal);
model->account_changed_id = g_signal_connect (model->accounts, "account-changed", G_CALLBACK (account_changed), model);
@@ -275,18 +275,18 @@ static void
em_folder_tree_model_finalize (GObject *obj)
{
EMFolderTreeModel *model = (EMFolderTreeModel *) obj;
-
+
g_free (model->filename);
if (model->state)
xmlFreeDoc (model->state);
-
+
g_hash_table_destroy (model->store_hash);
g_hash_table_destroy (model->uri_hash);
-
+
g_hash_table_destroy (model->account_hash);
g_signal_handler_disconnect (model->accounts, model->account_changed_id);
g_signal_handler_disconnect (model->accounts, model->account_removed_id);
-
+
G_OBJECT_CLASS (parent_class)->finalize (obj);
}
@@ -308,22 +308,22 @@ static void
em_folder_tree_model_load_state (EMFolderTreeModel *model, const char *filename)
{
xmlNodePtr root, node;
-
+
if (model->state)
xmlFreeDoc (model->state);
-
+
if ((model->state = e_xml_parse_file (filename)))
return;
-
+
/* setup some defaults - expand "Local Folders" and "Search Folders" */
model->state = xmlNewDoc ((const unsigned char *)"1.0");
root = xmlNewDocNode (model->state, NULL, (const unsigned char *)"tree-state", NULL);
xmlDocSetRootElement (model->state, root);
-
+
node = xmlNewChild (root, NULL, (const unsigned char *)"node", NULL);
xmlSetProp (node, (const unsigned char *)"name", (const unsigned char *)"local");
xmlSetProp (node, (const unsigned char *)"expand", (const unsigned char *)"true");
-
+
node = xmlNewChild (root, NULL, (const unsigned char *)"node", NULL);
xmlSetProp (node, (const unsigned char *)"name", (const unsigned char *)"vfolder");
xmlSetProp (node, (const unsigned char *)"expand", (const unsigned char *)"true");
@@ -335,17 +335,17 @@ em_folder_tree_model_new (const char *evolution_dir)
{
EMFolderTreeModel *model;
char *filename;
-
+
model = g_object_new (EM_TYPE_FOLDER_TREE_MODEL, NULL);
gtk_tree_store_set_column_types ((GtkTreeStore *) model, NUM_COLUMNS, col_types);
gtk_tree_sortable_set_sort_column_id ((GtkTreeSortable *) model,
GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID,
GTK_SORT_ASCENDING);
-
+
filename = g_build_filename (evolution_dir, "mail", "config", "folder-tree-expand-state.xml", NULL);
em_folder_tree_model_load_state (model, filename);
model->filename = filename;
-
+
return model;
}
@@ -359,31 +359,31 @@ account_changed (EAccountList *accounts, EAccount *account, gpointer user_data)
CamelStore *store;
CamelException ex;
char *uri;
-
+
if (!(si = g_hash_table_lookup (model->account_hash, account)))
return;
-
+
em_folder_tree_model_remove_store (model, si->store);
-
+
/* check if store needs to be added at all*/
if (!account->enabled ||!(uri = account->source->url))
return;
-
+
camel_exception_init (&ex);
if (!(provider = camel_provider_get(uri, &ex))) {
camel_exception_clear (&ex);
return;
}
-
+
/* make sure the new store belongs in the tree */
if (!(provider->flags & CAMEL_PROVIDER_IS_STORAGE))
return;
-
+
if (!(store = (CamelStore *) camel_session_get_service (session, uri, CAMEL_PROVIDER_STORE, &ex))) {
camel_exception_clear (&ex);
return;
}
-
+
em_folder_tree_model_add_store (model, store, account->name);
camel_object_unref (store);
}
@@ -393,10 +393,10 @@ account_removed (EAccountList *accounts, EAccount *account, gpointer user_data)
{
EMFolderTreeModel *model = user_data;
struct _EMFolderTreeModelStoreInfo *si;
-
+
if (!(si = g_hash_table_lookup (model->account_hash, account)))
return;
-
+
em_folder_tree_model_remove_store (model, si->store);
}
@@ -417,15 +417,15 @@ em_folder_tree_model_set_folder_info (EMFolderTreeModel *model, GtkTreeIter *ite
if (!fully_loaded)
load = fi->child == NULL && !(fi->flags & (CAMEL_FOLDER_NOCHILDREN | CAMEL_FOLDER_NOINFERIORS));
-
+
path = gtk_tree_model_get_path ((GtkTreeModel *) model, iter);
uri_row = gtk_tree_row_reference_new ((GtkTreeModel *) model, path);
path_row = gtk_tree_row_reference_copy (uri_row);
gtk_tree_path_free (path);
-
+
g_hash_table_insert (model->uri_hash, g_strdup (fi->uri), uri_row);
g_hash_table_insert (si->full_hash, g_strdup (fi->full_name), path_row);
-
+
/* HACK: if we have the folder, and its the outbox folder, we need the total count, not unread */
/* HACK2: We do the same to the draft folder */
/* This is duplicated in mail-folder-cache too, should perhaps be functionised */
@@ -433,26 +433,26 @@ em_folder_tree_model_set_folder_info (EMFolderTreeModel *model, GtkTreeIter *ite
if (mail_note_get_folder_from_uri(fi->uri, &folder) && folder) {
if (folder == mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_OUTBOX)) {
int total;
-
+
if ((total = camel_folder_get_message_count (folder)) > 0) {
int deleted = camel_folder_get_deleted_message_count (folder);
-
+
if (deleted != -1)
total -= deleted;
}
-
+
unread = total > 0 ? total : 0;
- }
+ }
if (folder == mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_DRAFTS)) {
int total;
-
+
if ((total = camel_folder_get_message_count (folder)) > 0) {
int deleted = camel_folder_get_deleted_message_count (folder);
-
+
if (deleted != -1)
total -= deleted;
}
-
+
unread = total > 0 ? total : 0;
}
camel_object_unref(folder);
@@ -489,7 +489,7 @@ em_folder_tree_model_set_folder_info (EMFolderTreeModel *model, GtkTreeIter *ite
if (unread != ~0)
gtk_tree_store_set ((GtkTreeStore *) model, iter, COL_UINT_UNREAD, unread, -1);
-
+
if (load) {
/* create a placeholder node for our subfolders... */
gtk_tree_store_append ((GtkTreeStore *) model, &sub, iter);
@@ -502,31 +502,31 @@ em_folder_tree_model_set_folder_info (EMFolderTreeModel *model, GtkTreeIter *ite
COL_STRING_URI, NULL,
COL_UINT_UNREAD, 0,
-1);
-
+
path = gtk_tree_model_get_path ((GtkTreeModel *) model, iter);
g_signal_emit (model, signals[LOADING_ROW], 0, path, iter);
gtk_tree_path_free (path);
return;
}
-
+
if (fi->child) {
fi = fi->child;
-
+
do {
gtk_tree_store_append ((GtkTreeStore *) model, &sub, iter);
-
+
if (!emitted) {
path = gtk_tree_model_get_path ((GtkTreeModel *) model, iter);
g_signal_emit (model, signals[LOADED_ROW], 0, path, iter);
gtk_tree_path_free (path);
emitted = TRUE;
}
-
+
em_folder_tree_model_set_folder_info (model, &sub, si, fi, fully_loaded);
fi = fi->next;
} while (fi);
}
-
+
if (!emitted) {
path = gtk_tree_model_get_path ((GtkTreeModel *) model, iter);
g_signal_emit (model, signals[LOADED_ROW], 0, path, iter);
@@ -547,11 +547,11 @@ folder_subscribed (CamelStore *store, CamelFolderInfo *fi, EMFolderTreeModel *mo
if (!(si = g_hash_table_lookup (model->store_hash, store)))
goto done;
-
+
/* make sure we don't already know about it? */
if (g_hash_table_lookup (si->full_hash, fi->full_name))
goto done;
-
+
/* get our parent folder's path */
dirname = alloca(strlen(fi->full_name)+1);
strcpy(dirname, fi->full_name);
@@ -562,36 +562,36 @@ folder_subscribed (CamelStore *store, CamelFolderInfo *fi, EMFolderTreeModel *mo
} else {
*p = 0;
row = g_hash_table_lookup (si->full_hash, dirname);
-
+
/* if row is NULL, don't bother adding to the tree,
* when the user expands enough nodes - it will be
* added auto-magically */
if (row == NULL)
goto done;
}
-
+
path = gtk_tree_row_reference_get_path (row);
if (!(gtk_tree_model_get_iter ((GtkTreeModel *) model, &parent, path))) {
gtk_tree_path_free (path);
goto done;
}
-
+
gtk_tree_path_free (path);
-
+
/* make sure parent's subfolders have already been loaded */
gtk_tree_model_get ((GtkTreeModel *) model, &parent, COL_BOOL_LOAD_SUBDIRS, &load, -1);
if (load)
goto done;
-
+
/* append a new node */
gtk_tree_store_append ((GtkTreeStore *) model, &iter, &parent);
-
+
em_folder_tree_model_set_folder_info (model, &iter, si, fi, TRUE);
g_signal_emit (model, signals[FOLDER_ADDED], 0, fi->full_name, fi->uri);
-
+
done:
-
+
camel_object_unref (store);
camel_folder_info_free (fi);
}
@@ -600,7 +600,7 @@ static void
folder_subscribed_cb (CamelStore *store, void *event_data, EMFolderTreeModel *model)
{
CamelFolderInfo *fi;
-
+
camel_object_ref (store);
fi = camel_folder_info_clone (event_data);
mail_async_event_emit (mail_async_event, MAIL_ASYNC_GUI, (MailAsyncFunc) folder_subscribed, store, fi, model);
@@ -613,23 +613,23 @@ folder_unsubscribed (CamelStore *store, CamelFolderInfo *fi, EMFolderTreeModel *
GtkTreeRowReference *row;
GtkTreePath *path;
GtkTreeIter iter;
-
+
if (!(si = g_hash_table_lookup (model->store_hash, store)))
goto done;
-
+
if (!(row = g_hash_table_lookup (si->full_hash, fi->full_name)))
goto done;
-
+
path = gtk_tree_row_reference_get_path (row);
if (!(gtk_tree_model_get_iter ((GtkTreeModel *) model, &iter, path))) {
gtk_tree_path_free (path);
goto done;
}
-
+
em_folder_tree_model_remove_folders (model, si, &iter);
-
+
done:
-
+
camel_object_unref (store);
camel_folder_info_free (fi);
}
@@ -638,7 +638,7 @@ static void
folder_unsubscribed_cb (CamelStore *store, void *event_data, EMFolderTreeModel *model)
{
CamelFolderInfo *fi;
-
+
camel_object_ref (store);
fi = camel_folder_info_clone (event_data);
mail_async_event_emit (mail_async_event, MAIL_ASYNC_GUI, (MailAsyncFunc) folder_unsubscribed, store, fi, model);
@@ -652,7 +652,7 @@ folder_created_cb (CamelStore *store, void *event_data, EMFolderTreeModel *model
/* we only want created events to do more work if we don't support subscriptions */
if (camel_store_supports_subscriptions (store))
return;
-
+
camel_object_ref (store);
fi = camel_folder_info_clone (event_data);
mail_async_event_emit (mail_async_event, MAIL_ASYNC_GUI, (MailAsyncFunc) folder_subscribed, store, fi, model);
@@ -662,11 +662,11 @@ static void
folder_deleted_cb (CamelStore *store, void *event_data, EMFolderTreeModel *model)
{
CamelFolderInfo *fi;
-
+
/* we only want deleted events to do more work if we don't support subscriptions */
if (camel_store_supports_subscriptions (store))
return;
-
+
camel_object_ref (store);
fi = camel_folder_info_clone (event_data);
mail_async_event_emit (mail_async_event, MAIL_ASYNC_GUI, (MailAsyncFunc) folder_unsubscribed_cb, store, fi, model);
@@ -683,18 +683,18 @@ folder_renamed (CamelStore *store, CamelRenameInfo *info, EMFolderTreeModel *mod
if (!(si = g_hash_table_lookup (model->store_hash, store)))
goto done;
-
+
if (!(row = g_hash_table_lookup (si->full_hash, info->old_base)))
goto done;
-
+
path = gtk_tree_row_reference_get_path (row);
if (!(gtk_tree_model_get_iter ((GtkTreeModel *) model, &iter, path))) {
gtk_tree_path_free (path);
goto done;
}
-
+
em_folder_tree_model_remove_folders (model, si, &iter);
-
+
parent = g_strdup(info->new->full_name);
p = strrchr(parent, '/');
if (p)
@@ -712,25 +712,25 @@ folder_renamed (CamelStore *store, CamelRenameInfo *info, EMFolderTreeModel *mod
g_free (parent);
goto done;
}
-
+
path = gtk_tree_row_reference_get_path (row);
}
-
+
g_free (parent);
-
+
if (!gtk_tree_model_get_iter ((GtkTreeModel *) model, &root, path)) {
gtk_tree_path_free (path);
- g_warning ("This shouldn't be reached\n");
+ g_warning ("This shouldn't be reached\n");
goto done;
}
-
+
gtk_tree_store_append ((GtkTreeStore *) model, &iter, &root);
em_folder_tree_model_set_folder_info (model, &iter, si, info->new, TRUE);
-
+
done:
-
+
camel_object_unref (store);
-
+
g_free (info->old_base);
camel_folder_info_free (info->new);
g_free (info);
@@ -740,13 +740,13 @@ static void
folder_renamed_cb (CamelStore *store, void *event_data, EMFolderTreeModel *model)
{
CamelRenameInfo *rinfo, *info = event_data;
-
+
camel_object_ref (store);
-
+
rinfo = g_new0 (CamelRenameInfo, 1);
rinfo->old_base = g_strdup (info->old_base);
rinfo->new = camel_folder_info_clone (info->new);
-
+
mail_async_event_emit (mail_async_event, MAIL_ASYNC_GUI, (MailAsyncFunc) folder_renamed, store, rinfo, model);
}
@@ -759,18 +759,18 @@ em_folder_tree_model_add_store (EMFolderTreeModel *model, CamelStore *store, con
GtkTreePath *path;
EAccount *account;
char *uri;
-
+
g_return_if_fail (EM_IS_FOLDER_TREE_MODEL (model));
g_return_if_fail (CAMEL_IS_STORE (store));
g_return_if_fail (display_name != NULL);
-
+
if ((si = g_hash_table_lookup (model->store_hash, store)))
em_folder_tree_model_remove_store (model, store);
-
+
uri = camel_url_to_string (((CamelService *) store)->url, CAMEL_URL_HIDE_ALL);
-
+
account = mail_config_get_account_by_source_url (uri);
-
+
/* add the store to the tree */
gtk_tree_store_append ((GtkTreeStore *) model, &iter, NULL);
gtk_tree_store_set ((GtkTreeStore *) model, &iter,
@@ -780,10 +780,10 @@ em_folder_tree_model_add_store (EMFolderTreeModel *model, CamelStore *store, con
COL_BOOL_LOAD_SUBDIRS, TRUE,
COL_BOOL_IS_STORE, TRUE,
COL_STRING_URI, uri, -1);
-
+
path = gtk_tree_model_get_path ((GtkTreeModel *) model, &iter);
row = gtk_tree_row_reference_new ((GtkTreeModel *) model, path);
-
+
si = g_new (struct _EMFolderTreeModelStoreInfo, 1);
si->display_name = g_strdup (display_name);
camel_object_ref (store);
@@ -796,7 +796,7 @@ em_folder_tree_model_add_store (EMFolderTreeModel *model, CamelStore *store, con
(GDestroyNotify) gtk_tree_row_reference_free);
g_hash_table_insert (model->store_hash, store, si);
g_hash_table_insert (model->account_hash, account, si);
-
+
/* each store has folders... but we don't load them until the user demands them */
root = iter;
gtk_tree_store_append ((GtkTreeStore *) model, &iter, &root);
@@ -809,9 +809,9 @@ em_folder_tree_model_add_store (EMFolderTreeModel *model, CamelStore *store, con
COL_STRING_URI, NULL,
COL_UINT_UNREAD, 0,
-1);
-
+
g_free (uri);
-
+
/* listen to store events */
#define CAMEL_CALLBACK(func) ((CamelObjectEventHookFunc) func)
si->created_id = camel_object_hook_event (store, "folder_created", CAMEL_CALLBACK (folder_created_cb), model);
@@ -819,7 +819,7 @@ em_folder_tree_model_add_store (EMFolderTreeModel *model, CamelStore *store, con
si->renamed_id = camel_object_hook_event (store, "folder_renamed", CAMEL_CALLBACK (folder_renamed_cb), model);
si->subscribed_id = camel_object_hook_event (store, "folder_subscribed", CAMEL_CALLBACK (folder_subscribed_cb), model);
si->unsubscribed_id = camel_object_hook_event (store, "folder_unsubscribed", CAMEL_CALLBACK (folder_unsubscribed_cb), model);
-
+
g_signal_emit (model, signals[LOADED_ROW], 0, path, &root);
gtk_tree_path_free (path);
}
@@ -839,13 +839,13 @@ static void
em_folder_tree_model_remove_store_info (EMFolderTreeModel *model, CamelStore *store)
{
struct _EMFolderTreeModelStoreInfo *si;
-
+
g_return_if_fail (EM_IS_FOLDER_TREE_MODEL (model));
g_return_if_fail (CAMEL_IS_STORE (store));
-
+
if (!(si = g_hash_table_lookup (model->store_hash, store)))
return;
-
+
g_hash_table_remove (model->store_hash, si->store);
g_hash_table_remove (model->account_hash, si->account);
}
@@ -857,32 +857,32 @@ em_folder_tree_model_remove_folders (EMFolderTreeModel *model, struct _EMFolderT
char *uri, *full_name;
gboolean is_store, go;
GtkTreeIter iter;
-
+
if (gtk_tree_model_iter_children ((GtkTreeModel *) model, &iter, toplevel)) {
do {
GtkTreeIter next = iter;
-
+
go = gtk_tree_model_iter_next ((GtkTreeModel *) model, &next);
em_folder_tree_model_remove_folders (model, si, &iter);
iter = next;
} while (go);
}
-
+
gtk_tree_model_get ((GtkTreeModel *) model, toplevel, COL_STRING_URI, &uri,
COL_STRING_FULL_NAME, &full_name,
COL_BOOL_IS_STORE, &is_store, -1);
if (full_name)
g_hash_table_remove (si->full_hash, full_name);
-
+
if (uri)
em_folder_tree_model_remove_uri (model, uri);
-
+
gtk_tree_store_remove ((GtkTreeStore *) model, toplevel);
-
+
if (is_store)
em_folder_tree_model_remove_store_info (model, si->store);
-
+
g_free (full_name);
g_free (uri);
}
@@ -894,17 +894,17 @@ em_folder_tree_model_remove_store (EMFolderTreeModel *model, CamelStore *store)
struct _EMFolderTreeModelStoreInfo *si;
GtkTreePath *path;
GtkTreeIter iter;
-
+
g_return_if_fail (EM_IS_FOLDER_TREE_MODEL (model));
g_return_if_fail (CAMEL_IS_STORE (store));
-
+
if (!(si = g_hash_table_lookup (model->store_hash, store)))
return;
-
+
path = gtk_tree_row_reference_get_path (si->row);
gtk_tree_model_get_iter ((GtkTreeModel *) model, &iter, path);
gtk_tree_path_free (path);
-
+
/* recursively remove subfolders and finally the toplevel store */
em_folder_tree_model_remove_folders (model, si, &iter);
}
@@ -915,7 +915,7 @@ find_xml_node (xmlNodePtr root, const char *name)
{
xmlNodePtr node;
char *nname;
-
+
node = root->children;
while (node != NULL) {
if (!strcmp ((char *)node->name, "node")) {
@@ -924,13 +924,13 @@ find_xml_node (xmlNodePtr root, const char *name)
xmlFree (nname);
return node;
}
-
+
xmlFree (nname);
}
-
+
node = node->next;
}
-
+
return node;
}
@@ -948,31 +948,31 @@ em_folder_tree_model_get_expanded (EMFolderTreeModel *model, const char *key)
node = model->state ? model->state->children : NULL;
if (!node || strcmp ((char *)node->name, "tree-state") != 0)
return FALSE;
-
+
name = buf = g_alloca (strlen (key) + 1);
p = g_stpcpy (buf, key);
if (p[-1] == '/')
p[-1] = '\0';
p = NULL;
-
+
do {
if ((p = strchr (name, '/')))
*p = '\0';
-
+
if ((node = find_xml_node (node, name))) {
gboolean expanded;
-
+
buf = (char *)xmlGetProp (node, (const unsigned char *)"expand");
expanded = buf && !strcmp ((char *)buf, "true");
xmlFree (buf);
-
+
if (!expanded || p == NULL)
return expanded;
}
-
+
name = p ? p + 1 : NULL;
} while (name && node);
-
+
return FALSE;
}
@@ -983,41 +983,41 @@ em_folder_tree_model_set_expanded (EMFolderTreeModel *model, const char *key, gb
xmlNodePtr node, parent;
const char *name;
char *buf, *p;
-
+
if (model->state == NULL)
model->state = xmlNewDoc ((const unsigned char *)"1.0");
-
+
if (!model->state->children) {
node = xmlNewDocNode (model->state, NULL, (const unsigned char *)"tree-state", NULL);
xmlDocSetRootElement (model->state, node);
} else {
node = model->state->children;
}
-
+
name = buf = g_alloca (strlen (key) + 1);
p = g_stpcpy (buf, key);
if (p[-1] == '/')
p[-1] = '\0';
p = NULL;
-
+
do {
parent = node;
if ((p = strchr (name, '/')))
*p = '\0';
-
+
if (!(node = find_xml_node (node, name))) {
if (!expanded) {
/* node doesn't exist, so we don't need to set expanded to FALSE */
return;
}
-
+
/* node (or parent node) doesn't exist, need to add it */
node = xmlNewChild (parent, NULL, (const unsigned char *)"node", NULL);
xmlSetProp (node, (const unsigned char *)"name", (unsigned char *)name);
}
-
+
xmlSetProp (node, (const unsigned char *)"expand", (const unsigned char *)(expanded || p ? "true" : "false"));
-
+
name = p ? p + 1 : NULL;
} while (name);
}
@@ -1049,7 +1049,7 @@ emftm_uri_to_key (const char *uri)
} else {
const char *path;
EAccount *account;
-
+
if (((CamelService *)store)->provider->url_flags & CAMEL_URL_FRAGMENT_IS_PATH)
path = url->fragment;
else
@@ -1119,18 +1119,18 @@ void
em_folder_tree_model_save_state (EMFolderTreeModel *model)
{
char *dirname;
-
+
if (model->state == NULL)
return;
-
+
dirname = g_path_get_dirname (model->filename);
if (g_mkdir_with_parents (dirname, 0777) == -1 && errno != EEXIST) {
g_free (dirname);
return;
}
-
+
g_free (dirname);
-
+
e_xml_save_file (model->filename, model->state);
}
@@ -1140,28 +1140,28 @@ expand_foreach_r (EMFolderTreeModel *model, xmlNodePtr parent, const char *dirna
{
xmlNodePtr node = parent->children;
char *path, *name, *expand;
-
+
while (node != NULL) {
if (!strcmp ((char *)node->name, "node")) {
name = (char *)xmlGetProp (node, (const unsigned char *)"name");
expand = (char *)xmlGetProp (node, (const unsigned char *)"expand");
-
+
if (expand && name && !strcmp ((char *)expand, "true")) {
if (dirname)
path = g_strdup_printf ("%s/%s", dirname, name);
else
path = g_strdup (name);
-
+
func (model, path, user_data);
if (node->children)
expand_foreach_r (model, node, path, func, user_data);
g_free (path);
}
-
+
xmlFree (expand);
xmlFree (name);
}
-
+
node = node->next;
}
}
@@ -1170,11 +1170,11 @@ void
em_folder_tree_model_expand_foreach (EMFolderTreeModel *model, EMFTModelExpandFunc func, void *user_data)
{
xmlNodePtr root;
-
+
root = model->state ? model->state->children : NULL;
if (!root || !root->children || strcmp ((char *)root->name, "tree-state") != 0)
return;
-
+
expand_foreach_r (model, root, NULL, func, user_data);
}
@@ -1197,12 +1197,12 @@ em_folder_tree_model_is_type_inbox (EMFolderTreeModel *model, CamelStore *store,
u(printf(" can't find store\n"));
return FALSE;
}
-
+
if (!(row = g_hash_table_lookup (si->full_hash, full))) {
u(printf(" can't find row\n"));
return FALSE;
}
-
+
tree_path = gtk_tree_row_reference_get_path (row);
if (!gtk_tree_model_get_iter ((GtkTreeModel *) model, &iter, tree_path)) {
gtk_tree_path_free (tree_path);
@@ -1210,7 +1210,7 @@ em_folder_tree_model_is_type_inbox (EMFolderTreeModel *model, CamelStore *store,
}
gtk_tree_path_free (tree_path);
-
+
gtk_tree_model_get (GTK_TREE_MODEL (model), &iter, COL_UINT_FLAGS, &flags, -1);
if ((flags & CAMEL_FOLDER_TYPE_MASK) == CAMEL_FOLDER_TYPE_INBOX)
@@ -1226,7 +1226,7 @@ em_folder_tree_model_set_unread_count (EMFolderTreeModel *model, CamelStore *sto
GtkTreeRowReference *row;
GtkTreePath *tree_path;
GtkTreeIter iter;
-
+
g_return_if_fail (EM_IS_FOLDER_TREE_MODEL (model));
g_return_if_fail (CAMEL_IS_STORE (store));
g_return_if_fail (full != NULL);
@@ -1235,25 +1235,25 @@ em_folder_tree_model_set_unread_count (EMFolderTreeModel *model, CamelStore *sto
if (unread < 0)
return;
-
+
if (!(si = g_hash_table_lookup (model->store_hash, store))) {
u(printf(" can't find store\n"));
return;
}
-
+
if (!(row = g_hash_table_lookup (si->full_hash, full))) {
u(printf(" can't find row\n"));
return;
}
-
+
tree_path = gtk_tree_row_reference_get_path (row);
if (!gtk_tree_model_get_iter ((GtkTreeModel *) model, &iter, tree_path)) {
gtk_tree_path_free (tree_path);
return;
}
-
+
gtk_tree_path_free (tree_path);
-
+
gtk_tree_store_set ((GtkTreeStore *) model, &iter, COL_UINT_UNREAD, unread, -1);
}
@@ -1263,25 +1263,25 @@ em_folder_tree_model_get_selected (EMFolderTreeModel *model)
{
xmlNodePtr node;
char *buf, *uri;
-
+
node = model->state ? model->state->children : NULL;
if (!node || strcmp ((char *)node->name, "tree-state") != 0)
return NULL;
-
+
node = node->children;
while (node != NULL) {
if (!strcmp ((char *)node->name, "selected"))
break;
node = node->next;
}
-
+
if (node == NULL)
return NULL;
-
+
buf = (char *)xmlGetProp (node, (unsigned char *)"uri");
uri = g_strdup (buf);
xmlFree (buf);
-
+
if (uri && !*uri) {
g_free (uri);
return NULL;
@@ -1294,26 +1294,26 @@ void
em_folder_tree_model_set_selected (EMFolderTreeModel *model, const char *uri)
{
xmlNodePtr root, node;
-
+
if (model->state == NULL)
model->state = xmlNewDoc ((unsigned char *)"1.0");
-
+
if (!model->state->children) {
root = xmlNewDocNode (model->state, NULL, (const unsigned char *)"tree-state", NULL);
xmlDocSetRootElement (model->state, root);
} else {
root = model->state->children;
}
-
+
node = root->children;
while (node != NULL) {
if (!strcmp ((char *)node->name, "selected"))
break;
node = node->next;
}
-
+
if (node == NULL)
node = xmlNewChild (root, NULL, (const unsigned char *)"selected", NULL);
-
+
xmlSetProp (node, (const unsigned char *)"uri", (unsigned char *)uri);
}
diff --git a/mail/em-folder-tree-model.h b/mail/em-folder-tree-model.h
index 9c5a4124d2..5360ed4390 100644
--- a/mail/em-folder-tree-model.h
+++ b/mail/em-folder-tree-model.h
@@ -70,9 +70,9 @@ struct _EMFolderTreeModelStoreInfo {
GtkTreeRowReference *row;
GHashTable *full_hash; /* maps CamelFolderInfo::full_name's to GtkTreeRowReferences */
EAccount *account;
-
+
char *display_name;
-
+
unsigned int created_id;
unsigned int deleted_id;
unsigned int renamed_id;
@@ -82,13 +82,13 @@ struct _EMFolderTreeModelStoreInfo {
struct _EMFolderTreeModel {
GtkTreeStore parent_object;
-
+
char *filename; /* state filename */
xmlDocPtr state; /* saved expanded state from previous session */
-
+
GHashTable *store_hash; /* maps CamelStore's to store-info's */
GHashTable *uri_hash; /* maps URI's to GtkTreeRowReferences */
-
+
EAccountList *accounts;
GHashTable *account_hash; /* maps accounts to store-info's */
gulong account_changed_id;
@@ -97,20 +97,20 @@ struct _EMFolderTreeModel {
struct _EMFolderTreeModelClass {
GtkTreeStoreClass parent_class;
-
+
/* signals */
void (* loading_row) (EMFolderTreeModel *model,
GtkTreePath *path,
GtkTreeIter *iter);
-
+
void (* loaded_row) (EMFolderTreeModel *model,
GtkTreePath *path,
GtkTreeIter *iter);
-
+
void (* folder_added) (EMFolderTreeModel *model,
const char *path,
const char *uri);
-
+
void (* store_added) (EMFolderTreeModel *model,
const char *uri);
};
diff --git a/mail/em-folder-tree.c b/mail/em-folder-tree.c
index acf317a15c..adf8616755 100644
--- a/mail/em-folder-tree.c
+++ b/mail/em-folder-tree.c
@@ -86,10 +86,10 @@ struct _selected_uri {
struct _EMFolderTreePrivate {
GtkTreeView *treeview;
EMFolderTreeModel *model;
-
+
GSList *select_uris; /* selected_uri structures of each path pending selection. */
GHashTable *select_uris_table; /*Removed as they're encountered, so use this to find uri's not presnet but selected */
-
+
guint32 excluded;
gboolean (*excluded_func)(EMFolderTree *emft, GtkTreeModel *model, GtkTreeIter *iter, void *data);
void *excluded_data;
@@ -99,16 +99,16 @@ struct _EMFolderTreePrivate {
* else has set the cursor, otherwise
* we need to set it when we set the
* selection */
-
+
guint save_state_id;
-
+
guint autoscroll_id;
guint autoexpand_id;
GtkTreeRowReference *autoexpand_row;
-
+
guint loading_row_id;
guint loaded_row_id;
-
+
GtkTreeRowReference *drag_row;
};
@@ -183,7 +183,7 @@ GType
em_folder_tree_get_type (void)
{
static GType type = 0;
-
+
if (!type) {
static const GTypeInfo info = {
sizeof (EMFolderTreeClass),
@@ -196,10 +196,10 @@ em_folder_tree_get_type (void)
0, /* n_preallocs */
(GInstanceInitFunc) em_folder_tree_init,
};
-
+
type = g_type_register_static (GTK_TYPE_VBOX, "EMFolderTree", &info, 0);
}
-
+
return type;
}
@@ -209,14 +209,14 @@ em_folder_tree_class_init (EMFolderTreeClass *klass)
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkObjectClass *gtk_object_class = GTK_OBJECT_CLASS (klass);
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
-
+
parent_class = g_type_class_ref (GTK_TYPE_VBOX);
-
+
object_class->finalize = em_folder_tree_finalize;
gtk_object_class->destroy = em_folder_tree_destroy;
widget_class->popup_menu = emft_popup_menu;
-
+
signals[FOLDER_SELECTED] =
g_signal_new ("folder-selected",
G_OBJECT_CLASS_TYPE (object_class),
@@ -228,7 +228,7 @@ em_folder_tree_class_init (EMFolderTreeClass *klass)
G_TYPE_STRING,
G_TYPE_STRING,
G_TYPE_UINT);
-
+
signals[FOLDER_ACTIVATED] =
g_signal_new ("folder-activated",
G_OBJECT_CLASS_TYPE (object_class),
@@ -246,20 +246,20 @@ subdirs_contain_unread (GtkTreeModel *model, GtkTreeIter *root)
{
unsigned int unread;
GtkTreeIter iter;
-
+
if (!gtk_tree_model_iter_children (model, &iter, root))
return FALSE;
-
+
do {
gtk_tree_model_get (model, &iter, COL_UINT_UNREAD, &unread, -1);
if (unread)
return TRUE;
-
+
if (gtk_tree_model_iter_has_child (model, &iter))
if (subdirs_contain_unread (model, &iter))
return TRUE;
} while (gtk_tree_model_iter_next (model, &iter));
-
+
return FALSE;
}
@@ -287,7 +287,7 @@ render_pixbuf (GtkTreeViewColumn *column, GtkCellRenderer *renderer,
GdkPixbuf *pixbuf = NULL;
gboolean is_store;
guint32 flags;
-
+
if (!initialised) {
folder_icons[FOLDER_ICON_NORMAL] = e_icon_factory_get_icon ("folder", E_ICON_SIZE_MENU);
folder_icons[FOLDER_ICON_INBOX] = e_icon_factory_get_icon ("mail-inbox", E_ICON_SIZE_MENU);
@@ -298,10 +298,10 @@ render_pixbuf (GtkTreeViewColumn *column, GtkCellRenderer *renderer,
folder_icons[FOLDER_ICON_SHARED_BY_ME] = e_icon_factory_get_icon ("stock_shared-by-me", E_ICON_SIZE_MENU);
folder_icons[FOLDER_ICON_SENT] = e_icon_factory_get_icon ("mail-sent", E_ICON_SIZE_MENU);
folder_icons[FOLDER_ICON_VIRTUAL] = e_icon_factory_get_icon ("folder-saved-search", E_ICON_SIZE_MENU);
-
+
initialised = TRUE;
}
-
+
gtk_tree_model_get (model, iter, COL_BOOL_IS_STORE, &is_store, COL_UINT_FLAGS, &flags, -1);
if (!is_store) {
@@ -322,9 +322,9 @@ render_pixbuf (GtkTreeViewColumn *column, GtkCellRenderer *renderer,
pixbuf = folder_icons[FOLDER_ICON_SENT];
break;
default:
- if (flags & CAMEL_FOLDER_SHARED_TO_ME)
+ if (flags & CAMEL_FOLDER_SHARED_TO_ME)
pixbuf = folder_icons[FOLDER_ICON_SHARED_TO_ME];
- else if (flags & CAMEL_FOLDER_SHARED_BY_ME)
+ else if (flags & CAMEL_FOLDER_SHARED_BY_ME)
pixbuf = folder_icons[FOLDER_ICON_SHARED_BY_ME];
else if (flags & CAMEL_FOLDER_VIRTUAL)
pixbuf = folder_icons[FOLDER_ICON_VIRTUAL];
@@ -332,7 +332,7 @@ render_pixbuf (GtkTreeViewColumn *column, GtkCellRenderer *renderer,
pixbuf = folder_icons[FOLDER_ICON_NORMAL];
}
}
-
+
g_object_set (renderer, "pixbuf", pixbuf, "visible", !is_store, NULL);
}
@@ -344,16 +344,16 @@ render_display_name (GtkTreeViewColumn *column, GtkCellRenderer *renderer,
unsigned int unread;
char *display;
char *name;
-
+
gtk_tree_model_get (model, iter, COL_STRING_DISPLAY_NAME, &name,
COL_BOOL_IS_STORE, &is_store,
COL_UINT_UNREAD, &unread, -1);
-
+
if (!(bold = is_store || unread)) {
if (gtk_tree_model_iter_has_child (model, iter))
bold = subdirs_contain_unread (model, iter);
}
-
+
if (!is_store && unread) {
/* Translators: This is the string used for displaying the
* folder names in folder trees. "%s" will be replaced by
@@ -374,11 +374,11 @@ render_display_name (GtkTreeViewColumn *column, GtkCellRenderer *renderer,
g_free (name);
} else
display = name;
-
+
g_object_set (renderer, "text", display,
"weight", bold ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL,
NULL);
-
+
g_free (display);
}
@@ -424,7 +424,7 @@ static void
em_folder_tree_init (EMFolderTree *emft)
{
struct _EMFolderTreePrivate *priv;
-
+
priv = g_new0 (struct _EMFolderTreePrivate, 1);
priv->select_uris_table = g_hash_table_new(g_str_hash, g_str_equal);
priv->treeview = NULL;
@@ -447,7 +447,7 @@ em_folder_tree_finalize (GObject *obj)
}
g_free (emft->priv);
-
+
G_OBJECT_CLASS (parent_class)->finalize (obj);
}
@@ -456,38 +456,38 @@ em_folder_tree_destroy (GtkObject *obj)
{
EMFolderTree *emft = (EMFolderTree *) obj;
struct _EMFolderTreePrivate *priv = emft->priv;
-
+
if (priv->loading_row_id != 0) {
g_signal_handler_disconnect (priv->model, priv->loading_row_id);
priv->loading_row_id = 0;
}
-
+
if (priv->loaded_row_id != 0) {
g_signal_handler_disconnect (priv->model, priv->loaded_row_id);
priv->loaded_row_id = 0;
}
-
+
if (priv->save_state_id != 0) {
g_source_remove (priv->save_state_id);
emft_save_state (emft);
}
-
+
if (priv->autoscroll_id != 0) {
g_source_remove (priv->autoscroll_id);
priv->autoscroll_id = 0;
}
-
+
if (priv->autoexpand_id != 0) {
gtk_tree_row_reference_free (priv->autoexpand_row);
priv->autoexpand_row = NULL;
-
+
g_source_remove (priv->autoexpand_id);
priv->autoexpand_id = 0;
}
-
+
priv->treeview = NULL;
priv->model = NULL;
-
+
GTK_OBJECT_CLASS (parent_class)->destroy (obj);
}
@@ -501,24 +501,24 @@ folder_tree_new (EMFolderTree *emft, EMFolderTreeModel *model)
gboolean side_bar_search;
GConfClient *gconf;
- gconf = mail_config_get_gconf_client ();
+ gconf = mail_config_get_gconf_client ();
side_bar_search = gconf_client_get_bool (gconf, "/apps/evolution/mail/display/side_bar_search", NULL);
-
+
tree = gtk_tree_view_new_with_model ((GtkTreeModel *) model);
GTK_WIDGET_SET_FLAGS(tree, GTK_CAN_FOCUS);
-
+
column = gtk_tree_view_column_new ();
gtk_tree_view_append_column ((GtkTreeView *) tree, column);
-
+
renderer = gtk_cell_renderer_pixbuf_new ();
gtk_tree_view_column_pack_start (column, renderer, FALSE);
gtk_tree_view_column_set_cell_data_func (column, renderer, render_pixbuf, NULL, NULL);
-
+
renderer = gtk_cell_renderer_text_new ();
g_object_set (G_OBJECT (renderer), "ellipsize", PANGO_ELLIPSIZE_END, NULL);
gtk_tree_view_column_pack_start (column, renderer, TRUE);
gtk_tree_view_column_set_cell_data_func (column, renderer, render_display_name, NULL, NULL);
-
+
selection = gtk_tree_view_get_selection ((GtkTreeView *) tree);
gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE);
gtk_tree_selection_set_select_function(selection, emft_select_func, emft, NULL);
@@ -536,29 +536,29 @@ em_folder_tree_construct (EMFolderTree *emft, EMFolderTreeModel *model)
struct _EMFolderTreePrivate *priv = emft->priv;
GtkTreeSelection *selection;
GtkWidget *scrolled;
-
+
scrolled = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled),
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled), GTK_SHADOW_IN);
-
+
priv->model = model;
priv->treeview = folder_tree_new (emft, model);
gtk_widget_show ((GtkWidget *) priv->treeview);
-
+
g_signal_connect (priv->model, "row-changed", G_CALLBACK (emft_model_row_changed), emft);
g_signal_connect (priv->treeview, "row-expanded", G_CALLBACK (emft_tree_row_expanded), emft);
g_signal_connect (priv->treeview, "test-collapse-row", G_CALLBACK (emft_tree_test_collapse_row), emft);
g_signal_connect (priv->treeview, "row-activated", G_CALLBACK (emft_tree_row_activated), emft);
g_signal_connect (priv->treeview, "button-press-event", G_CALLBACK (emft_tree_button_press), emft);
g_signal_connect (priv->treeview, "key-press-event", G_CALLBACK (emft_tree_user_event), emft);
-
+
selection = gtk_tree_view_get_selection ((GtkTreeView *) priv->treeview);
g_signal_connect (selection, "changed", G_CALLBACK (emft_tree_selection_changed), emft);
-
+
gtk_container_add ((GtkContainer *) scrolled, (GtkWidget *) priv->treeview);
gtk_widget_show (scrolled);
-
+
gtk_box_pack_start ((GtkBox *) emft, scrolled, TRUE, TRUE, 0);
}
@@ -567,16 +567,16 @@ em_folder_tree_new (void)
{
EMFolderTreeModel *model;
EMFolderTree *emft;
-
+
model = em_folder_tree_model_new (mail_component_peek_base_directory (mail_component_peek ()));
emft = (EMFolderTree *) em_folder_tree_new_with_model (model);
g_object_unref (model);
-
+
return (GtkWidget *) emft;
}
/* NOTE: Removes and frees the selected uri structure */
-static void
+static void
emft_select_uri(EMFolderTree *emft, GtkTreePath *path, struct _selected_uri *u)
{
struct _EMFolderTreePrivate *priv = emft->priv;
@@ -613,47 +613,47 @@ emft_expand_node (EMFolderTreeModel *model, const char *key, EMFolderTree *emft)
n = strlen (key);
else
n = (p - key);
-
+
uid = g_alloca (n + 1);
memcpy (uid, key, n);
uid[n] = '\0';
-
+
if ((account = mail_config_get_account_by_uid (uid)) && account->enabled) {
CamelException ex;
-
+
camel_exception_init (&ex);
store = (CamelStore *) camel_session_get_service (session, account->source->url, CAMEL_PROVIDER_STORE, &ex);
camel_exception_clear (&ex);
-
+
if (store == NULL)
return;
} else if (!strcmp (uid, "vfolder")) {
if (!(store = vfolder_store))
return;
-
+
camel_object_ref (store);
} else if (!strcmp (uid, "local")) {
if (!(store = mail_component_peek_local_store (NULL)))
return;
-
+
camel_object_ref (store);
} else {
return;
}
-
+
if (!(si = g_hash_table_lookup (priv->model->store_hash, store))) {
camel_object_unref (store);
return;
}
-
+
camel_object_unref (store);
-
+
if (p != NULL) {
if (!(row = g_hash_table_lookup (si->full_hash, p + 1)))
return;
} else
row = si->row;
-
+
path = gtk_tree_row_reference_get_path (row);
gtk_tree_view_expand_row (priv->treeview, path, FALSE);
@@ -682,7 +682,7 @@ emft_maybe_expand_row (EMFolderTreeModel *model, GtkTreePath *tree_path, GtkTree
COL_POINTER_CAMEL_STORE, &store,
COL_BOOL_IS_STORE, &is_store,
-1);
-
+
si = g_hash_table_lookup (model->store_hash, store);
if ((account = mail_config_get_account_by_name (si->display_name))) {
key = g_strdup_printf ("%s/%s", account->uid, full_name ? full_name : "");
@@ -720,19 +720,19 @@ em_folder_tree_new_with_model (EMFolderTreeModel *model)
{
EMFolderTree *emft;
AtkObject *a11y;
-
+
emft = g_object_new (EM_TYPE_FOLDER_TREE, NULL);
em_folder_tree_construct (emft, model);
g_object_ref (model);
-
+
em_folder_tree_model_expand_foreach (model, (EMFTModelExpandFunc)emft_expand_node, emft);
-
+
emft->priv->loading_row_id = g_signal_connect (model, "loading-row", G_CALLBACK (emft_maybe_expand_row), emft);
emft->priv->loaded_row_id = g_signal_connect (model, "loaded-row", G_CALLBACK (emft_maybe_expand_row), emft);
a11y = gtk_widget_get_accessible (GTK_WIDGET (emft->priv->treeview));
atk_object_set_name (a11y, _("Mail Folder Tree"));
-
+
return (GtkWidget *) emft;
}
@@ -744,15 +744,15 @@ tree_drag_begin (GtkWidget *widget, GdkDragContext *context, EMFolderTree *emft)
GtkTreeModel *model;
GtkTreePath *path;
GtkTreeIter iter;
-
+
selection = gtk_tree_view_get_selection ((GtkTreeView *) widget);
if (!gtk_tree_selection_get_selected (selection, &model, &iter))
return;
-
+
path = gtk_tree_model_get_path (model, &iter);
priv->drag_row = gtk_tree_row_reference_new (model, path);
gtk_tree_path_free (path);
-
+
/* FIXME: set a drag icon? */
}
@@ -766,10 +766,10 @@ tree_drag_data_delete(GtkWidget *widget, GdkDragContext *context, EMFolderTree *
CamelStore *store;
CamelException ex;
GtkTreeIter iter;
-
+
if (!priv->drag_row || (src_path = gtk_tree_row_reference_get_path (priv->drag_row)))
return;
-
+
if (!gtk_tree_model_get_iter((GtkTreeModel *)priv->model, &iter, src_path))
goto fail;
@@ -777,10 +777,10 @@ tree_drag_data_delete(GtkWidget *widget, GdkDragContext *context, EMFolderTree *
COL_POINTER_CAMEL_STORE, &store,
COL_STRING_FULL_NAME, &full_name,
COL_BOOL_IS_STORE, &is_store, -1);
-
+
if (is_store)
goto fail;
-
+
camel_exception_init(&ex);
camel_store_delete_folder(store, full_name, &ex);
if (camel_exception_is_set(&ex))
@@ -800,24 +800,24 @@ tree_drag_data_get(GtkWidget *widget, GdkDragContext *context, GtkSelectionData
CamelStore *store;
CamelException ex;
GtkTreeIter iter;
-
+
if (!priv->drag_row || !(src_path = gtk_tree_row_reference_get_path(priv->drag_row)))
return;
-
+
if (!gtk_tree_model_get_iter((GtkTreeModel *)priv->model, &iter, src_path))
goto fail;
-
+
gtk_tree_model_get((GtkTreeModel *)priv->model, &iter,
COL_POINTER_CAMEL_STORE, &store,
COL_STRING_FULL_NAME, &full_name,
COL_STRING_URI, &uri, -1);
-
+
/* make sure user isn't trying to drag on a placeholder row */
if (full_name == NULL)
goto fail;
-
+
camel_exception_init(&ex);
-
+
switch (info) {
case DND_DRAG_TYPE_FOLDER:
/* dragging to a new location in the folder tree */
@@ -827,7 +827,7 @@ tree_drag_data_get(GtkWidget *widget, GdkDragContext *context, GtkSelectionData
/* dragging to nautilus or something, probably */
if ((folder = camel_store_get_folder(store, full_name, 0, &ex))) {
GPtrArray *uids = camel_folder_get_uids(folder);
-
+
em_utils_selection_set_urilist(selection, folder, uids);
camel_folder_free_uids(folder, uids);
camel_object_unref(folder);
@@ -836,7 +836,7 @@ tree_drag_data_get(GtkWidget *widget, GdkDragContext *context, GtkSelectionData
default:
abort();
}
-
+
if (camel_exception_is_set(&ex))
camel_exception_clear(&ex);
fail:
@@ -849,7 +849,7 @@ fail:
/* Drop handling */
struct _DragDataReceivedAsync {
struct _mail_msg msg;
-
+
/* input data */
GdkDragContext *context;
@@ -860,7 +860,7 @@ struct _DragDataReceivedAsync {
char *full_name;
guint32 action;
guint info;
-
+
unsigned int move:1;
unsigned int moved:1;
unsigned int aborted:1;
@@ -886,17 +886,17 @@ emft_drop_async_desc (struct _mail_msg *mm, int done)
struct _DragDataReceivedAsync *m = (struct _DragDataReceivedAsync *) mm;
CamelURL *url;
char *buf;
-
+
if (m->info == DND_DROP_TYPE_FOLDER) {
url = camel_url_new ((char *)m->selection->data, NULL);
-
+
if (m->move)
buf = g_strdup_printf (_("Moving folder %s"), url->fragment ? url->fragment : url->path + 1);
else
buf = g_strdup_printf (_("Copying folder %s"), url->fragment ? url->fragment : url->path + 1);
-
+
camel_url_free (url);
-
+
return buf;
} else {
if (m->move)
@@ -911,7 +911,7 @@ emft_drop_async_drop (struct _mail_msg *mm)
{
struct _DragDataReceivedAsync *m = (struct _DragDataReceivedAsync *) mm;
CamelFolder *folder;
-
+
/* for types other than folder, we can't drop to the root path */
if (m->info == DND_DROP_TYPE_FOLDER) {
/* copy or move (aka rename) a folder */
@@ -945,7 +945,7 @@ static void
emft_drop_async_free (struct _mail_msg *mm)
{
struct _DragDataReceivedAsync *m = (struct _DragDataReceivedAsync *) mm;
-
+
g_object_unref(m->context);
camel_object_unref(m->store);
g_free(m->full_name);
@@ -1025,23 +1025,23 @@ tree_drag_data_received(GtkWidget *widget, GdkDragContext *context, int x, int y
if (!gtk_tree_view_get_dest_row_at_pos (priv->treeview, x, y, &dest_path, &pos))
return;
-
+
/* this means we are receiving no data */
if (!selection->data || selection->length == -1) {
gtk_drag_finish(context, FALSE, FALSE, GDK_CURRENT_TIME);
return;
}
-
+
if (!gtk_tree_model_get_iter((GtkTreeModel *)priv->model, &iter, dest_path)) {
gtk_drag_finish(context, FALSE, FALSE, GDK_CURRENT_TIME);
return;
}
-
+
gtk_tree_model_get((GtkTreeModel *)priv->model, &iter,
COL_POINTER_CAMEL_STORE, &store,
COL_BOOL_IS_STORE, &is_store,
COL_STRING_FULL_NAME, &full_name, -1);
-
+
/* make sure user isn't try to drop on a placeholder row */
if (full_name == NULL && !is_store) {
gtk_drag_finish (context, FALSE, FALSE, GDK_CURRENT_TIME);
@@ -1105,61 +1105,61 @@ emft_drop_target(EMFolderTree *emft, GdkDragContext *context, GtkTreePath *path)
gboolean is_store;
GtkTreeIter iter;
GList *targets;
-
+
/* This is a bit of a mess, but should handle all the cases properly */
if (!gtk_tree_model_get_iter((GtkTreeModel *)p->model, &iter, path))
return GDK_NONE;
-
+
gtk_tree_model_get((GtkTreeModel *)p->model, &iter, COL_BOOL_IS_STORE, &is_store,
COL_STRING_FULL_NAME, &full_name,
COL_POINTER_CAMEL_STORE, &dstore,
COL_STRING_URI, &uri, -1);
-
+
local = mail_component_peek_local_store (NULL);
-
+
targets = context->targets;
-
+
/* Check for special destinations */
if (uri && full_name) {
#if 0
/* only allow copying/moving folders (not messages) into the local Outbox */
if (dstore == local && !strcmp (full_name, "Outbox")) {
GdkAtom xfolder;
-
+
xfolder = drop_atoms[DND_DROP_TYPE_FOLDER];
while (targets != NULL) {
if (targets->data == (gpointer) xfolder) {
atom = xfolder;
goto done;
}
-
+
targets = targets->next;
}
-
+
goto done;
}
#endif
-
+
/* don't allow copying/moving into the UNMATCHED vfolder */
if (!strncmp (uri, "vfolder:", 8) && !strcmp (full_name, CAMEL_UNMATCHED_NAME))
goto done;
-
+
/* don't allow copying/moving into a vTrash/vJunk folder */
if (!strcmp (full_name, CAMEL_VTRASH_NAME)
|| !strcmp (full_name, CAMEL_VJUNK_NAME))
goto done;
}
-
+
if (p->drag_row) {
GtkTreePath *src_path = gtk_tree_row_reference_get_path(p->drag_row);
-
+
if (src_path) {
if (gtk_tree_model_get_iter((GtkTreeModel *)p->model, &iter, src_path))
gtk_tree_model_get((GtkTreeModel *)p->model, &iter,
COL_POINTER_CAMEL_STORE, &sstore,
COL_STRING_URI, &src_uri, -1);
-
+
/* can't dnd onto itself or below itself - bad things happen,
no point dragging to where we were either */
if (gtk_tree_path_compare(path, src_path) == 0
@@ -1169,16 +1169,16 @@ emft_drop_target(EMFolderTree *emft, GdkDragContext *context, GtkTreePath *path)
gtk_tree_path_free(src_path);
goto done;
}
-
+
gtk_tree_path_free(src_path);
}
}
-
+
/* Check for special sources, and vfolder stuff */
if (src_uri) {
CamelURL *url;
char *url_path;
-
+
/* FIXME: this is a total hack, but i think all we can do at present */
/* Check for dragging from special folders which can't be moved/copied */
url = camel_url_new(src_uri, NULL);
@@ -1187,9 +1187,9 @@ emft_drop_target(EMFolderTree *emft, GdkDragContext *context, GtkTreePath *path)
/* don't allow moving any of the the local special folders */
if (sstore == local && is_special_local_folder (url_path)) {
GdkAtom xfolder;
-
+
camel_url_free (url);
-
+
/* TODO: not sure if this is legal, but it works, force copy for special local folders */
context->suggested_action = GDK_ACTION_COPY;
xfolder = drop_atoms[DND_DROP_TYPE_FOLDER];
@@ -1198,19 +1198,19 @@ emft_drop_target(EMFolderTree *emft, GdkDragContext *context, GtkTreePath *path)
atom = xfolder;
goto done;
}
-
+
targets = targets->next;
}
-
+
goto done;
}
-
+
/* don't allow copying/moving of the UNMATCHED vfolder */
if (!strcmp (url->protocol, "vfolder") && !strcmp (url_path, CAMEL_UNMATCHED_NAME)) {
camel_url_free (url);
goto done;
}
-
+
/* don't allow copying/moving of any vTrash/vJunk folder nor maildir 'inbox' */
if (strcmp(url_path, CAMEL_VTRASH_NAME) == 0
|| strcmp(url_path, CAMEL_VJUNK_NAME) == 0
@@ -1221,7 +1221,7 @@ emft_drop_target(EMFolderTree *emft, GdkDragContext *context, GtkTreePath *path)
}
}
camel_url_free(url);
-
+
/* Search Folders can only be dropped into other Search Folders */
if (strncmp(src_uri, "vfolder:", 8) == 0) {
/* TODO: not sure if this is legal, but it works, force move only for vfolders */
@@ -1236,11 +1236,11 @@ emft_drop_target(EMFolderTree *emft, GdkDragContext *context, GtkTreePath *path)
atom = xfolder;
goto done;
}
-
+
targets = targets->next;
}
}
-
+
goto done;
}
}
@@ -1250,7 +1250,7 @@ emft_drop_target(EMFolderTree *emft, GdkDragContext *context, GtkTreePath *path)
goto done;
/* Now we either have a store or a normal folder */
-
+
if (is_store) {
GdkAtom xfolder;
@@ -1260,12 +1260,12 @@ emft_drop_target(EMFolderTree *emft, GdkDragContext *context, GtkTreePath *path)
atom = xfolder;
goto done;
}
-
+
targets = targets->next;
}
} else {
int i;
-
+
while (targets != NULL) {
for (i = 0; i < NUM_DROP_TYPES; i++) {
if (targets->data == (gpointer) drop_atoms[i]) {
@@ -1273,16 +1273,16 @@ emft_drop_target(EMFolderTree *emft, GdkDragContext *context, GtkTreePath *path)
goto done;
}
}
-
+
targets = targets->next;
}
}
-
+
done:
-
+
g_free (full_name);
g_free (uri);
-
+
return atom;
}
@@ -1294,28 +1294,28 @@ tree_drag_drop (GtkWidget *widget, GdkDragContext *context, int x, int y, guint
int cell_x, cell_y;
GtkTreePath *path;
GdkAtom target;
-
+
if (priv->autoscroll_id != 0) {
g_source_remove (priv->autoscroll_id);
priv->autoscroll_id = 0;
}
-
+
if (priv->autoexpand_id != 0) {
gtk_tree_row_reference_free (priv->autoexpand_row);
priv->autoexpand_row = NULL;
-
+
g_source_remove (priv->autoexpand_id);
priv->autoexpand_id = 0;
}
-
+
if (!gtk_tree_view_get_path_at_pos (priv->treeview, x, y, &path, &column, &cell_x, &cell_y))
return FALSE;
-
+
target = emft_drop_target(emft, context, path);
gtk_tree_path_free (path);
if (target == GDK_NONE)
return FALSE;
-
+
return TRUE;
}
@@ -1323,7 +1323,7 @@ static void
tree_drag_end (GtkWidget *widget, GdkDragContext *context, EMFolderTree *emft)
{
struct _EMFolderTreePrivate *priv = emft->priv;
-
+
if (priv->drag_row) {
gtk_tree_row_reference_free (priv->drag_row);
priv->drag_row = NULL;
@@ -1336,20 +1336,20 @@ static void
tree_drag_leave (GtkWidget *widget, GdkDragContext *context, guint time, EMFolderTree *emft)
{
struct _EMFolderTreePrivate *priv = emft->priv;
-
+
if (priv->autoscroll_id != 0) {
g_source_remove (priv->autoscroll_id);
priv->autoscroll_id = 0;
}
-
+
if (priv->autoexpand_id != 0) {
gtk_tree_row_reference_free (priv->autoexpand_row);
priv->autoexpand_row = NULL;
-
+
g_source_remove (priv->autoexpand_id);
priv->autoexpand_id = 0;
}
-
+
gtk_tree_view_set_drag_dest_row(emft->priv->treeview, NULL, GTK_TREE_VIEW_DROP_BEFORE);
}
@@ -1365,29 +1365,29 @@ tree_autoscroll (EMFolderTree *emft)
GdkWindow *window;
int offset, y;
float value;
-
+
/* get the y pointer position relative to the treeview */
window = gtk_tree_view_get_bin_window (priv->treeview);
gdk_window_get_pointer (window, NULL, &y, NULL);
-
+
/* rect is in coorinates relative to the scrolled window relative to the treeview */
gtk_tree_view_get_visible_rect (priv->treeview, &rect);
-
+
/* move y into the same coordinate system as rect */
y += rect.y;
-
+
/* see if we are near the top edge */
if ((offset = y - (rect.y + 2 * SCROLL_EDGE_SIZE)) > 0) {
/* see if we are near the bottom edge */
if ((offset = y - (rect.y + rect.height - 2 * SCROLL_EDGE_SIZE)) < 0)
return TRUE;
}
-
+
vadjustment = gtk_tree_view_get_vadjustment (priv->treeview);
-
+
value = CLAMP (vadjustment->value + offset, 0.0, vadjustment->upper - vadjustment->page_size);
gtk_adjustment_set_value (vadjustment, value);
-
+
return TRUE;
}
@@ -1396,11 +1396,11 @@ tree_autoexpand (EMFolderTree *emft)
{
struct _EMFolderTreePrivate *priv = emft->priv;
GtkTreePath *path;
-
+
path = gtk_tree_row_reference_get_path (priv->autoexpand_row);
gtk_tree_view_expand_row (priv->treeview, path, FALSE);
gtk_tree_path_free (path);
-
+
return TRUE;
}
@@ -1415,19 +1415,19 @@ tree_drag_motion (GtkWidget *widget, GdkDragContext *context, int x, int y, guin
GtkTreeIter iter;
GdkAtom target;
int i;
-
+
if (!gtk_tree_view_get_dest_row_at_pos(priv->treeview, x, y, &path, &pos))
return FALSE;
-
+
if (priv->autoscroll_id == 0)
priv->autoscroll_id = g_timeout_add (150, (GSourceFunc) tree_autoscroll, emft);
-
+
gtk_tree_model_get_iter (model, &iter, path);
-
+
if (gtk_tree_model_iter_has_child (model, &iter) && !gtk_tree_view_row_expanded (priv->treeview, path)) {
if (priv->autoexpand_id != 0) {
GtkTreePath *autoexpand_path;
-
+
autoexpand_path = gtk_tree_row_reference_get_path (priv->autoexpand_row);
if (gtk_tree_path_compare (autoexpand_path, path) != 0) {
/* row changed, restart timer */
@@ -1436,7 +1436,7 @@ tree_drag_motion (GtkWidget *widget, GdkDragContext *context, int x, int y, guin
g_source_remove (priv->autoexpand_id);
priv->autoexpand_id = g_timeout_add (600, (GSourceFunc) tree_autoexpand, emft);
}
-
+
gtk_tree_path_free (autoexpand_path);
} else {
priv->autoexpand_id = g_timeout_add (600, (GSourceFunc) tree_autoexpand, emft);
@@ -1445,7 +1445,7 @@ tree_drag_motion (GtkWidget *widget, GdkDragContext *context, int x, int y, guin
} else if (priv->autoexpand_id != 0) {
gtk_tree_row_reference_free (priv->autoexpand_row);
priv->autoexpand_row = NULL;
-
+
g_source_remove (priv->autoexpand_id);
priv->autoexpand_id = 0;
}
@@ -1473,9 +1473,9 @@ tree_drag_motion (GtkWidget *widget, GdkDragContext *context, int x, int y, guin
}
gtk_tree_path_free(path);
-
+
gdk_drag_status(context, action, time);
-
+
return action != 0;
}
@@ -1485,14 +1485,14 @@ em_folder_tree_enable_drag_and_drop (EMFolderTree *emft)
struct _EMFolderTreePrivate *priv;
static int setup = 0;
int i;
-
+
g_return_if_fail (EM_IS_FOLDER_TREE (emft));
-
+
priv = emft->priv;
if (!setup) {
for (i=0; i<NUM_DRAG_TYPES; i++)
drag_atoms[i] = gdk_atom_intern(drag_types[i].target, FALSE);
-
+
for (i=0; i<NUM_DROP_TYPES; i++)
drop_atoms[i] = gdk_atom_intern(drop_types[i].target, FALSE);
@@ -1501,7 +1501,7 @@ em_folder_tree_enable_drag_and_drop (EMFolderTree *emft)
gtk_drag_source_set((GtkWidget *)priv->treeview, GDK_BUTTON1_MASK, drag_types, NUM_DRAG_TYPES, GDK_ACTION_COPY | GDK_ACTION_MOVE | GDK_ACTION_ASK);
gtk_drag_dest_set((GtkWidget *)priv->treeview, GTK_DEST_DEFAULT_ALL, drop_types, NUM_DROP_TYPES, GDK_ACTION_COPY | GDK_ACTION_MOVE | GDK_ACTION_ASK);
-
+
g_signal_connect (priv->treeview, "drag-begin", G_CALLBACK (tree_drag_begin), emft);
g_signal_connect (priv->treeview, "drag-data-delete", G_CALLBACK (tree_drag_data_delete), emft);
g_signal_connect (priv->treeview, "drag-data-get", G_CALLBACK (tree_drag_data_get), emft);
@@ -1516,7 +1516,7 @@ void
em_folder_tree_set_multiselect (EMFolderTree *tree, gboolean mode)
{
GtkTreeSelection *sel = gtk_tree_view_get_selection ((GtkTreeView *) tree->priv->treeview);
-
+
tree->priv->do_multiselect = mode;
gtk_tree_selection_set_mode (sel, mode ? GTK_SELECTION_MULTIPLE : GTK_SELECTION_SINGLE);
}
@@ -1551,14 +1551,14 @@ em_folder_tree_get_selected_uris (EMFolderTree *emft)
if (gtk_tree_model_get_iter(model, &iter, path)) {
char *uri;
-
+
gtk_tree_model_get(model, &iter, COL_STRING_URI, &uri, -1);
list = g_list_prepend (list, uri);
}
gtk_tree_path_free(path);
}
g_list_free(rows);
-
+
return g_list_reverse (list);
}
@@ -1567,7 +1567,7 @@ get_selected_uris_path_iterate (GtkTreeModel *model, GtkTreePath *treepath, GtkT
{
GList **list = (GList **) data;
char *full_name;
-
+
gtk_tree_model_get (model, iter, COL_STRING_FULL_NAME, &full_name, -1);
*list = g_list_append (*list, full_name);
}
@@ -1577,9 +1577,9 @@ em_folder_tree_get_selected_paths (EMFolderTree *emft)
{
GtkTreeSelection *selection = gtk_tree_view_get_selection (emft->priv->treeview);
GList *list = NULL;
-
+
gtk_tree_selection_selected_foreach (selection, get_selected_uris_path_iterate, &list);
-
+
return list;
}
@@ -1626,7 +1626,7 @@ em_folder_tree_set_selected_list (EMFolderTree *emft, GList *list, gboolean expa
const char *path;
char *expand_key, *end;
EAccount *account;
-
+
if (((CamelService *)u->store)->provider->url_flags & CAMEL_URL_FRAGMENT_IS_PATH)
path = url->fragment;
else
@@ -1671,16 +1671,16 @@ static void
dump_fi (CamelFolderInfo *fi, int depth)
{
int i;
-
+
while (fi != NULL) {
for (i = 0; i < depth; i++)
fputs (" ", stdout);
-
+
printf ("path='%s'; full_name='%s'\n", fi->path, fi->full_name);
-
+
if (fi->child)
dump_fi (fi->child, depth + 1);
-
+
fi = fi->sibling;
}
}
@@ -1688,14 +1688,14 @@ dump_fi (CamelFolderInfo *fi, int depth)
struct _EMFolderTreeGetFolderInfo {
struct _mail_msg msg;
-
+
/* input data */
GtkTreeRowReference *root;
EMFolderTree *emft;
CamelStore *store;
guint32 flags;
char *top;
-
+
/* output data */
CamelFolderInfo *fi;
};
@@ -1717,7 +1717,7 @@ emft_get_folder_info__get (struct _mail_msg *mm)
{
struct _EMFolderTreeGetFolderInfo *m = (struct _EMFolderTreeGetFolderInfo *) mm;
guint32 flags = m->flags | CAMEL_STORE_FOLDER_INFO_SUBSCRIBED;
-
+
m->fi = camel_store_get_folder_info (m->store, m->top, flags, &mm->ex);
}
@@ -1732,15 +1732,15 @@ emft_get_folder_info__got (struct _mail_msg *mm)
GtkTreeStore *model;
GtkTreePath *path;
gboolean is_store;
-
+
/* check that we haven't been destroyed */
if (priv->treeview == NULL)
return;
-
+
/* check that our parent folder hasn't been deleted/unsubscribed */
if (!gtk_tree_row_reference_valid (m->root))
return;
-
+
if (!(si = g_hash_table_lookup (priv->model->store_hash, m->store))) {
/* store has been removed in the interim - do nothing */
return;
@@ -1760,7 +1760,7 @@ emft_get_folder_info__got (struct _mail_msg *mm)
}
gtk_tree_path_free (path);
-
+
/* make sure we still need to load the tree subfolders... */
gtk_tree_model_get ((GtkTreeModel *) model, &root,
COL_BOOL_IS_STORE, &is_store,
@@ -1768,7 +1768,7 @@ emft_get_folder_info__got (struct _mail_msg *mm)
/* get the first child (which will be a dummy node) */
gtk_tree_model_iter_children ((GtkTreeModel *) model, &iter, &root);
-
+
/* FIXME: camel's IMAP code is totally on crack here, @top's
* folder info should be @fi and fi->child should be what we
* want to fill our tree with... *sigh* */
@@ -1777,11 +1777,11 @@ emft_get_folder_info__got (struct _mail_msg *mm)
fi = m->fi->next;
} else
fi = m->fi;
-
+
if (fi == NULL) {
/* no children afterall... remove the "Loading..." placeholder node */
emft_update_model_expanded_state (priv, &root, FALSE);
-
+
if (is_store) {
path = gtk_tree_model_get_path ((GtkTreeModel *) model, &root);
gtk_tree_view_collapse_row (priv->treeview, path);
@@ -1793,15 +1793,15 @@ emft_get_folder_info__got (struct _mail_msg *mm)
}
} else {
int fully_loaded = (m->flags & CAMEL_STORE_FOLDER_INFO_RECURSIVE) ? TRUE : FALSE;
-
+
do {
em_folder_tree_model_set_folder_info (priv->model, &iter, si, fi, fully_loaded);
-
+
if ((fi = fi->next) != NULL)
gtk_tree_store_append (model, &iter, &root);
} while (fi != NULL);
}
-
+
gtk_tree_store_set (model, &root, COL_BOOL_LOAD_SUBDIRS, FALSE, -1);
emft_queue_save_state (m->emft);
}
@@ -1810,9 +1810,9 @@ static void
emft_get_folder_info__free (struct _mail_msg *mm)
{
struct _EMFolderTreeGetFolderInfo *m = (struct _EMFolderTreeGetFolderInfo *) mm;
-
+
camel_store_free_folder_info (m->store, m->fi);
-
+
gtk_tree_row_reference_free (m->root);
g_object_unref(m->emft);
camel_object_unref (m->store);
@@ -1835,13 +1835,13 @@ emft_update_model_expanded_state (struct _EMFolderTreePrivate *priv, GtkTreeIter
EAccount *account;
char *full_name;
char *key;
-
+
gtk_tree_model_get ((GtkTreeModel *) priv->model, iter,
COL_STRING_FULL_NAME, &full_name,
COL_POINTER_CAMEL_STORE, &store,
COL_BOOL_IS_STORE, &is_store,
-1);
-
+
si = g_hash_table_lookup (priv->model->store_hash, store);
if ((account = mail_config_get_account_by_name (si->display_name))) {
key = g_strdup_printf ("%s/%s", account->uid, full_name ? full_name : "");
@@ -1852,7 +1852,7 @@ emft_update_model_expanded_state (struct _EMFolderTreePrivate *priv, GtkTreeIter
/* local store */
key = g_strdup_printf ("local/%s", full_name ? full_name : "");
}
-
+
em_folder_tree_model_set_expanded (priv->model, key, expanded);
g_free (full_name);
g_free (key);
@@ -1865,7 +1865,7 @@ emft_model_row_changed (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *ite
GtkTreeIter child_iter = *iter;
g_signal_handlers_block_by_func (model, emft_model_row_changed, emft);
-
+
/* Folders are displayed with a bold weight to indicate that
they contain unread messages. We signal that parent rows
have changed here to update them. */
@@ -1878,7 +1878,7 @@ emft_model_row_changed (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *ite
gtk_tree_path_free (parent_path);
child_iter = parent_iter;
}
-
+
g_signal_handlers_unblock_by_func (model, emft_model_row_changed, emft);
}
@@ -1891,17 +1891,17 @@ emft_tree_row_expanded (GtkTreeView *treeview, GtkTreeIter *root, GtkTreePath *t
CamelStore *store;
char *full_name;
gboolean load;
-
+
model = gtk_tree_view_get_model (treeview);
-
+
gtk_tree_model_get (model, root,
COL_STRING_FULL_NAME, &full_name,
COL_POINTER_CAMEL_STORE, &store,
COL_BOOL_LOAD_SUBDIRS, &load,
-1);
-
+
emft_update_model_expanded_state (priv, root, TRUE);
-
+
if (!load) {
emft_queue_save_state (emft);
g_free (full_name);
@@ -1909,7 +1909,7 @@ emft_tree_row_expanded (GtkTreeView *treeview, GtkTreeIter *root, GtkTreePath *t
}
gtk_tree_store_set((GtkTreeStore *)model, root, COL_BOOL_LOAD_SUBDIRS, FALSE, -1);
-
+
m = mail_msg_new (&get_folder_info_op, NULL, sizeof (struct _EMFolderTreeGetFolderInfo));
m->root = gtk_tree_row_reference_new (model, tree_path);
camel_object_ref (store);
@@ -1918,7 +1918,7 @@ emft_tree_row_expanded (GtkTreeView *treeview, GtkTreeIter *root, GtkTreePath *t
g_object_ref(emft);
m->top = full_name;
m->flags = CAMEL_STORE_FOLDER_INFO_RECURSIVE|CAMEL_STORE_FOLDER_INFO_FAST;
-
+
e_thread_put (mail_thread_new, (EMsg *) m);
}
@@ -1928,17 +1928,17 @@ emft_tree_test_collapse_row (GtkTreeView *treeview, GtkTreeIter *root, GtkTreePa
GtkTreeSelection *selection;
GtkTreeModel *model;
GtkTreeIter cursor;
-
+
selection = gtk_tree_view_get_selection (treeview);
if (gtk_tree_selection_get_selected (selection, &model, &cursor)) {
/* select the collapsed node IFF it is a parent of the currently selected folder */
if (gtk_tree_store_is_ancestor ((GtkTreeStore *) model, root, &cursor))
gtk_tree_view_set_cursor (treeview, tree_path, NULL, FALSE);
}
-
+
emft_update_model_expanded_state (emft->priv, root, FALSE);
emft_queue_save_state (emft);
-
+
return FALSE;
}
@@ -1950,18 +1950,18 @@ emft_tree_row_activated (GtkTreeView *treeview, GtkTreePath *tree_path, GtkTreeV
char *full_name, *uri;
GtkTreeIter iter;
guint32 flags;
-
+
if (!emft_select_func(NULL, model, tree_path, FALSE, emft))
return;
-
+
if (!gtk_tree_model_get_iter (model, &iter, tree_path))
return;
-
+
gtk_tree_model_get (model, &iter, COL_STRING_FULL_NAME, &full_name,
COL_STRING_URI, &uri, COL_UINT_FLAGS, &flags, -1);
emft_clear_selected_list(emft);
-
+
g_signal_emit (emft, signals[FOLDER_SELECTED], 0, full_name, uri, flags);
g_signal_emit (emft, signals[FOLDER_ACTIVATED], 0, full_name, uri);
@@ -2020,7 +2020,7 @@ static void
selfunc (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data)
{
struct _emft_selection_data *dat = (struct _emft_selection_data *) data;
-
+
dat->model = model;
if (!dat->set)
*(dat->iter) = *iter;
@@ -2031,7 +2031,7 @@ static gboolean
emft_selection_get_selected (GtkTreeSelection *selection, GtkTreeModel **model, GtkTreeIter *iter)
{
struct _emft_selection_data dat = { NULL, iter, FALSE };
-
+
if (gtk_tree_selection_get_mode (selection) == GTK_SELECTION_MULTIPLE) {
gtk_tree_selection_selected_foreach (selection, selfunc, &dat);
if (model)
@@ -2046,7 +2046,7 @@ static void
emft_popup_delete_folder (EPopup *ep, EPopupItem *pitem, void *data)
{
EMFolderTree *emft = data;
- CamelFolder *folder;
+ CamelFolder *folder;
if ((folder = em_folder_tree_get_selected_folder (emft)) != NULL) {
em_folder_utils_delete_folder(folder);
@@ -2095,11 +2095,11 @@ emft_popup_properties (EPopup *ep, EPopupItem *pitem, void *data)
GtkTreeModel *model;
GtkTreeIter iter;
char *uri;
-
+
selection = gtk_tree_view_get_selection (priv->treeview);
if (!emft_selection_get_selected (selection, &model, &iter))
return;
-
+
gtk_tree_model_get (model, &iter, COL_STRING_URI, &uri, -1);
em_folder_properties_show (NULL, NULL, uri);
g_free (uri);
@@ -2114,7 +2114,7 @@ static EPopupItem emft_popup_items[] = {
#endif
{ E_POPUP_ITEM, "10.emc.00", N_("_Copy..."), emft_popup_copy, NULL, "stock_folder-copy", 0, EM_POPUP_FOLDER_FOLDER|EM_POPUP_FOLDER_SELECT },
{ E_POPUP_ITEM, "10.emc.01", N_("_Move..."), emft_popup_move, NULL, "stock_folder-move", 0, EM_POPUP_FOLDER_FOLDER|EM_POPUP_FOLDER_DELETE },
-
+
{ E_POPUP_BAR, "20.emc" },
/* FIXME: need to disable for nochildren folders */
{ E_POPUP_ITEM, "20.emc.00", N_("_New Folder..."), emft_popup_new_folder, NULL, "folder-new", 0, EM_POPUP_FOLDER_INFERIORS },
@@ -2124,7 +2124,7 @@ static EPopupItem emft_popup_items[] = {
{ E_POPUP_ITEM, "20.emc.03", N_("Re_fresh"), emft_popup_refresh_folder, NULL, "view-refresh", EM_POPUP_FOLDER_NONSTATIC, EM_POPUP_FOLDER_FOLDER|EM_POPUP_FOLDER_SELECT},
{ E_POPUP_ITEM, "20.emc.04", N_("Fl_ush Outbox"), emft_popup_flush_outbox, NULL, "mail-send", EM_POPUP_FOLDER_OUTBOX, 0 },
-
+
{ E_POPUP_BAR, "80.emc" },
{ E_POPUP_ITEM, "80.emc.00", N_("_Properties"), emft_popup_properties, NULL, "document-properties", 0, EM_POPUP_FOLDER_FOLDER|EM_POPUP_FOLDER_SELECT }
};
@@ -2165,7 +2165,7 @@ emft_popup (EMFolderTree *emft, GdkEvent *event)
selection = gtk_tree_view_get_selection (treeview);
if (!emft_selection_get_selected (selection, &model, &iter))
return FALSE;
-
+
gtk_tree_model_get (model, &iter, COL_POINTER_CAMEL_STORE, &store,
COL_STRING_URI, &uri, COL_STRING_FULL_NAME, &full_name,
COL_BOOL_IS_STORE, &isstore, COL_UINT_FLAGS, &folder_type_flags, -1);
@@ -2176,7 +2176,7 @@ emft_popup (EMFolderTree *emft, GdkEvent *event)
g_free (uri);
return FALSE;
}
-
+
/* TODO: em_popup_target_folder_new? */
if (isstore) {
flags |= EM_POPUP_FOLDER_STORE;
@@ -2184,11 +2184,11 @@ emft_popup (EMFolderTree *emft, GdkEvent *event)
flags |= EM_POPUP_FOLDER_FOLDER;
local = mail_component_peek_local_store (NULL);
-
+
/* don't allow deletion of special local folders */
if (!(store == local && is_special_local_folder (full_name)))
flags |= EM_POPUP_FOLDER_DELETE;
-
+
/* hack for vTrash/vJunk */
if (!strcmp (full_name, CAMEL_VTRASH_NAME) || !strcmp (full_name, CAMEL_VJUNK_NAME))
info_flags |= CAMEL_FOLDER_VIRTUAL | CAMEL_FOLDER_NOINFERIORS;
@@ -2206,34 +2206,34 @@ emft_popup (EMFolderTree *emft, GdkEvent *event)
* This is the context menu shown on the folder tree.
*/
emp = em_popup_new ("org.gnome.evolution.mail.foldertree.popup");
-
+
/* FIXME: pass valid fi->flags here */
target = em_popup_target_new_folder (emp, uri, info_flags, flags);
-
+
for (i = 0; i < sizeof (emft_popup_items) / sizeof (emft_popup_items[0]); i++)
menus = g_slist_prepend (menus, &emft_popup_items[i]);
-
+
if ((folder_type_flags & CAMEL_FOLDER_TYPE_MASK) == CAMEL_FOLDER_TYPE_TRASH)
menus = g_slist_prepend (menus, &trash_popup_item);
e_popup_add_items ((EPopup *)emp, menus, NULL, emft_popup_free, emft);
menu = e_popup_create_menu_once ((EPopup *)emp, (EPopupTarget *)target, 0);
-
+
if (event == NULL || event->type == GDK_KEY_PRESS) {
/* FIXME: menu pos function */
gtk_menu_popup (menu, NULL, NULL, NULL, NULL, 0, gtk_get_current_event_time());
} else {
gtk_menu_popup (menu, NULL, NULL, NULL, NULL, event->button.button, event->button.time);
}
-
+
g_free (full_name);
g_free (uri);
return TRUE;
}
-static gboolean
+static gboolean
emft_popup_menu (GtkWidget *widget)
{
return emft_popup (EM_FOLDER_TREE (widget), NULL);
@@ -2247,26 +2247,26 @@ emft_tree_button_press (GtkTreeView *treeview, GdkEventButton *event, EMFolderTr
/* this centralises working out when the user's done something */
emft_tree_user_event(treeview, (GdkEvent *)event, emft);
-
+
if (event->button != 3 && !(event->button == 1 && event->type == GDK_2BUTTON_PRESS))
return FALSE;
-
+
if (!gtk_tree_view_get_path_at_pos (treeview, (int) event->x, (int) event->y, &tree_path, NULL, NULL, NULL))
return FALSE;
-
+
/* select/focus the row that was right-clicked or double-clicked */
selection = gtk_tree_view_get_selection (treeview);
gtk_tree_selection_select_path(selection, tree_path);
gtk_tree_view_set_cursor (treeview, tree_path, NULL, FALSE);
-
+
if (event->button == 1 && event->type == GDK_2BUTTON_PRESS) {
emft_tree_row_activated (treeview, tree_path, NULL, emft);
gtk_tree_path_free (tree_path);
return TRUE;
}
-
+
gtk_tree_path_free (tree_path);
-
+
return emft_popup (emft, (GdkEvent *)event);
}
@@ -2294,10 +2294,10 @@ emft_tree_selection_changed (GtkTreeSelection *selection, EMFolderTree *emft)
GtkTreeModel *model;
GtkTreeIter iter;
guint32 flags;
-
+
if (!emft_selection_get_selected (selection, &model, &iter)) {
em_folder_tree_model_set_selected (emft->priv->model, NULL);
- g_signal_emit (emft, signals[FOLDER_SELECTED], 0, NULL, NULL, 0);
+ g_signal_emit (emft, signals[FOLDER_SELECTED], 0, NULL, NULL, 0);
emft_queue_save_state (emft);
return;
}
@@ -2340,7 +2340,7 @@ em_folder_tree_select_next_path (EMFolderTree *emft, gboolean skip_read_folders)
current_path = gtk_tree_model_get_path (model, &iter);
- do {
+ do {
if (gtk_tree_model_iter_has_child (model, &iter)) {
gtk_tree_model_iter_children (model, &child, &iter);
path = gtk_tree_model_get_path (model, &child);
@@ -2370,7 +2370,7 @@ em_folder_tree_select_next_path (EMFolderTree *emft, gboolean skip_read_folders)
}
if (path) {
- if (!gtk_tree_view_row_expanded (emft->priv->treeview, path))
+ if (!gtk_tree_view_row_expanded (emft->priv->treeview, path))
gtk_tree_view_expand_to_path (emft->priv->treeview, path);
gtk_tree_selection_select_path(selection, path);
@@ -2380,14 +2380,14 @@ em_folder_tree_select_next_path (EMFolderTree *emft, gboolean skip_read_folders)
priv->cursor_set = TRUE;
}
gtk_tree_view_scroll_to_cell (priv->treeview, path, NULL, TRUE, 0.5f, 0.0f);
- }
+ }
return;
}
-static GtkTreeIter
+static GtkTreeIter
get_last_child (GtkTreeModel *model, GtkTreeIter *iter)
{
- GtkTreeIter *child = g_new0 (GtkTreeIter, 1);
+ GtkTreeIter *child = g_new0 (GtkTreeIter, 1);
gboolean has_child = gtk_tree_model_iter_has_child (model, iter);
if (gtk_tree_model_iter_next (model, iter)) {
@@ -2428,7 +2428,7 @@ em_folder_tree_select_prev_path (EMFolderTree *emft, gboolean skip_read_folders)
{
gtk_tree_model_get_iter_first (model, &iter);
iter = get_last_child (model,&iter);
- path = gtk_tree_model_get_path (model, &iter);
+ path = gtk_tree_model_get_path (model, &iter);
}
} else {
gtk_tree_model_get_iter (model, &iter, path);
@@ -2459,7 +2459,7 @@ em_folder_tree_select_prev_path (EMFolderTree *emft, gboolean skip_read_folders)
priv->cursor_set = TRUE;
}
gtk_tree_view_scroll_to_cell (priv->treeview, path, NULL, TRUE, 0.5f, 0.0f);
- }
+ }
return;
}
@@ -2477,7 +2477,7 @@ em_folder_tree_get_selected_uri (EMFolderTree *emft)
selection = gtk_tree_view_get_selection(emft->priv->treeview);
if (gtk_tree_selection_get_selected(selection, &model, &iter))
gtk_tree_model_get(model, &iter, COL_STRING_URI, &uri, -1);
-
+
return uri;
}
@@ -2494,7 +2494,7 @@ em_folder_tree_get_selected_path (EMFolderTree *emft)
selection = gtk_tree_view_get_selection(emft->priv->treeview);
if (gtk_tree_selection_get_selected(selection, &model, &iter))
gtk_tree_model_get(model, &iter, COL_STRING_FULL_NAME, &name, -1);
-
+
return name;
}
@@ -2543,8 +2543,8 @@ em_folder_tree_get_selected_folder_info (EMFolderTree *emft)
selection = gtk_tree_view_get_selection(emft->priv->treeview);
if (gtk_tree_selection_get_selected(selection, &model, &iter))
gtk_tree_model_get (model, &iter, COL_POINTER_CAMEL_STORE, &store,
- COL_STRING_FULL_NAME, &full_name,
- COL_STRING_DISPLAY_NAME, &name,
+ COL_STRING_FULL_NAME, &full_name,
+ COL_STRING_DISPLAY_NAME, &name,
COL_STRING_URI, &uri, -1);
fi = g_new0(CamelFolderInfo, 1);
@@ -2573,7 +2573,7 @@ EMFolderTreeModel *
em_folder_tree_get_model (EMFolderTree *emft)
{
g_return_val_if_fail (EM_IS_FOLDER_TREE (emft), NULL);
-
+
return emft->priv->model;
}
@@ -2593,10 +2593,10 @@ static gboolean
emft_save_state (EMFolderTree *emft)
{
struct _EMFolderTreePrivate *priv = emft->priv;
-
+
em_folder_tree_model_save_state (priv->model);
priv->save_state_id = 0;
-
+
return FALSE;
}
@@ -2605,9 +2605,9 @@ static void
emft_queue_save_state (EMFolderTree *emft)
{
struct _EMFolderTreePrivate *priv = emft->priv;
-
+
if (priv->save_state_id != 0)
return;
-
+
priv->save_state_id = g_timeout_add (1000, (GSourceFunc) emft_save_state, emft);
}
diff --git a/mail/em-folder-tree.h b/mail/em-folder-tree.h
index ae7511fbe8..3fe3aa5f81 100644
--- a/mail/em-folder-tree.h
+++ b/mail/em-folder-tree.h
@@ -61,7 +61,7 @@ struct _EMFolderTree {
struct _EMFolderTreeClass {
GtkVBoxClass parent_class;
-
+
/* signals */
void (* folder_activated) (EMFolderTree *emft, const char *full_name, const char *uri);
void (* folder_selected) (EMFolderTree *emft, const char *full_name, const char *uri, guint32 flags);
diff --git a/mail/em-folder-utils.c b/mail/em-folder-utils.c
index 3fe2587195..03d070540b 100644
--- a/mail/em-folder-utils.c
+++ b/mail/em-folder-utils.c
@@ -86,14 +86,14 @@ emfu_is_special_local_folder (const char *name)
struct _EMCopyFolders {
struct _mail_msg msg;
-
+
/* input data */
CamelStore *fromstore;
CamelStore *tostore;
-
+
char *frombase;
char *tobase;
-
+
int delete;
};
@@ -101,7 +101,7 @@ static char *
emft_copy_folders__desc (struct _mail_msg *mm, int complete)
{
struct _EMCopyFolders *m = (struct _EMCopyFolders *) mm;
-
+
return g_strdup_printf (_("Copying `%s' to `%s'"), m->frombase, m->tobase);
}
@@ -115,42 +115,42 @@ emft_copy_folders__copy (struct _mail_msg *mm)
CamelFolderInfo *fi;
const char *tmp;
int fromlen;
-
+
if (!(fi = camel_store_get_folder_info (m->fromstore, m->frombase, flags, &mm->ex)))
return;
-
+
pending = g_list_append (pending, fi);
-
+
toname = g_string_new ("");
fromname = g_string_new ("");
-
+
tmp = strrchr (m->frombase, '/');
if (tmp == NULL)
fromlen = 0;
else
fromlen = tmp - m->frombase + 1;
-
+
d(printf ("top name is '%s'\n", fi->full_name));
-
+
while (pending) {
CamelFolderInfo *info = pending->data;
-
+
pending = g_list_remove_link (pending, pending);
while (info) {
CamelFolder *fromfolder, *tofolder;
GPtrArray *uids;
int deleted = 0;
-
+
if (info->child)
pending = g_list_append (pending, info->child);
-
+
if (m->tobase[0])
g_string_printf (toname, "%s/%s", m->tobase, info->full_name + fromlen);
else
g_string_printf (toname, "%s", info->full_name + fromlen);
-
+
d(printf ("Copying from '%s' to '%s'\n", info->full_name, toname->str));
-
+
/* This makes sure we create the same tree, e.g. from a nonselectable source */
/* Not sure if this is really the 'right thing', e.g. for spool stores, but it makes the ui work */
if ((info->flags & CAMEL_FOLDER_NOSELECT) == 0) {
@@ -159,69 +159,69 @@ emft_copy_folders__copy (struct _mail_msg *mm)
camel_store_rename_folder (m->fromstore, info->full_name, toname->str, &mm->ex);
if (camel_exception_is_set (&mm->ex))
goto exception;
-
+
/* this folder no longer exists, unsubscribe it */
if (camel_store_supports_subscriptions (m->fromstore))
camel_store_unsubscribe_folder (m->fromstore, info->full_name, NULL);
-
+
deleted = 1;
} else {
if (!(fromfolder = camel_store_get_folder (m->fromstore, info->full_name, 0, &mm->ex)))
goto exception;
-
+
if (!(tofolder = camel_store_get_folder (m->tostore, toname->str, CAMEL_STORE_FOLDER_CREATE, &mm->ex))) {
camel_object_unref (fromfolder);
goto exception;
}
-
+
uids = camel_folder_get_uids (fromfolder);
camel_folder_transfer_messages_to (fromfolder, uids, tofolder, NULL, m->delete, &mm->ex);
camel_folder_free_uids (fromfolder, uids);
-
+
if (m->delete)
camel_folder_sync(fromfolder, TRUE, NULL);
-
+
camel_object_unref (fromfolder);
camel_object_unref (tofolder);
}
}
-
+
if (camel_exception_is_set (&mm->ex))
goto exception;
else if (m->delete && !deleted)
deleting = g_list_prepend (deleting, info);
-
+
/* subscribe to the new folder if appropriate */
if (camel_store_supports_subscriptions (m->tostore)
&& !camel_store_folder_subscribed (m->tostore, toname->str))
camel_store_subscribe_folder (m->tostore, toname->str, NULL);
-
+
info = info->next;
}
}
-
+
/* delete the folders in reverse order from how we copyied them, if we are deleting any */
l = deleting;
while (l) {
CamelFolderInfo *info = l->data;
-
+
d(printf ("deleting folder '%s'\n", info->full_name));
-
+
/* FIXME: we need to do something with the exception
since otherwise the users sees a failed operation
with no error message or even any warnings */
if (camel_store_supports_subscriptions (m->fromstore))
camel_store_unsubscribe_folder (m->fromstore, info->full_name, NULL);
-
+
camel_store_delete_folder (m->fromstore, info->full_name, NULL);
l = l->next;
}
-
+
exception:
-
+
camel_store_free_folder_info (m->fromstore, fi);
g_list_free (deleting);
-
+
g_string_free (toname, TRUE);
g_string_free (fromname, TRUE);
}
@@ -230,10 +230,10 @@ static void
emft_copy_folders__free (struct _mail_msg *mm)
{
struct _EMCopyFolders *m = (struct _EMCopyFolders *) mm;
-
+
camel_object_unref (m->fromstore);
camel_object_unref (m->tostore);
-
+
g_free (m->frombase);
g_free (m->tobase);
}
@@ -284,7 +284,7 @@ emfu_copy_folder_selected (const char *uri, void *data)
g_free (cfd);
return;
}
-
+
camel_exception_init (&ex);
if (!(fromstore = camel_session_get_store (session, cfd->fi->uri, &ex))) {
@@ -292,13 +292,13 @@ emfu_copy_folder_selected (const char *uri, void *data)
cfd->delete?"mail:no-move-folder-notexist":"mail:no-copy-folder-notexist", cfd->fi->full_name, uri, ex.desc, NULL);
goto fail;
}
-
+
if (cfd->delete && fromstore == mail_component_peek_local_store (NULL) && emfu_is_special_local_folder (cfd->fi->full_name)) {
e_error_run(NULL,
"mail:no-rename-special-folder", cfd->fi->full_name, NULL);
goto fail;
}
-
+
if (!(tostore = camel_session_get_store (session, uri, &ex))) {
e_error_run(NULL,
cfd->delete?"mail:no-move-folder-to-notexist":"mail:no-copy-folder-to-notexist", cfd->fi->full_name, uri, ex.desc, NULL);
@@ -314,7 +314,7 @@ emfu_copy_folder_selected (const char *uri, void *data)
tobase = "";
em_folder_utils_copy_folders(fromstore, cfd->fi->full_name, tostore, tobase, cfd->delete);
-
+
camel_url_free (url);
fail:
if (fromstore)
@@ -361,7 +361,7 @@ void
em_folder_utils_copy_folder(CamelFolderInfo *folderinfo, int delete)
{
struct _copy_folder_data *cfd;
-
+
cfd = g_malloc (sizeof (*cfd));
cfd->fi = folderinfo;
cfd->delete = delete;
@@ -376,40 +376,40 @@ emfu_delete_rec (CamelStore *store, CamelFolderInfo *fi, CamelException *ex)
{
while (fi) {
CamelFolder *folder;
-
+
if (fi->child) {
emfu_delete_rec (store, fi->child, ex);
if (camel_exception_is_set (ex))
return;
}
-
+
d(printf ("deleting folder '%s'\n", fi->full_name));
-
+
/* shouldn't camel do this itself? */
if (camel_store_supports_subscriptions (store))
camel_store_unsubscribe_folder (store, fi->full_name, NULL);
-
+
if (!(folder = camel_store_get_folder (store, fi->full_name, 0, ex)))
return;
-
+
if (!CAMEL_IS_VEE_FOLDER (folder)) {
GPtrArray *uids = camel_folder_get_uids (folder);
int i;
-
+
camel_folder_freeze (folder);
for (i = 0; i < uids->len; i++)
camel_folder_delete_message (folder, uids->pdata[i]);
-
+
camel_folder_free_uids (folder, uids);
-
+
camel_folder_sync (folder, TRUE, NULL);
camel_folder_thaw (folder);
}
-
+
camel_store_delete_folder (store, fi->full_name, ex);
if (camel_exception_is_set (ex))
return;
-
+
fi = fi->next;
}
}
@@ -419,11 +419,11 @@ emfu_delete_folders (CamelStore *store, const char *full_name, CamelException *e
{
guint32 flags = CAMEL_STORE_FOLDER_INFO_RECURSIVE | CAMEL_STORE_FOLDER_INFO_FAST | CAMEL_STORE_FOLDER_INFO_SUBSCRIBED;
CamelFolderInfo *fi;
-
+
fi = camel_store_get_folder_info (store, full_name, flags, ex);
if (camel_exception_is_set (ex))
return;
-
+
emfu_delete_rec (store, fi, ex);
camel_store_free_folder_info (store, fi);
}
@@ -434,10 +434,10 @@ emfu_delete_response (GtkWidget *dialog, int response, gpointer data)
CamelStore *store;
CamelException ex;
char *full_name;
-
+
full_name = g_object_get_data ((GObject *) dialog, "full_name");
store = g_object_get_data ((GObject *) dialog, "store");
-
+
if (response == GTK_RESPONSE_OK) {
camel_exception_init (&ex);
emfu_delete_folders (store, full_name, &ex);
@@ -447,7 +447,7 @@ emfu_delete_response (GtkWidget *dialog, int response, gpointer data)
camel_exception_clear (&ex);
}
}
-
+
gtk_widget_destroy (dialog);
}
@@ -459,7 +459,7 @@ em_folder_utils_delete_folder (CamelFolder *folder)
GtkWidget *dialog;
local = mail_component_peek_local_store (NULL);
-
+
if (folder->parent_store == local && emfu_is_special_local_folder (folder->full_name)) {
e_error_run(NULL, "mail:no-delete-special-folder", folder->full_name, NULL);
return;
@@ -495,12 +495,12 @@ em_folder_utils_rename_folder (CamelFolder *folder)
"mail:no-rename-special-folder", folder->full_name, NULL);
return;
}
-
+
if ((p = strrchr (folder->full_name, '/')))
base_len = (size_t) (p - folder->full_name);
else
base_len = 0;
-
+
prompt = g_strdup_printf (_("Rename the \"%s\" folder to:"), folder->name);
while (!done) {
new_name = e_request_string (NULL, _("Rename Folder"), prompt, folder->name);
@@ -515,7 +515,7 @@ em_folder_utils_rename_folder (CamelFolder *folder)
CamelFolderInfo *fi;
CamelException ex;
char *path, *tmp;
-
+
if (base_len > 0) {
path = g_malloc (base_len + strlen (new_name) + 2);
memcpy (path, folder->full_name, base_len);
@@ -525,7 +525,7 @@ em_folder_utils_rename_folder (CamelFolder *folder)
} else {
path = g_strdup (new_name);
}
-
+
camel_exception_init (&ex);
if ((fi = camel_store_get_folder_info (folder->parent_store, path, CAMEL_STORE_FOLDER_INFO_FAST, &ex)) != NULL) {
camel_store_free_folder_info (folder->parent_store, fi);
@@ -533,12 +533,12 @@ em_folder_utils_rename_folder (CamelFolder *folder)
"mail:no-rename-folder-exists", folder->name, new_name, NULL);
} else {
const char *oldpath, *newpath;
-
+
oldpath = folder->full_name;
newpath = path;
-
+
d(printf ("renaming %s to %s\n", oldpath, newpath));
-
+
camel_exception_clear (&ex);
camel_store_rename_folder (folder->parent_store, oldpath, newpath, &ex);
if (camel_exception_is_set (&ex)) {
@@ -546,36 +546,36 @@ em_folder_utils_rename_folder (CamelFolder *folder)
"mail:no-rename-folder", oldpath, newpath, ex.desc, NULL);
camel_exception_clear (&ex);
}
-
+
done = TRUE;
}
-
+
g_free (path);
}
-
+
g_free (new_name);
}
}
struct _EMCreateFolder {
struct _mail_msg msg;
-
+
/* input data */
CamelStore *store;
char *full_name;
char *parent;
char *name;
-
+
/* output data */
CamelFolderInfo *fi;
-
+
/* callback data */
void (* done) (CamelFolderInfo *fi, void *user_data);
void *user_data;
};
/* Temporary Structure to hold data to pass across function */
-struct _EMCreateFolderTempData
+struct _EMCreateFolderTempData
{
EMFolderTree * emft;
EMFolderSelector * emfs;
@@ -586,7 +586,7 @@ static char *
emfu_create_folder__desc (struct _mail_msg *mm, int done)
{
struct _EMCreateFolder *m = (struct _EMCreateFolder *) mm;
-
+
return g_strdup_printf (_("Creating folder `%s'"), m->full_name);
}
@@ -594,9 +594,9 @@ static void
emfu_create_folder__create (struct _mail_msg *mm)
{
struct _EMCreateFolder *m = (struct _EMCreateFolder *) mm;
-
+
d(printf ("creating folder parent='%s' name='%s' full_name='%s'\n", m->parent, m->name, m->full_name));
-
+
if ((m->fi = camel_store_create_folder (m->store, m->parent, m->name, &mm->ex))) {
if (camel_store_supports_subscriptions (m->store))
camel_store_subscribe_folder (m->store, m->full_name, &mm->ex);
@@ -607,7 +607,7 @@ static void
emfu_create_folder__created (struct _mail_msg *mm)
{
struct _EMCreateFolder *m = (struct _EMCreateFolder *) mm;
-
+
if (m->done)
m->done (m->fi, m->user_data);
}
@@ -616,7 +616,7 @@ static void
emfu_create_folder__free (struct _mail_msg *mm)
{
struct _EMCreateFolder *m = (struct _EMCreateFolder *) mm;
-
+
camel_store_free_folder_info (m->store, m->fi);
camel_object_unref (m->store);
g_free (m->full_name);
@@ -639,7 +639,7 @@ emfu_create_folder_real (CamelStore *store, const char *full_name, void (* done)
struct _EMCreateFolder *m;
const char *parent;
int id;
-
+
namebuf = g_strdup (full_name);
if (!(name = strrchr (namebuf, '/'))) {
name = namebuf;
@@ -648,7 +648,7 @@ emfu_create_folder_real (CamelStore *store, const char *full_name, void (* done)
*name++ = '\0';
parent = namebuf;
}
-
+
m = mail_msg_new (&create_folder_op, NULL, sizeof (struct _EMCreateFolder));
camel_object_ref (store);
m->store = store;
@@ -657,12 +657,12 @@ emfu_create_folder_real (CamelStore *store, const char *full_name, void (* done)
m->name = g_strdup (name);
m->user_data = user_data;
m->done = done;
-
+
g_free (namebuf);
-
+
id = m->msg.seq;
e_thread_put (mail_thread_new, (EMsg *) m);
-
+
return id;
}
@@ -672,11 +672,11 @@ new_folder_created_cb (CamelFolderInfo *fi, void *user_data)
struct _EMCreateFolderTempData *emcftd=user_data;
if (fi){
gtk_widget_destroy ((GtkWidget *) emcftd->emfs);
-
+
/* Exapnding newly created folder */
if (emcftd->emft)
- em_folder_tree_set_selected ((EMFolderTree *) emcftd->emft, emcftd->uri, GPOINTER_TO_INT(g_object_get_data ((GObject *)emcftd->emft, "select")) ? FALSE : TRUE);
- }
+ em_folder_tree_set_selected ((EMFolderTree *) emcftd->emft, emcftd->uri, GPOINTER_TO_INT(g_object_get_data ((GObject *)emcftd->emft, "select")) ? FALSE : TRUE);
+ }
g_object_unref (emcftd->emfs);
g_free (emcftd->uri);
g_free (emcftd);
@@ -690,7 +690,7 @@ emfu_popup_new_folder_response (EMFolderSelector *emfs, int response, gpointer d
CamelException ex;
CamelStore *store;
struct _EMCreateFolderTempData *emcftd;
-
+
if (response != GTK_RESPONSE_OK) {
gtk_widget_destroy ((GtkWidget *) emfs);
return;
@@ -728,11 +728,11 @@ emfu_popup_new_folder_response (EMFolderSelector *emfs, int response, gpointer d
emcftd->emfs = emfs;
emcftd->uri = g_strdup (uri);
emcftd->emft = (EMFolderTree *) data;
-
+
g_object_ref (emfs);
emfu_create_folder_real (si->store, path, new_folder_created_cb, emcftd);
}
-
+
camel_object_unref (store);
camel_exception_clear (&ex);
}
@@ -746,7 +746,7 @@ em_folder_utils_create_folder (CamelFolderInfo *folderinfo, EMFolderTree *emft)
model = mail_component_peek_tree_model (mail_component_peek ());
folder_tree = (EMFolderTree *) em_folder_tree_new_with_model (model);
-
+
dialog = em_folder_selector_create_new (folder_tree, 0, _("Create folder"), _("Specify where to create the folder:"));
if (folderinfo != NULL)
em_folder_selector_set_selected ((EMFolderSelector *) dialog, folderinfo->uri);
diff --git a/mail/em-folder-view.c b/mail/em-folder-view.c
index 5ec86facb3..0d7eed1236 100644
--- a/mail/em-folder-view.c
+++ b/mail/em-folder-view.c
@@ -86,7 +86,7 @@
#include "e-util/e-dialog-utils.h"
#include "e-util/e-icon-factory.h"
#include "e-util/e-print.h"
-#include "e-util/e-profile-event.h"
+#include "e-util/e-profile-event.h"
#include "e-util/e-util-private.h"
#include "filter/filter-rule.h"
@@ -272,14 +272,14 @@ emfv_init(GObject *o)
EMFolderView *emfv = (EMFolderView *)o;
struct _EMFolderViewPrivate *p;
extern CamelSession *session;
-
+
gtk_box_set_homogeneous (GTK_BOX (emfv), FALSE);
p = emfv->priv = g_malloc0(sizeof(struct _EMFolderViewPrivate));
emfv->statusbar_active = TRUE;
emfv->list_active = FALSE;
-
+
emfv->ui_files = g_slist_append(NULL,
g_build_filename (EVOLUTION_UIDIR,
"evolution-mail-message.xml",
@@ -400,20 +400,20 @@ static void
emfv_class_init(GObjectClass *klass)
{
klass->finalize = emfv_finalise;
-
+
((GtkObjectClass *) klass)->destroy = emfv_destroy;
-
+
((GtkWidgetClass *) klass)->popup_menu = emfv_popup_menu;
-
+
((EMFolderViewClass *) klass)->update_message_style = TRUE;
-
+
((EMFolderViewClass *)klass)->set_folder = emfv_set_folder;
((EMFolderViewClass *)klass)->set_folder_uri = emfv_set_folder_uri;
((EMFolderViewClass *)klass)->set_message = emfv_set_message;
((EMFolderViewClass *)klass)->activate = emfv_activate;
((EMFolderViewClass *)klass)->on_url = emfv_on_url;
-
+
signals[EMFV_ON_URL] = g_signal_new ("on-url",
G_OBJECT_CLASS_TYPE (klass),
G_SIGNAL_RUN_LAST,
@@ -480,7 +480,7 @@ em_folder_view_mark_selected(EMFolderView *emfv, guint32 mask, guint32 set)
if (emfv->folder == NULL)
return 0;
-
+
uids = message_list_get_selected(emfv->list);
camel_folder_freeze(emfv->folder);
@@ -489,7 +489,7 @@ em_folder_view_mark_selected(EMFolderView *emfv, guint32 mask, guint32 set)
message_list_free_uids(emfv->list, uids);
camel_folder_thaw(emfv->folder);
-
+
return i;
}
@@ -499,7 +499,7 @@ em_folder_view_open_selected(EMFolderView *emfv)
{
GPtrArray *uids, *views;
int i = 0;
-
+
uids = message_list_get_selected(emfv->list);
if (uids->len >= 10) {
@@ -589,10 +589,10 @@ emfv_setup_view_instance(EMFolderView *emfv)
struct _EMFolderViewPrivate *p = emfv->priv;
gboolean outgoing, show_wide;
char *id;
-
+
g_return_if_fail (emfv->folder);
g_return_if_fail (emfv->folder_uri);
-
+
if (collection == NULL) {
ETableSpecification *spec;
GalViewFactory *factory;
@@ -602,9 +602,9 @@ emfv_setup_view_instance(EMFolderView *emfv)
char *etspecfile;
collection = gal_view_collection_new ();
-
+
gal_view_collection_set_title (collection, _("Mail"));
-
+
evolution_dir = mail_component_peek_base_directory (mail_component_peek ());
galviewsmaildir = g_build_filename (EVOLUTION_GALVIEWSDIR,
"mail",
@@ -613,7 +613,7 @@ emfv_setup_view_instance(EMFolderView *emfv)
gal_view_collection_set_storage_directories (collection, galviewsmaildir, dir);
g_free (dir);
g_free (galviewsmaildir);
-
+
spec = e_table_specification_new ();
etspecfile = g_build_filename (EVOLUTION_ETSPECDIR,
"message-list.etspec",
@@ -622,12 +622,12 @@ emfv_setup_view_instance(EMFolderView *emfv)
g_error ("Unable to load ETable specification file "
"for mail");
g_free (etspecfile);
-
+
factory = gal_view_factory_etable_new (spec);
g_object_unref (spec);
gal_view_collection_add_factory (collection, factory);
g_object_unref (factory);
-
+
gal_view_collection_load (collection);
}
@@ -640,18 +640,18 @@ emfv_setup_view_instance(EMFolderView *emfv)
g_object_unref(p->view_menus);
p->view_menus = NULL;
}
-
+
/* TODO: should this go through mail-config api? */
id = mail_config_folder_to_safe_url (emfv->folder);
p->view_instance = gal_view_instance_new (collection, id);
-
+
show_wide = em_folder_browser_get_wide ((EMFolderBrowser *) emfv);
if (show_wide) {
char *safe_id, *filename;
-
+
/* Force to use the wide view */
g_free (p->view_instance->custom_filename);
- g_free (p->view_instance->current_view_filename);
+ g_free (p->view_instance->current_view_filename);
safe_id = g_strdup (id);
e_filename_make_safe (safe_id);
filename = g_strdup_printf ("custom_wide_view-%s.xml", safe_id);
@@ -662,11 +662,11 @@ emfv_setup_view_instance(EMFolderView *emfv)
g_free (safe_id);
}
g_free (id);
-
+
outgoing = em_utils_folder_is_drafts (emfv->folder, emfv->folder_uri)
|| em_utils_folder_is_sent (emfv->folder, emfv->folder_uri)
|| em_utils_folder_is_outbox (emfv->folder, emfv->folder_uri);
-
+
if (outgoing) {
if (show_wide)
gal_view_instance_set_default_view(p->view_instance, "Wide_View_Sent");
@@ -675,9 +675,9 @@ emfv_setup_view_instance(EMFolderView *emfv)
} else if (show_wide) {
gal_view_instance_set_default_view(p->view_instance, "Wide_View_Normal");
}
-
+
gal_view_instance_load(p->view_instance);
-
+
if (!gal_view_instance_exists(p->view_instance)) {
struct stat st;
char *path;
@@ -688,7 +688,7 @@ emfv_setup_view_instance(EMFolderView *emfv)
ETableState *state;
GalView *view;
char *etspecfile;
-
+
spec = e_table_specification_new ();
etspecfile = g_build_filename (EVOLUTION_ETSPECDIR,
"message-list.etspec",
@@ -697,22 +697,22 @@ emfv_setup_view_instance(EMFolderView *emfv)
g_free (etspecfile);
view = gal_view_etable_new (spec, "");
g_object_unref (spec);
-
+
state = e_table_state_new ();
e_table_state_load_from_file (state, path);
gal_view_etable_set_state (GAL_VIEW_ETABLE (view), state);
g_object_unref (state);
-
+
gal_view_instance_set_custom_view(p->view_instance, view);
g_object_unref (view);
}
-
+
g_free (path);
}
g_signal_connect(p->view_instance, "display_view", G_CALLBACK(emfv_list_display_view), emfv);
emfv_list_display_view(p->view_instance, gal_view_instance_get_current_view(p->view_instance), emfv);
-
+
if (emfv->list_active && emfv->uic) {
p->view_menus = gal_view_menus_new(p->view_instance);
gal_view_menus_apply(p->view_menus, emfv->uic, NULL);
@@ -733,20 +733,20 @@ emfv_set_folder(EMFolderView *emfv, CamelFolder *folder, const char *uri)
&& (em_utils_folder_is_drafts(folder, uri)
|| em_utils_folder_is_sent(folder, uri)
|| em_utils_folder_is_outbox(folder, uri)));
-
+
if (folder == emfv->folder)
return;
if (emfv->priv->selected_id)
g_source_remove(emfv->priv->selected_id);
-
+
if (emfv->preview)
em_format_format ((EMFormat *) emfv->preview, NULL, NULL, NULL);
-
+
message_list_set_folder(emfv->list, folder, uri, isout);
g_free(emfv->folder_uri);
emfv->folder_uri = uri ? g_strdup(uri):NULL;
-
+
if (emfv->folder) {
emfv->hide_deleted = emfv->list->hidedeleted; /* <- a bit nasty but makes it track the display better */
mail_sync_folder (emfv->folder, NULL, NULL);
@@ -755,12 +755,12 @@ emfv_set_folder(EMFolderView *emfv, CamelFolder *folder, const char *uri)
emfv->folder = folder;
if (folder) {
- /* We need to set this up to get the right view options for the message-list,
+ /* We need to set this up to get the right view options for the message-list,
* even if we're not showing it */
emfv_setup_view_instance(emfv);
camel_object_ref(folder);
}
-
+
emfv_enable_menus(emfv);
/* TODO: should probably be called after all processing, not just this class's impl */
@@ -771,7 +771,7 @@ static void
emfv_got_folder(char *uri, CamelFolder *folder, void *data)
{
EMFolderView *emfv = data;
-
+
em_folder_view_set_folder(emfv, folder, uri);
}
@@ -837,7 +837,7 @@ emfv_popup_edit (EPopup *ep, EPopupItem *pitem, void *data)
if (!em_utils_check_user_can_send_mail((GtkWidget *)emfv))
return;
-
+
uids = message_list_get_selected(emfv->list);
em_utils_edit_messages (emfv->folder, uids, FALSE);
}
@@ -847,7 +847,7 @@ emfv_popup_saveas(EPopup *ep, EPopupItem *pitem, void *data)
{
EMFolderView *emfv = data;
GPtrArray *uids;
-
+
uids = message_list_get_selected(emfv->list);
em_utils_save_messages((GtkWidget *)emfv, emfv->folder, uids);
}
@@ -881,7 +881,7 @@ emfv_popup_source(EPopup *ep, EPopupItem *pitem, void *data)
EMFolderView *emfv = data;
EMMessageBrowser *emmb;
GPtrArray *uids;
-
+
uids = message_list_get_selected(emfv->list);
emmb = (EMMessageBrowser *)em_message_browser_window_new();
@@ -953,7 +953,7 @@ emfv_popup_flag_completed(EPopup *ep, EPopupItem *pitem, void *data)
{
EMFolderView *emfv = data;
GPtrArray *uids;
-
+
uids = message_list_get_selected(emfv->list);
em_utils_flag_for_followup_completed((GtkWidget *)emfv, emfv->folder, uids);
@@ -985,7 +985,7 @@ emfv_popup_mark_unread(EPopup *ep, EPopupItem *pitem, void *data)
{
EMFolderView *emfv = data;
em_folder_view_mark_selected(emfv, CAMEL_MESSAGE_SEEN|CAMEL_MESSAGE_DELETED, 0);
-
+
if (emfv->list->seen_id) {
g_source_remove(emfv->list->seen_id);
emfv->list->seen_id = 0;
@@ -1011,7 +1011,7 @@ emfv_popup_mark_junk (EPopup *ep, EPopupItem *pitem, void *data)
{
EMFolderView *emfv = data;
int count;
-
+
count = em_folder_view_mark_selected(emfv,
CAMEL_MESSAGE_SEEN|CAMEL_MESSAGE_JUNK|CAMEL_MESSAGE_JUNK_LEARN,
CAMEL_MESSAGE_SEEN|CAMEL_MESSAGE_JUNK|CAMEL_MESSAGE_JUNK_LEARN);
@@ -1024,7 +1024,7 @@ emfv_popup_mark_nojunk (EPopup *ep, EPopupItem *pitem, void *data)
{
EMFolderView *emfv = data;
int count;
-
+
count = em_folder_view_mark_selected(emfv,
CAMEL_MESSAGE_JUNK|CAMEL_MESSAGE_JUNK_LEARN,
CAMEL_MESSAGE_JUNK_LEARN);
@@ -1074,12 +1074,12 @@ emfv_delete_msg_response (GtkWidget *dialog, int response, gpointer data)
_("Mail Deletion Failed"),
_("You do not have sufficient permissions to delete this mail."));
gtk_html_stream_close(hstream, GTK_HTML_STREAM_OK);
- } else
+ } else
e_error_run (NULL, "mail:no-delete-permission", "", "");
count = -1;
break;
- } else
+ } else
camel_folder_set_message_flags(emfv->folder, uids->pdata[count], CAMEL_MESSAGE_SEEN|CAMEL_MESSAGE_DELETED, CAMEL_MESSAGE_SEEN|CAMEL_MESSAGE_DELETED );
}
@@ -1144,14 +1144,14 @@ static void
emfv_popup_move_cb(const char *uri, void *data)
{
struct _move_data *d = data;
-
+
if (uri) {
g_free (default_xfer_messages_uri);
default_xfer_messages_uri = g_strdup (uri);
mail_transfer_messages(d->emfv->folder, d->uids, d->delete, uri, 0, NULL, NULL);
} else
em_utils_uids_free(d->uids);
-
+
g_object_unref(d->emfv);
g_free(d);
}
@@ -1161,13 +1161,13 @@ emfv_popup_move(EPopup *ep, EPopupItem *pitem, void *data)
{
EMFolderView *emfv = data;
struct _move_data *d;
-
+
d = g_malloc(sizeof(*d));
d->emfv = emfv;
g_object_ref(emfv);
d->uids = message_list_get_selected(emfv->list);
d->delete = TRUE;
-
+
em_select_folder ((GtkWindow *) emfv, _("Select folder"), _("_Move"), default_xfer_messages_uri, NULL, emfv_popup_move_cb, d);
}
@@ -1176,13 +1176,13 @@ emfv_popup_copy(EPopup *ep, EPopupItem *pitem, void *data)
{
EMFolderView *emfv = data;
struct _move_data *d;
-
+
d = g_malloc(sizeof(*d));
d->emfv = emfv;
g_object_ref(emfv);
d->uids = message_list_get_selected(emfv->list);
d->delete = FALSE;
-
+
em_select_folder ((GtkWindow *) emfv, _("Select folder"), _("C_opy"), default_xfer_messages_uri, NULL, emfv_popup_move_cb, d);
}
@@ -1309,7 +1309,7 @@ static EPopupItem emfv_popup_items[] = {
{ E_POPUP_ITEM, "70.emfv.07", N_("Fla_g Completed"), emfv_popup_flag_completed, NULL, "stock_mail-flag-for-followup-done", EM_POPUP_SELECT_FLAG_COMPLETED|EM_FOLDER_VIEW_SELECT_LISTONLY },
{ E_POPUP_ITEM, "70.emfv.08", N_("Cl_ear Flag"), emfv_popup_flag_clear, NULL, NULL, EM_POPUP_SELECT_FLAG_CLEAR|EM_FOLDER_VIEW_SELECT_LISTONLY },
-
+
{ E_POPUP_BAR, "90.filter", NULL, NULL, NULL, NULL },
{ E_POPUP_SUBMENU, "90.filter.00", N_("Crea_te Rule From Message"), NULL, NULL, NULL, EM_POPUP_SELECT_ONE|EM_FOLDER_VIEW_SELECT_LISTONLY },
{ E_POPUP_ITEM, "90.filter.00/00.00", N_("Search Folder from _Subject"), emfv_popup_vfolder_subject, NULL, NULL, EM_POPUP_SELECT_ONE|EM_FOLDER_VIEW_SELECT_LISTONLY },
@@ -1317,7 +1317,7 @@ static EPopupItem emfv_popup_items[] = {
{ E_POPUP_ITEM, "90.filter.00/00.02", N_("Search Folder from _Recipients"), emfv_popup_vfolder_recipients, NULL, NULL, EM_POPUP_SELECT_ONE|EM_FOLDER_VIEW_SELECT_LISTONLY },
{ E_POPUP_ITEM, "90.filter.00/00.03", N_("Search Folder from Mailing _List"),
emfv_popup_vfolder_mlist, NULL, NULL, EM_POPUP_SELECT_ONE|EM_POPUP_SELECT_MAILING_LIST|EM_FOLDER_VIEW_SELECT_LISTONLY },
-
+
{ E_POPUP_BAR, "90.filter.00/10", NULL, NULL, NULL, NULL },
{ E_POPUP_ITEM, "90.filter.00/10.00", N_("Filter on Sub_ject"), emfv_popup_filter_subject, NULL, NULL, EM_POPUP_SELECT_ONE|EM_FOLDER_VIEW_SELECT_LISTONLY },
{ E_POPUP_ITEM, "90.filter.00/10.01", N_("Filter on Sen_der"), emfv_popup_filter_sender, NULL, NULL, EM_POPUP_SELECT_ONE|EM_FOLDER_VIEW_SELECT_LISTONLY },
@@ -1346,7 +1346,7 @@ emfv_popup_items_free(EPopup *ep, GSList *items, void *data)
{
g_slist_free(items);
}
-
+
static void
emfv_popup(EMFolderView *emfv, GdkEvent *event, int on_display)
{
@@ -1379,7 +1379,7 @@ emfv_popup(EMFolderView *emfv, GdkEvent *event, int on_display)
GdkPixmap *pixmap;
GdkColor colour;
GdkGC *gc;
-
+
item = g_malloc0(sizeof(*item));
item->type = E_POPUP_IMAGE;
item->path = g_strdup_printf("60.label.00/00.label.%02d", i++);
@@ -1391,7 +1391,7 @@ emfv_popup(EMFolderView *emfv, GdkEvent *event, int on_display)
gdk_color_parse(label->colour, &colour);
gdk_colormap_alloc_color(gdk_colormap_get_system(), &colour, FALSE, TRUE);
-
+
pixmap = gdk_pixmap_new(((GtkWidget *)emfv)->window, 16, 16, -1);
gc = gdk_gc_new(((GtkWidget *)emfv)->window);
gdk_gc_set_foreground(gc, &colour);
@@ -1459,7 +1459,7 @@ static void
emfv_empty_trash(BonoboUIComponent *uid, void *data, const char *path)
{
EMFolderView *emfv = data;
-
+
em_utils_empty_trash (gtk_widget_get_toplevel ((GtkWidget *) emfv));
}
@@ -1515,11 +1515,11 @@ emfv_select_all_text(BonoboUIComponent *uid, void *data, const char *path)
{
EMFolderView *emfv = data;
gboolean selected;
-
+
gtk_html_select_all (((EMFormatHTML *)emfv->preview)->html);
selected = gtk_html_command (((EMFormatHTML *)emfv->preview)->html, "is-selection-active");
- bonobo_ui_component_set_prop(emfv->uic, "/commands/EditCopy", "sensitive", selected?"1":"0", NULL);
-
+ bonobo_ui_component_set_prop(emfv->uic, "/commands/EditCopy", "sensitive", selected?"1":"0", NULL);
+
}
static void
@@ -1536,7 +1536,7 @@ static void
emfv_mail_next_flagged(BonoboUIComponent *uid, void *data, const char *path)
{
EMFolderView *emfv = data;
-
+
message_list_select(emfv->list, MESSAGE_LIST_SELECT_NEXT|MESSAGE_LIST_SELECT_WRAP, CAMEL_MESSAGE_FLAGGED, CAMEL_MESSAGE_FLAGGED);
}
@@ -1587,10 +1587,10 @@ emfv_message_forward_attached (BonoboUIComponent *uic, void *data, const char *p
{
EMFolderView *emfv = data;
GPtrArray *uids;
-
+
if (!em_utils_check_user_can_send_mail ((GtkWidget *) emfv))
return;
-
+
uids = message_list_get_selected (emfv->list);
em_utils_forward_attached (emfv->folder, uids, emfv->folder_uri);
}
@@ -1600,10 +1600,10 @@ emfv_message_forward_inline (BonoboUIComponent *uic, void *data, const char *pat
{
EMFolderView *emfv = data;
GPtrArray *uids;
-
+
if (!em_utils_check_user_can_send_mail ((GtkWidget *) emfv))
return;
-
+
uids = message_list_get_selected (emfv->list);
em_utils_forward_inline (emfv->folder, uids, emfv->folder_uri);
}
@@ -1613,10 +1613,10 @@ emfv_message_forward_quoted (BonoboUIComponent *uic, void *data, const char *pat
{
EMFolderView *emfv = data;
GPtrArray *uids;
-
+
if (!em_utils_check_user_can_send_mail ((GtkWidget *) emfv))
return;
-
+
uids = message_list_get_selected (emfv->list);
em_utils_forward_quoted (emfv->folder, uids, emfv->folder_uri);
}
@@ -1625,13 +1625,13 @@ static void
emfv_message_redirect (BonoboUIComponent *uic, void *data, const char *path)
{
EMFolderView *emfv = data;
-
+
if (emfv->list->cursor_uid == NULL)
return;
-
+
if (!em_utils_check_user_can_send_mail ((GtkWidget *) emfv))
return;
-
+
em_utils_redirect_message_by_uid (emfv->folder, emfv->list->cursor_uid);
}
@@ -1639,13 +1639,13 @@ static void
emfv_message_post_reply (BonoboUIComponent *uic, void *data, const char *path)
{
EMFolderView *emfv = data;
-
+
if (emfv->list->cursor_uid == NULL)
return;
-
+
if (!em_utils_check_user_can_send_mail ((GtkWidget *) emfv))
return;
-
+
em_utils_post_reply_to_message_by_uid (emfv->folder, emfv->list->cursor_uid);
}
@@ -1692,10 +1692,10 @@ emfv_message_reply(EMFolderView *emfv, int mode)
{
char *html = NULL;
gint len;
-
+
if (emfv->list->cursor_uid == NULL)
return;
-
+
if (!em_utils_check_user_can_send_mail ((GtkWidget *) emfv))
return;
@@ -1704,10 +1704,10 @@ emfv_message_reply(EMFolderView *emfv, int mode)
&& len && html[0] && html_contains_nonwhitespace (html, len)) {
CamelMimeMessage *msg, *src;
struct _camel_header_raw *header;
-
+
src = (CamelMimeMessage *)((EMFormat *)emfv->preview)->message;
msg = camel_mime_message_new();
-
+
/* need to strip content- headers */
header = ((CamelMimePart *)src)->headers;
while (header) {
@@ -1731,7 +1731,7 @@ static void
emfv_message_search(BonoboUIComponent *uic, void *data, const char *path)
{
EMFolderView *emfv = data;
-
+
if (!emfv->list_active) /* We are in new mail window */
em_format_html_display_search(emfv->preview);
else {
@@ -1795,10 +1795,10 @@ static void
filter_type_got_message (CamelFolder *folder, const char *uid, CamelMimeMessage *msg, void *user_data)
{
struct _filter_data *data = user_data;
-
+
if (msg)
filter_gui_add_from_message (msg, data->source, data->type);
-
+
filter_data_free (data);
}
@@ -1806,11 +1806,11 @@ static void
filter_type_uid (CamelFolder *folder, const char *uid, const char *source, int type)
{
struct _filter_data *data;
-
+
data = g_malloc0 (sizeof (*data));
data->type = type;
data->source = source;
-
+
mail_get_message (folder, uid, filter_type_got_message, data, mail_thread_new);
}
@@ -1819,18 +1819,18 @@ filter_type_current (EMFolderView *emfv, int type)
{
const char *source;
GPtrArray *uids;
-
+
if (em_utils_folder_is_sent (emfv->folder, emfv->folder_uri)
|| em_utils_folder_is_outbox (emfv->folder, emfv->folder_uri))
source = FILTER_SOURCE_OUTGOING;
else
source = FILTER_SOURCE_INCOMING;
-
+
uids = message_list_get_selected (emfv->list);
-
+
if (uids->len == 1)
filter_type_uid (emfv->folder, (char *) uids->pdata[0], source, type);
-
+
em_utils_uids_free (uids);
}
@@ -1843,10 +1843,10 @@ static void
vfolder_type_got_message (CamelFolder *folder, const char *uid, CamelMimeMessage *msg, void *user_data)
{
struct _filter_data *data = user_data;
-
+
if (msg)
vfolder_gui_add_from_message (msg, data->type, data->uri);
-
+
filter_data_free (data);
}
@@ -1855,9 +1855,9 @@ emp_uri_popup_vfolder_sender(EPopup *ep, EPopupItem *pitem, void *data)
{
EMFolderView *emfv = data;
EMPopupTargetURI *t = (EMPopupTargetURI *)ep->target;
- CamelURL *url;
+ CamelURL *url;
CamelInternetAddress *addr;
-
+
url = camel_url_new(t->uri, NULL);
if (url == NULL) {
g_warning("cannot parse url '%s'", t->uri);
@@ -1870,9 +1870,9 @@ emp_uri_popup_vfolder_sender(EPopup *ep, EPopupItem *pitem, void *data)
vfolder_gui_add_from_address (addr, AUTO_FROM, emfv->folder_uri);
camel_object_unref (addr);
}
-
- camel_url_free(url);
-
+
+ camel_url_free(url);
+
}
@@ -1881,9 +1881,9 @@ emp_uri_popup_vfolder_recipient(EPopup *ep, EPopupItem *pitem, void *data)
{
EMFolderView *emfv = data;
EMPopupTargetURI *t = (EMPopupTargetURI *)ep->target;
- CamelURL *url;
+ CamelURL *url;
CamelInternetAddress *addr;
-
+
url = camel_url_new(t->uri, NULL);
if (url == NULL) {
g_warning("cannot parse url '%s'", t->uri);
@@ -1897,18 +1897,18 @@ emp_uri_popup_vfolder_recipient(EPopup *ep, EPopupItem *pitem, void *data)
camel_object_unref (addr);
}
- camel_url_free(url);
+ camel_url_free(url);
}
static void
vfolder_type_uid (CamelFolder *folder, const char *uid, const char *uri, int type)
{
struct _filter_data *data;
-
+
data = g_malloc0 (sizeof (*data));
data->type = type;
data->uri = g_strdup (uri);
-
+
mail_get_message (folder, uid, vfolder_type_got_message, data, mail_thread_new);
}
@@ -1916,12 +1916,12 @@ static void
vfolder_type_current (EMFolderView *emfv, int type)
{
GPtrArray *uids;
-
+
uids = message_list_get_selected (emfv->list);
-
+
if (uids->len == 1)
vfolder_type_uid (emfv->folder, (char *) uids->pdata[0], emfv->folder_uri, type);
-
+
em_utils_uids_free (uids);
}
@@ -2128,7 +2128,7 @@ emfv_view_mode(BonoboUIComponent *uic, const char *path, Bonobo_UIComponent_Even
if (EM_FOLDER_VIEW_GET_CLASS (emfv)->update_message_style) {
GConfClient *gconf = mail_config_get_gconf_client ();
-
+
gconf_client_set_int (gconf, "/apps/evolution/mail/display/message_style", i, NULL);
}
}
@@ -2197,10 +2197,10 @@ emfv_activate(EMFolderView *emfv, BonoboUIComponent *uic, int act)
bonobo_ui_component_add_listener(uic, "ViewFullHeaders", emfv_view_mode, emfv);
/* bonobo_ui_component_add_listener(uic, "ViewSource", emfv_view_mode, emfv); */
em_format_set_mode((EMFormat *)emfv->preview, style);
-
+
if (emfv->folder)
bonobo_ui_component_set_prop(uic, "/commands/MessageEdit", "sensitive", "0", NULL);
-
+
/* default charset used in mail view */
e_charset_picker_bonobo_ui_populate (uic, "/menu/View", _("Default"), emfv_charset_changed, emfv);
@@ -2304,9 +2304,9 @@ em_folder_view_get_popup_target(EMFolderView *emfv, EMPopup *emp, int on_display
/* See bug 352980 */
/* See bug #54770 */
- /* if (!emfv->hide_deleted)
+ /* if (!emfv->hide_deleted)
t->target.mask &= ~EM_POPUP_SELECT_DELETE;*/
-
+
return t;
}
@@ -2314,7 +2314,7 @@ void
em_folder_view_set_statusbar (EMFolderView *emfv, gboolean statusbar)
{
g_return_if_fail (emfv);
-
+
emfv->statusbar_active = statusbar;
if (statusbar && emfv->uic)
@@ -2347,7 +2347,7 @@ static void
mst_free (struct mst_t *mst)
{
mst->emfv->list->seen_id = 0;
-
+
g_free (mst->uid);
g_free (mst);
}
@@ -2358,10 +2358,10 @@ do_mark_seen (gpointer user_data)
struct mst_t *mst = user_data;
EMFolderView *emfv = mst->emfv;
MessageList *list = emfv->list;
-
+
if (mst->uid && list->cursor_uid && !strcmp (mst->uid, list->cursor_uid))
emfv_set_seen (emfv, mst->uid);
-
+
return FALSE;
}
@@ -2371,7 +2371,7 @@ emfv_list_done_message_selected(CamelFolder *folder, const char *uid, CamelMimeM
EMFolderView *emfv = data;
EMEvent *eme;
EMEventTargetMessage *target;
-
+
if (emfv->preview == NULL) {
emfv->priv->nomarkseen = FALSE;
emfv_enable_menus(emfv);
@@ -2387,7 +2387,7 @@ emfv_list_done_message_selected(CamelFolder *folder, const char *uid, CamelMimeM
/** @Event: message.reading
* @Title: Viewing a message
* @Target: EMEventTargetMessage
- *
+ *
* message.reading is emitted whenever a user views a message.
*/
/* TODO: do we emit a message.reading with no message when we're looking at nothing or don't care? */
@@ -2399,15 +2399,15 @@ emfv_list_done_message_selected(CamelFolder *folder, const char *uid, CamelMimeM
if (emfv->list->seen_id)
g_source_remove(emfv->list->seen_id);
-
+
if (msg && emfv->mark_seen && !emfv->priv->nomarkseen) {
if (emfv->mark_seen_timeout > 0) {
struct mst_t *mst;
-
+
mst = g_new (struct mst_t, 1);
mst->emfv = emfv;
mst->uid = g_strdup (uid);
-
+
emfv->list->seen_id = g_timeout_add_full(G_PRIORITY_DEFAULT_IDLE, emfv->mark_seen_timeout,
(GSourceFunc)do_mark_seen, mst, (GDestroyNotify)mst_free);
} else {
@@ -2425,7 +2425,7 @@ emfv_list_done_message_selected(CamelFolder *folder, const char *uid, CamelMimeM
gtk_html_stream_close(hstream, GTK_HTML_STREAM_OK);
camel_exception_clear(ex);
}
-
+
emfv->priv->nomarkseen = FALSE;
emfv_enable_menus(emfv);
g_object_unref (emfv);
@@ -2440,11 +2440,11 @@ emfv_spin(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPObject *pobject)
if (!strcmp(eb->classid, "spinner")) {
GtkWidget *box, *label;
gchar *msg = g_strdup_printf("<b>%s</b>", _("Retrieving Message..."));
-
+
label = gtk_label_new (NULL);
gtk_label_set_markup ((GtkLabel *)label, msg);
box = gtk_hbox_new (FALSE, 0);
- g_free (msg);
+ g_free (msg);
ep = e_spinner_new ();
e_spinner_set_size ((ESpinner *)ep, GTK_ICON_SIZE_SMALL_TOOLBAR);
@@ -2455,7 +2455,7 @@ emfv_spin(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPObject *pobject)
gtk_container_add ((GtkContainer *)eb, box);
gtk_widget_show_all ((GtkWidget *)eb);
-
+
g_signal_handlers_disconnect_by_func(efh, emfv_spin, NULL);
}
@@ -2595,7 +2595,7 @@ emfv_list_key_press(ETree *tree, int row, ETreePath path, int col, GdkEvent *ev,
default:
return FALSE;
}
-
+
return TRUE;
}
@@ -2605,14 +2605,14 @@ emfv_popup_menu (GtkWidget *widget)
gboolean ret = FALSE;
EMFolderView *emfv = (EMFolderView *)widget;
- /* Try to bring up menu for preview html object.
- Currently we cannot directly connect to html's "popup_menu" signal
+ /* Try to bring up menu for preview html object.
+ Currently we cannot directly connect to html's "popup_menu" signal
since it doesn't work.
*/
-
+
if (GTK_WIDGET_HAS_FOCUS (emfv->preview->formathtml.html))
ret = em_format_html_display_popup_menu (emfv->preview);
-
+
if (!ret)
emfv_popup (emfv, NULL, FALSE);
@@ -2632,7 +2632,7 @@ emfv_format_link_clicked(EMFormatHTMLDisplay *efhd, const char *uri, EMFolderVie
{
if (!strncmp (uri, "##", 2))
return;
-
+
if (!g_ascii_strncasecmp (uri, "mailto:", 7)) {
em_utils_compose_new_message_with_mailto (uri, emfv->folder_uri);
} else if (*uri == '#') {
@@ -2643,9 +2643,9 @@ emfv_format_link_clicked(EMFormatHTMLDisplay *efhd, const char *uri, EMFolderVie
/* ignore */
} else {
GError *err = NULL;
-
+
gnome_url_show (uri, &err);
-
+
if (err) {
g_warning ("gnome_url_show: %s", err->message);
g_error_free (err);
@@ -2818,13 +2818,13 @@ emfv_setting_notify(GConfClient *gconf, guint cnxn_id, GConfEntry *entry, EMFold
char *tkey;
g_return_if_fail (gconf_entry_get_key (entry) != NULL);
-
+
if (!(value = gconf_entry_get_value (entry)))
return;
-
+
tkey = strrchr(entry->key, '/');
g_return_if_fail (tkey != NULL);
-
+
switch(GPOINTER_TO_INT(g_hash_table_lookup(emfv_setting_key, tkey+1))) {
case EMFV_ANIMATE_IMAGES:
em_format_html_display_set_animate(emfv->preview, gconf_value_get_bool (value));
@@ -2854,7 +2854,7 @@ emfv_setting_notify(GConfClient *gconf, guint cnxn_id, GConfEntry *entry, EMFold
case EMFV_MESSAGE_STYLE:
if (EM_FOLDER_VIEW_GET_CLASS (emfv)->update_message_style) {
int style = gconf_value_get_int (value);
-
+
if (style < EM_FORMAT_NORMAL || style > EM_FORMAT_SOURCE)
style = EM_FORMAT_NORMAL;
em_format_set_mode((EMFormat *)emfv->preview, style);
@@ -2880,7 +2880,7 @@ emfv_setting_notify(GConfClient *gconf, guint cnxn_id, GConfEntry *entry, EMFold
while (p) {
EMMailerPrefsHeader *h;
char *xml = (char *)p->data;
-
+
h = em_mailer_prefs_header_from_xml(xml);
if (h && h->enabled) {
em_format_add_header(emf, h->name, EM_FORMAT_HEADER_BOLD);
@@ -2904,45 +2904,45 @@ emfv_setting_notify(GConfClient *gconf, guint cnxn_id, GConfEntry *entry, EMFold
if (emf->message)
em_format_redraw(emf);
- break; }
+ break; }
case EMFV_PHOTO_LOCAL: {
EMFormat *emf = (EMFormat *)emfv->preview;
emf->photo_local = gconf_value_get_bool (value);
- break; }
+ break; }
case EMFV_SHOW_PREVIEW: {
gboolean state_gconf, state_camel;
char *ret;
- /* If emfv->folder hasn't been initialized, do nothing */
+ /* If emfv->folder hasn't been initialized, do nothing */
if (!emfv->folder)
return;
-
+
state_gconf = gconf_value_get_bool (value);
if (state_gconf == FALSE)
emfv_enable_menus (emfv);
-
+
if ((ret = camel_object_meta_get (emfv->folder, "evolution:show_preview"))) {
state_camel = (ret[0] != '0');
g_free (ret);
if (state_gconf == state_camel)
return;
}
-
+
if (camel_object_meta_set (emfv->folder, "evolution:show_preview", state_gconf ? "1" : "0"))
camel_object_state_write (emfv->folder);
em_folder_browser_show_preview ((EMFolderBrowser *)emfv, state_gconf);
bonobo_ui_component_set_prop (emfv->uic, "/commands/ViewPreview", "state", state_gconf ? "1" : "0", NULL);
break; }
- case EMFV_SHOW_DELETED: {
+ case EMFV_SHOW_DELETED: {
gboolean state;
state = gconf_value_get_bool (value);
em_folder_view_set_hide_deleted (emfv, !state);
/* Set the prop only if the component has already been
- * activated. */
- if (emfv->uic)
+ * activated. */
+ if (emfv->uic)
bonobo_ui_component_set_prop (emfv->uic, "/commands/HideDeleted", "state", state ? "0" : "1", NULL);
break; }
case EMFV_THREAD_LIST: {
@@ -3068,9 +3068,9 @@ emfv_on_url_cb (GObject *emitter, const char *url, EMFolderView *emfv)
} else
nice_url = g_strdup_printf (_("Click to open %s"), url);
}
-
+
g_signal_emit (emfv, signals[EMFV_ON_URL], 0, url, nice_url);
-
+
g_free (nice_url);
}
@@ -3078,10 +3078,10 @@ static gboolean
emfv_on_html_button_released_cb (GtkHTML *html, GdkEventButton *button, EMFolderView *emfv)
{
gboolean selected;
-
+
selected = gtk_html_command (html, "is-selection-active");
bonobo_ui_component_set_prop(emfv->uic, "/commands/EditCopy", "sensitive", selected?"1":"0", NULL);
-
+
return FALSE;
}
-
+
diff --git a/mail/em-folder-view.h b/mail/em-folder-view.h
index 75416acd8c..82032477dd 100644
--- a/mail/em-folder-view.h
+++ b/mail/em-folder-view.h
@@ -90,7 +90,7 @@ struct _EMFolderView {
struct _BonoboUIComponent *uic; /* if we're active, this will be set */
GSList *enable_map; /* bonobo menu enable map, entries are 0-terminated EMFolderViewEnable arryas
TODO: should this be on class? */
-
+
int mark_seen_timeout; /* local copy of gconf stuff */
guint mark_seen:1;
guint preview_active:1; /* is preview being used */
@@ -101,10 +101,10 @@ struct _EMFolderView {
struct _EMFolderViewClass {
GtkVBoxClass parent_class;
-
+
/* behaviour definition */
guint update_message_style:1;
-
+
/* if used as a control, used to activate/deactivate custom menu's */
void (*activate)(EMFolderView *, struct _BonoboUIComponent *uic, int state);
diff --git a/mail/em-format-hook.c b/mail/em-format-hook.c
index 019c409b97..8b2f49f91e 100644
--- a/mail/em-format-hook.c
+++ b/mail/em-format-hook.c
@@ -253,7 +253,7 @@ GType
em_format_hook_get_type(void)
{
static GType type = 0;
-
+
if (!type) {
static const GTypeInfo info = {
sizeof(EMFormatHookClass), NULL, NULL, (GClassInitFunc) emfh_class_init, NULL, NULL,
@@ -263,7 +263,7 @@ em_format_hook_get_type(void)
emfh_parent_class = g_type_class_ref(e_plugin_hook_get_type());
type = g_type_register_static(e_plugin_hook_get_type(), "EMFormatHook", &info, 0);
}
-
+
return type;
}
diff --git a/mail/em-format-hook.h b/mail/em-format-hook.h
index b4c7731dd4..387330b69e 100644
--- a/mail/em-format-hook.h
+++ b/mail/em-format-hook.h
@@ -65,9 +65,9 @@ struct _EMFormatHookGroup {
/**
* struct _EMFormatHook - Mail formatter hook.
- *
- * @hook:
- * @groups:
+ *
+ * @hook:
+ * @groups:
*
* The Mail formatter hook links all of the plugin formatter hooks
* into the relevent formatter classes.
diff --git a/mail/em-format-html-display.c b/mail/em-format-html-display.c
index b48d97630a..bc876815dd 100644
--- a/mail/em-format-html-display.c
+++ b/mail/em-format-html-display.c
@@ -121,7 +121,7 @@
#define localtime_r(tp,tmp) (localtime(tp)?(*(tmp)=*localtime(tp),(tmp)):0)
#endif
-#define d(x)
+#define d(x)
#define EFHD_TABLE_OPEN "<table>"
@@ -174,10 +174,10 @@ struct _attach_puri {
/* Embedded Frame */
GtkHTMLEmbedded *html;
-
+
/* Attachment */
EAttachment *attachment;
-
+
/* image stuff */
int fit_width;
int fit_height;
@@ -186,7 +186,7 @@ struct _attach_puri {
/* Optional Text Mem Stream */
CamelStreamMem *mstream;
-
+
/* Signed / Encrypted */
camel_cipher_validity_sign_t sign;
camel_cipher_validity_encrypt_t encrypt;
@@ -260,7 +260,7 @@ efhd_gtkhtml_realise(GtkHTML *html, EMFormatHTMLDisplay *efhd)
}
efhd->formathtml.body_colour = ((r<<16) | (g<< 8) | b) & 0xffffff;
-
+
#undef SCALE
#define SCALE (174)
/* choose a suitably darker or lighter colour */
@@ -359,13 +359,13 @@ efhd_class_init(GObjectClass *klass)
((EMFormatClass *)klass)->format_error = efhd_format_error;
((EMFormatClass *)klass)->format_source = efhd_format_source;
((EMFormatClass *)klass)->format_attachment = efhd_format_attachment;
- ((EMFormatClass *)klass)->format_optional = efhd_format_optional;
+ ((EMFormatClass *)klass)->format_optional = efhd_format_optional;
((EMFormatClass *)klass)->format_secure = efhd_format_secure;
((EMFormatClass *)klass)->complete = efhd_complete;
klass->finalize = efhd_finalise;
- efhd_signals[EFHD_LINK_CLICKED] =
+ efhd_signals[EFHD_LINK_CLICKED] =
g_signal_new("link_clicked",
G_TYPE_FROM_CLASS(klass),
G_SIGNAL_RUN_LAST,
@@ -374,7 +374,7 @@ efhd_class_init(GObjectClass *klass)
g_cclosure_marshal_VOID__POINTER,
G_TYPE_NONE, 1, G_TYPE_POINTER);
- efhd_signals[EFHD_POPUP_EVENT] =
+ efhd_signals[EFHD_POPUP_EVENT] =
g_signal_new("popup_event",
G_TYPE_FROM_CLASS(klass),
G_SIGNAL_RUN_LAST,
@@ -385,7 +385,7 @@ efhd_class_init(GObjectClass *klass)
GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE,
G_TYPE_POINTER, G_TYPE_POINTER);
- efhd_signals[EFHD_ON_URL] =
+ efhd_signals[EFHD_ON_URL] =
g_signal_new("on_url",
G_TYPE_FROM_CLASS(klass),
G_SIGNAL_RUN_LAST,
@@ -433,7 +433,7 @@ efhd_scroll_event(GtkWidget *w, GdkEventScroll *event, EMFormatHTMLDisplay *efhd
}
else if(event->direction == GDK_SCROLL_DOWN)
{
- gtk_html_zoom_out (efhd->formathtml.html);
+ gtk_html_zoom_out (efhd->formathtml.html);
}
return TRUE;
}
@@ -519,7 +519,7 @@ efhd_update_matches(EMFormatHTMLDisplay *efhd)
gtk_label_set_text((GtkLabel *)p->search_matches_label, str);
}
gtk_widget_show((GtkWidget *)p->search_matches_label);
-
+
}
static void
@@ -613,7 +613,7 @@ efhd_search_case_toggled(GtkWidget *w, EMFormatHTMLDisplay *efhd)
efhd_search_response(w, efhd);
}
-static gboolean
+static gboolean
efhd_key_pressed (GtkWidget *w, GdkEventKey *event, EMFormatHTMLDisplay *efhd)
{
if (event->keyval == GDK_Escape){
@@ -696,7 +696,7 @@ em_format_html_get_search_dialog (EMFormatHTMLDisplay *efhd)
gtk_widget_show (p->search_matches_label);
gtk_box_pack_start (GTK_BOX (hbox2), p->search_matches_label, TRUE, TRUE, 0);
p->search_dialog = GTK_HBOX (hbox2);
-
+
p->search_wrap = FALSE;
g_signal_connect (p->search_entry, "activate", G_CALLBACK(efhd_search_response), efhd);
@@ -716,19 +716,19 @@ set_focus_cb (GtkWidget *window, GtkWidget *widget, EMFormatHTMLDisplay *efhd)
{
struct _EMFormatHTMLDisplayPrivate *p = efhd->priv;
GtkWidget *sbar = GTK_WIDGET (p->search_dialog);
-
+
while (widget != NULL && widget != sbar) {
widget = widget->parent;
}
- if (widget != sbar)
+ if (widget != sbar)
efhd_search_destroy(widget, efhd);
}
/**
* em_format_html_display_search:
- * @efhd:
- *
+ * @efhd:
+ *
* Run an interactive search dialogue.
**/
void
@@ -751,8 +751,8 @@ em_format_html_display_search(EMFormatHTMLDisplay *efhd)
}
/**
* em_format_html_display_search_with:
- * @efhd:
- *
+ * @efhd:
+ *
* Run an interactive search dialogue.
**/
void
@@ -762,7 +762,7 @@ em_format_html_display_search_with (EMFormatHTMLDisplay *efhd, char *word)
if (p->search_dialog){
gtk_widget_show ( (GtkWidget *)(p->search_dialog));
-
+
/* Set the query */
gtk_entry_set_text (GTK_ENTRY (p->search_entry), word);
gtk_widget_hide ( (GtkWidget *) p->search_entry_box);
@@ -845,7 +845,7 @@ efhd_html_button_press_event (GtkWidget *widget, GdkEventButton *event, EMFormat
if (uri && !strncmp (uri, "##", 2))
return TRUE;
-
+
if (uri) {
puri = em_format_find_puri((EMFormat *)efhd, uri);
d(printf("poup event, uri = '%s' part = '%p'\n", uri, puri?puri->part:NULL));
@@ -858,7 +858,7 @@ efhd_html_button_press_event (GtkWidget *widget, GdkEventButton *event, EMFormat
return res;
}
-gboolean
+gboolean
em_format_html_display_popup_menu (EMFormatHTMLDisplay *efhd)
{
GtkHTML *html;
@@ -1038,7 +1038,7 @@ efhd_xpkcs7mime_add_cert_table(GtkWidget *vbox, EDList *certlist, struct _smime_
if (info->email)
l = info->email;
}
-
+
if (l) {
GtkWidget *w;
#if defined(HAVE_NSS)
@@ -1070,10 +1070,10 @@ efhd_xpkcs7mime_add_cert_table(GtkWidget *vbox, EDList *certlist, struct _smime_
#endif
n++;
}
-
+
info = info->next;
}
-
+
gtk_box_pack_start((GtkBox *)vbox, (GtkWidget *)table, TRUE, TRUE, 6);
}
@@ -1204,10 +1204,10 @@ efhd_format_secure(EMFormat *emf, CamelStream *stream, CamelMimePart *part, Came
|| valid->sign.status != CAMEL_CIPHER_VALIDITY_SIGN_NONE)) {
char *classid;
struct _smime_pobject *pobj;
-
+
camel_stream_printf (stream, "<table border=0 width=\"100%%\" cellpadding=3 cellspacing=0%s><tr>",
smime_sign_colour[valid->sign.status]);
-
+
classid = g_strdup_printf("smime:///em-format-html/%s/icon/signed", emf->part_id->str);
pobj = (struct _smime_pobject *)em_format_html_add_pobject((EMFormatHTML *)emf, sizeof(*pobj), classid, part, efhd_xpkcs7mime_button);
pobj->valid = camel_cipher_validity_clone(valid);
@@ -1231,7 +1231,7 @@ efhd_image(EMFormatHTML *efh, CamelStream *stream, CamelMimePart *part, EMFormat
{
char *classid;
struct _attach_puri *info;
-
+
classid = g_strdup_printf("image%s", ((EMFormat *)efh)->part_id->str);
info = (struct _attach_puri *)em_format_add_puri((EMFormat *)efh, sizeof(*info), classid, part, efhd_attachment_frame);
em_format_html_add_pobject(efh, sizeof(EMFormatHTMLPObject), classid, part, efhd_attachment_image);
@@ -1393,7 +1393,7 @@ static void efhd_message_prefix(EMFormat *emf, CamelStream *stream, CamelMimePar
now = time(NULL);
if (now > date)
camel_stream_printf(stream, "<b>%s</b>&nbsp;", _("Overdue:"));
-
+
localtime_r(&date, &due_tm);
e_utf8_strftime_fix_am_pm(due_date, sizeof (due_date), _("by %B %d, %Y, %l:%M %p"), &due_tm);
camel_stream_printf(stream, "%s %s", flag, due_date);
@@ -1471,7 +1471,7 @@ static void
efhd_popup_place_widget(GtkMenu *menu, int *x, int *y, gboolean *push_in, gpointer user_data)
{
GtkWidget *w = user_data;
-
+
gdk_window_get_origin(gtk_widget_get_parent_window(w), x, y);
*x += w->allocation.x + w->allocation.width;
*y += w->allocation.y;
@@ -1519,7 +1519,7 @@ efhd_attachment_popup(GtkWidget *w, GdkEventButton *event, struct _attach_puri *
}
e_popup_add_items((EPopup *)emp, menus, NULL, efhd_menu_items_free, info);
-
+
menu = e_popup_create_menu_once((EPopup *)emp, (EPopupTarget *)target, 0);
if (event)
gtk_menu_popup(menu, NULL, NULL, NULL, NULL, event->button, event->time);
@@ -1600,7 +1600,7 @@ static void
efhd_drag_data_delete(GtkWidget *w, GdkDragContext *drag, EMFormatHTMLPObject *pobject)
{
char *uri;
-
+
uri = g_object_get_data((GObject *)w, "e-drag-uri");
if (uri) {
/* NB: this doesn't kill the dnd directory */
@@ -1665,9 +1665,9 @@ efhd_change_cursor(GtkWidget *w, GdkEventCrossing *event, struct _attach_puri *i
static void
efhd_image_fit_width(GtkWidget *widget, GdkEventButton *event, struct _attach_puri *info)
-{
+{
int width;
-
+
width = ((GtkWidget *)((EMFormatHTML *)info->puri.format)->html)->allocation.width - 12;
if (info->shown && info->image) {
@@ -1679,11 +1679,11 @@ efhd_image_fit_width(GtkWidget *widget, GdkEventButton *event, struct _attach_pu
} else {
info->fit_width = 0;
e_cursor_set(widget->window, E_CURSOR_ZOOM_OUT);
- }
+ }
}
} else {
info->fit_width = width;
- e_cursor_set (widget->window, E_CURSOR_ZOOM_IN);
+ e_cursor_set (widget->window, E_CURSOR_ZOOM_IN);
}
}
@@ -1709,7 +1709,7 @@ efhd_image_unallocate (struct _EMFormatPURI * puri)
static gboolean
efhd_attachment_image(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPObject *pobject)
{
- GtkWidget *box;
+ GtkWidget *box;
EMFormatHTMLJob *job;
struct _attach_puri *info;
GdkPixbuf *pixbuf;
@@ -1724,13 +1724,13 @@ efhd_attachment_image(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPObjec
info->image = (GtkImage *)gtk_image_new();
info->html = eb;
info->puri.free = efhd_image_unallocate;
-
+
pixbuf = em_icon_stream_get_image(pobject->classid, info->fit_width, info->fit_height);
if (pixbuf) {
gtk_image_set_from_pixbuf(info->image, pixbuf);
g_object_unref(pixbuf);
} else {
- job = em_format_html_job_new(efh, efhd_write_icon_job, pobject);
+ job = em_format_html_job_new(efh, efhd_write_icon_job, pobject);
job->stream = (CamelStream *)em_icon_stream_new((GtkImage *)info->image, pobject->classid, info->fit_width, info->fit_height, TRUE);
em_format_html_job_queue(efh, job);
}
@@ -1742,10 +1742,10 @@ efhd_attachment_image(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPObjec
gtk_container_add((GtkContainer *)eb, box);
g_signal_connect(eb, "size_allocate", G_CALLBACK(efhd_image_resized), info);
-
+
simple_type = camel_content_type_simple(((CamelDataWrapper *)pobject->part)->mime_type);
camel_strdown(simple_type);
-
+
drag_types[0].target = simple_type;
gtk_drag_source_set(box, GDK_BUTTON1_MASK, drag_types, sizeof(drag_types)/sizeof(drag_types[0]), GDK_ACTION_COPY);
g_free(simple_type);
@@ -1756,7 +1756,7 @@ efhd_attachment_image(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPObjec
g_signal_connect(box, "button_press_event", G_CALLBACK(efhd_image_popup), info);
g_signal_connect(box, "enter-notify-event", G_CALLBACK(efhd_change_cursor), info);
g_signal_connect(box, "popup_menu", G_CALLBACK(efhd_attachment_popup_menu), info);
- g_signal_connect(box, "button-press-event", G_CALLBACK(efhd_image_fit_width), info);
+ g_signal_connect(box, "button-press-event", G_CALLBACK(efhd_image_fit_width), info);
return TRUE;
}
@@ -1802,7 +1802,7 @@ efhd_attachment_button(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPObje
guint count = GPOINTER_TO_UINT(tmp);
char *ext;
char *tmp_file = g_strdup (file);
-
+
if ((ext = strrchr(tmp_file, '.'))) {
ext[0] = 0;
new_file = g_strdup_printf("%s(%d).%s", tmp_file, count++, ext+1);
@@ -1818,17 +1818,17 @@ efhd_attachment_button(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPObje
g_hash_table_insert (efhd->priv->files, g_strdup(file), GUINT_TO_POINTER(1));
}
- /* Store the status of encryption / signature on the attachment for emblem display
+ /* Store the status of encryption / signature on the attachment for emblem display
* FIXME: May not work well always
*/
new->sign = info->sign;
new->encrypt = info->encrypt;
-
+
/* Add the attachment to the bar.*/
e_attachment_bar_add_attachment(E_ATTACHMENT_BAR(efhd->priv->attachment_bar), new);
efhd_attachment_bar_refresh(efhd);
}
-
+
mainbox = gtk_hbox_new(FALSE, 0);
button = gtk_button_new();
@@ -1881,7 +1881,7 @@ efhd_attachment_button(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPObje
}
} else {
GdkPixbuf *pixbuf, *mini;
-
+
if ((pixbuf = e_icon_for_mime_type (simple_type, 24))) {
if ((mini = gdk_pixbuf_scale_simple (pixbuf, 24, 24, GDK_INTERP_BILINEAR))) {
gtk_image_set_from_pixbuf ((GtkImage *) w, mini);
@@ -1946,7 +1946,7 @@ efhd_bonobo_object(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPObject *
CamelDataWrapper *wrapper;
Bonobo_ServerInfo *component;
GtkWidget *embedded;
- Bonobo_PersistStream persist;
+ Bonobo_PersistStream persist;
CORBA_Environment ev;
CamelStreamMem *cstream;
BonoboStream *bstream;
@@ -1961,7 +1961,7 @@ efhd_bonobo_object(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPObject *
CORBA_free(component);
if (embedded == NULL)
return FALSE;
-
+
CORBA_exception_init(&ev);
control_frame = bonobo_widget_get_control_frame((BonoboWidget *)embedded);
@@ -1976,23 +1976,23 @@ efhd_bonobo_object(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPObject *
*/
const CamelInternetAddress *from;
char *from_address;
-
+
from = camel_mime_message_get_from((CamelMimeMessage *)((EMFormat *)efh)->message);
from_address = camel_address_encode((CamelAddress *)from);
bonobo_property_bag_client_set_value_string(prop_bag, "from_address", from_address, &ev);
g_free(from_address);
-
+
Bonobo_Unknown_unref(prop_bag, &ev);
}
-
+
persist = (Bonobo_PersistStream)Bonobo_Unknown_queryInterface(bonobo_widget_get_objref((BonoboWidget *)embedded),
"IDL:Bonobo/PersistStream:1.0", &ev);
if (persist == CORBA_OBJECT_NIL) {
g_object_ref_sink(embedded);
- CORBA_exception_free(&ev);
+ CORBA_exception_free(&ev);
return FALSE;
}
-
+
/* Write the data to a CamelStreamMem... */
cstream = (CamelStreamMem *)camel_stream_mem_new();
wrapper = camel_medium_get_content_object((CamelMedium *)pobject->part);
@@ -2003,11 +2003,11 @@ efhd_bonobo_object(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPObject *
} else {
camel_data_wrapper_decode_to_stream (wrapper, (CamelStream *) cstream);
}
-
+
/* ...convert the CamelStreamMem to a BonoboStreamMem... */
bstream = bonobo_stream_mem_create((char *)cstream->buffer->data, cstream->buffer->len, TRUE, FALSE);
camel_object_unref(cstream);
-
+
/* ...and hydrate the PersistStream from the BonoboStream. */
Bonobo_PersistStream_load(persist,
bonobo_object_corba_objref(BONOBO_OBJECT (bstream)),
@@ -2015,17 +2015,17 @@ efhd_bonobo_object(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPObject *
bonobo_object_unref(BONOBO_OBJECT (bstream));
Bonobo_Unknown_unref(persist, &ev);
CORBA_Object_release(persist, &ev);
-
+
if (ev._major != CORBA_NO_EXCEPTION) {
g_object_ref_sink(embedded);
- CORBA_exception_free(&ev);
+ CORBA_exception_free(&ev);
return FALSE;
}
CORBA_exception_free(&ev);
-
+
gtk_widget_show(embedded);
gtk_container_add(GTK_CONTAINER (eb), embedded);
-
+
return TRUE;
}
@@ -2099,7 +2099,7 @@ attachment_bar_arrow_clicked(GtkWidget *w, EMFormatHTMLDisplay *efhd)
} else {
gtk_widget_hide(efhd->priv->attachment_box);
gtk_widget_show(efhd->priv->forward);
- gtk_widget_hide(efhd->priv->down);
+ gtk_widget_hide(efhd->priv->down);
}
}
@@ -2133,17 +2133,17 @@ efhd_bar_popup_position(GtkMenu *menu, int *x, int *y, gboolean *push_in, gpoint
GnomeIconList *icon_list = user_data;
GList *selection;
GnomeCanvasPixbuf *image;
-
+
gdk_window_get_origin (((GtkWidget*) bar)->window, x, y);
-
+
selection = gnome_icon_list_get_selection (icon_list);
if (selection == NULL)
return;
-
+
image = gnome_icon_list_get_icon_pixbuf_item (icon_list, GPOINTER_TO_INT(selection->data));
if (image == NULL)
return;
-
+
/* Put menu to the center of icon. */
*x += (int)(image->item.x1 + image->item.x2) / 2;
*y += (int)(image->item.y1 + image->item.y2) / 2;
@@ -2157,7 +2157,7 @@ efhd_bar_save_selected(EPopup *ep, EPopupItem *item, void *data)
GSList *parts = NULL;
attachment_parts = e_attachment_bar_get_selected(E_ATTACHMENT_BAR(efhd->priv->attachment_bar));
-
+
for (tmp = attachment_parts; tmp; tmp=tmp->next)
parts = g_slist_prepend(parts, ((EAttachment *)tmp->data)->body);
@@ -2199,11 +2199,11 @@ efhd_bar_button_press_event(EAttachmentBar *bar, GdkEventButton *event, EMFormat
/* Add something like save-selected, foward selected attachments in a mail etc....*/
list = e_attachment_bar_get_selected(bar);
-
+
/* Lets not propagate any more the r-click which is intended to us*/
if ( g_slist_length (list) == 0)
return TRUE;
-
+
target = (EPopupTarget *)em_popup_target_new_attachments(emp, list);
for (i=0; i<2; i++)
menus = g_slist_prepend(menus, &efhd_bar_menu_items[i]);
@@ -2220,7 +2220,7 @@ efhd_bar_button_press_event(EAttachmentBar *bar, GdkEventButton *event, EMFormat
}
static gboolean
-efhd_bar_popup_menu_event (EAttachmentBar *bar, EMFormat *emf)
+efhd_bar_popup_menu_event (EAttachmentBar *bar, EMFormat *emf)
{
return efhd_bar_button_press_event(bar, NULL, emf);
}
@@ -2241,12 +2241,12 @@ efhd_attachment_bar_refresh (EMFormatHTMLDisplay *efhd)
txt = g_strdup_printf(ngettext("%d at_tachment", "%d at_tachments", nattachments), nattachments);
gtk_label_set_text_with_mnemonic ((GtkLabel *)efhd->priv->label, txt);
g_free (txt);
-
+
/* Show the bar even when the first attachment is added */
if (nattachments == 1) {
gtk_widget_show_all (efhd->priv->attachment_area);
gtk_label_set_text_with_mnemonic ((GtkLabel *)efhd->priv->save_txt, _("S_ave"));
-
+
if (efhd->priv->show_bar) {
gtk_widget_show(efhd->priv->down);
gtk_widget_hide(efhd->priv->forward);
@@ -2256,7 +2256,7 @@ efhd_attachment_bar_refresh (EMFormatHTMLDisplay *efhd)
gtk_widget_hide(efhd->priv->attachment_box);
}
} else if (nattachments > 1) {
- gtk_label_set_text_with_mnemonic ((GtkLabel *)efhd->priv->save_txt, _("S_ave All"));
+ gtk_label_set_text_with_mnemonic ((GtkLabel *)efhd->priv->save_txt, _("S_ave All"));
}
}
}
@@ -2270,7 +2270,7 @@ efhd_bar_resize(GtkWidget *w, GtkAllocation *event, EMFormatHTML *efh)
gtk_widget_size_request (efhd->priv->attachment_bar, &req);
width = ((GtkWidget *) efh->html)->allocation.width - 16;
-
+
/* Update the width of the bar when the width is greater than 1*/
if (width > 0)
e_attachment_bar_set_width(E_ATTACHMENT_BAR(efhd->priv->attachment_bar), width);
@@ -2289,7 +2289,7 @@ efhd_bar_scroll_event(GtkWidget *w, GdkEventScroll *event, EMFormatHTMLDisplay *
return TRUE;
}
-gboolean
+gboolean
efhd_mnemonic_show_bar (GtkWidget *widget, gboolean focus, GtkWidget *efhd)
{
attachment_bar_arrow_clicked (NULL, (EMFormatHTMLDisplay *)efhd);
@@ -2309,7 +2309,7 @@ efhd_add_bar(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPObject *pobjec
scroll = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
((EAttachmentBar *)priv->attachment_bar)->expand = TRUE;
-
+
priv->forward = gtk_arrow_new(GTK_ARROW_RIGHT, GTK_SHADOW_NONE);
priv->down = gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_NONE);
hbox3 = gtk_hbox_new (FALSE, 0);
@@ -2345,10 +2345,10 @@ efhd_add_bar(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPObject *pobjec
/* FIXME: What if the text is more?. Should we reduce the text with appending ...?
* or resize the bar? How to figure out that, it needs more space? */
bar_width = ((GtkWidget *)efh->html)->parent->allocation.width - /* FIXME */16;
- gtk_widget_set_size_request (priv->attachment_bar,
+ gtk_widget_set_size_request (priv->attachment_bar,
bar_width > 0 ? bar_width : 0,
84 /* FIXME: Default show only one row, Dont hardcode size*/);
-
+
vbox = gtk_vbox_new (FALSE, 0);
gtk_box_pack_start ((GtkBox *)vbox, hbox2, FALSE, FALSE, 2);
gtk_box_pack_start ((GtkBox *)vbox, priv->attachment_box, TRUE, TRUE, 2);
@@ -2359,7 +2359,7 @@ efhd_add_bar(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPObject *pobjec
/* Lets hide it by default and show only when there are attachments */
priv->attachment_area = vbox;
gtk_widget_hide_all (priv->attachment_area);
-
+
g_signal_connect (priv->arrow, "clicked", G_CALLBACK(attachment_bar_arrow_clicked), efh);
g_signal_connect (priv->attachment_bar, "button_press_event", G_CALLBACK(efhd_bar_button_press_event), efhd);
g_signal_connect (priv->attachment_bar, "popup-menu", G_CALLBACK(efhd_bar_popup_menu_event), efhd);
@@ -2443,16 +2443,16 @@ efhd_format_attachment(EMFormat *emf, CamelStream *stream, CamelMimePart *part,
g_free(classid);
}
-static void
+static void
efhd_optional_button_show (GtkWidget *widget, GtkWidget *w)
{
GtkWidget *label = g_object_get_data (G_OBJECT (widget), "text-label");
-
+
if (GTK_WIDGET_VISIBLE (w)) {
gtk_widget_hide (w);
gtk_label_set_text_with_mnemonic (GTK_LABEL (label), _("View _Unformatted"));
} else {
- gtk_label_set_text_with_mnemonic (GTK_LABEL (label), _("Hide _Unformatted"));
+ gtk_label_set_text_with_mnemonic (GTK_LABEL (label), _("Hide _Unformatted"));
gtk_widget_show (w);
}
}
@@ -2480,9 +2480,9 @@ efhd_attachment_optional(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPOb
if (!info || info->forward) {
g_warning ("unable to expand the attachment\n");
return TRUE;
- }
+ }
- scroll = gtk_scrolled_window_new (NULL, NULL);
+ scroll = gtk_scrolled_window_new (NULL, NULL);
mainbox = gtk_hbox_new(FALSE, 0);
button = gtk_button_new();
@@ -2500,7 +2500,7 @@ efhd_attachment_optional(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPOb
gtk_widget_set_sensitive(button, FALSE);
GTK_WIDGET_UNSET_FLAGS(button, GTK_CAN_FOCUS);
}
-
+
vbox = gtk_vbox_new (FALSE, 0);
gtk_box_pack_start(GTK_BOX (mainbox), button, FALSE, FALSE, 6);
@@ -2513,7 +2513,7 @@ efhd_attachment_optional(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPOb
gtk_box_pack_start (GTK_BOX (hbox), gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_NONE), TRUE, TRUE, 2);
gtk_widget_show_all (hbox);
gtk_container_add (GTK_CONTAINER (button), GTK_WIDGET (hbox));
-
+
a11y = gtk_widget_get_accessible (button);
atk_object_set_name (a11y, _("Attachment"));
@@ -2546,7 +2546,7 @@ efhd_attachment_optional(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPOb
if (!info->shown)
gtk_widget_hide (scroll);
-
+
gtk_widget_show (vbox);
gtk_container_add(GTK_CONTAINER (eb), vbox);
info->handle = NULL;
@@ -2560,7 +2560,7 @@ efhd_format_optional(EMFormat *emf, CamelStream *fstream, CamelMimePart *part, C
char *classid, *html;
struct _attach_puri *info;
CamelStream *stream = ((CamelStreamFilter *) fstream)->source;
-
+
classid = g_strdup_printf("optional%s", emf->part_id->str);
info = (struct _attach_puri *)em_format_add_puri(emf, sizeof(*info), classid, part, efhd_attachment_frame);
em_format_html_add_pobject((EMFormatHTML *)emf, sizeof(EMFormatHTMLPObject), classid, part, efhd_attachment_optional);
@@ -2584,7 +2584,7 @@ efhd_format_optional(EMFormat *emf, CamelStream *fstream, CamelMimePart *part, C
"</font></h3></td></tr></table>\n");
camel_stream_write_string(stream,
"<table cellspacing=0 cellpadding=0>"
- "<tr>");
+ "<tr>");
camel_stream_printf(stream, "<td><object classid=\"%s\"></object></td></tr></table>", classid);
g_free(html);
diff --git a/mail/em-format-html.c b/mail/em-format-html.c
index 400cf5fad5..228a8aa3ef 100644
--- a/mail/em-format-html.c
+++ b/mail/em-format-html.c
@@ -156,7 +156,7 @@ efh_init(GObject *o)
gtk_html_set_default_content_type(efh->html, "text/html; charset=utf-8");
gtk_html_set_editable(efh->html, FALSE);
-
+
g_signal_connect(efh->html, "destroy", G_CALLBACK(efh_gtkhtml_destroy), efh);
g_signal_connect(efh->html, "url_requested", G_CALLBACK(efh_url_requested), efh);
g_signal_connect(efh->html, "object_requested", G_CALLBACK(efh_object_requested), efh);
@@ -236,7 +236,7 @@ efh_class_init(GObjectClass *klass)
((EMFormatClass *)klass)->format_attachment = efh_format_attachment;
((EMFormatClass *)klass)->format_secure = efh_format_secure;
((EMFormatClass *)klass)->busy = efh_busy;
-
+
klass->finalize = efh_finalise;
}
@@ -526,7 +526,7 @@ static void emfh_gethttp(struct _EMFormatHTMLJob *job, int cancelled)
} else if (n < 0 && costream) {
camel_data_cache_remove(emfh_http_cache, EMFH_HTTP_CACHE_PATH, job->u.uri, NULL);
camel_object_unref(costream);
- costream = NULL;
+ costream = NULL;
}
} while (n>0);
@@ -584,7 +584,7 @@ efh_url_requested(GtkHTML *html, const char *url, GtkHTMLStream *handle, EMForma
char *data = NULL;
gsize length = 0;
gboolean status;
-
+
status = g_file_get_contents (url, &data, &length, NULL);
if (status)
gtk_html_stream_write (handle, data, length);
@@ -669,13 +669,13 @@ efh_format_secure(EMFormat *emf, CamelStream *stream, CamelMimePart *part, Camel
char *classid, *iconpath;
const char *icon;
CamelMimePart *iconpart;
-
+
camel_stream_printf (stream, "<table border=0 width=\"100%%\" cellpadding=3 cellspacing=0%s><tr>",
smime_sign_colour[valid->sign.status]);
-
+
classid = g_strdup_printf("smime:///em-format-html/%s/icon/signed", emf->part_id->str);
camel_stream_printf(stream, "<td valign=\"top\"><img src=\"%s\"></td><td valign=\"top\" width=\"100%%\">", classid);
-
+
if (valid->sign.status != 0)
icon = smime_sign_table[valid->sign.status].icon;
else
@@ -700,7 +700,7 @@ efh_format_secure(EMFormat *emf, CamelStream *stream, CamelMimePart *part, Camel
camel_stream_printf(stream, "</td></tr></table>");
}
}
-
+
static void
efh_text_plain(EMFormatHTML *efh, CamelStream *stream, CamelMimePart *part, EMFormatHandler *info)
{
@@ -715,7 +715,7 @@ efh_text_plain(EMFormatHTML *efh, CamelStream *stream, CamelMimePart *part, EMFo
struct _EMFormatHTMLCache *efhc;
flags = efh->text_html_flags;
-
+
dw = camel_medium_get_content_object((CamelMedium *)part);
/* Check for RFC 2646 flowed text. */
@@ -809,16 +809,16 @@ efh_text_enriched(EMFormatHTML *efh, CamelStream *stream, CamelMimePart *part, E
CamelMimeFilter *enriched;
CamelDataWrapper *dw;
guint32 flags = 0;
-
+
dw = camel_medium_get_content_object((CamelMedium *)part);
-
+
if (!strcmp(info->mime_type, "text/richtext")) {
flags = CAMEL_MIME_FILTER_ENRICHED_IS_RICHTEXT;
camel_stream_write_string( stream, "\n<!-- text/richtext -->\n");
} else {
camel_stream_write_string( stream, "\n<!-- text/enriched -->\n");
}
-
+
enriched = camel_mime_filter_enriched_new(flags);
filtered_stream = camel_stream_filter_new_with_stream (stream);
camel_stream_filter_add(filtered_stream, enriched);
@@ -829,7 +829,7 @@ efh_text_enriched(EMFormatHTML *efh, CamelStream *stream, CamelMimePart *part, E
efh->frame_colour & 0xffffff, efh->content_colour & 0xffffff);
em_format_format_text((EMFormat *)efh, (CamelStream *)filtered_stream, (CamelDataWrapper *)part);
-
+
camel_object_unref(filtered_stream);
camel_stream_write_string(stream, "</div>");
}
@@ -880,7 +880,7 @@ efh_text_html(EMFormatHTML *efh, CamelStream *stream, CamelMimePart *part, EMFor
} else {
if (strchr(location, ':') == NULL && ((EMFormat *)efh)->base != NULL) {
CamelURL *uri;
-
+
uri = camel_url_new_with_base(((EMFormat *)efh)->base, location);
cid = camel_url_to_string(uri, 0);
camel_url_free(uri);
@@ -918,7 +918,7 @@ efh_message_external(EMFormatHTML *efh, CamelStream *stream, CamelMimePart *part
camel_stream_printf(stream, _("Malformed external-body part."));
return;
}
-
+
if (!g_ascii_strcasecmp(access_type, "ftp") ||
!g_ascii_strcasecmp(access_type, "anon-ftp")) {
const char *name, *site, *dir, *mode;
@@ -931,7 +931,7 @@ efh_message_external(EMFormatHTML *efh, CamelStream *stream, CamelMimePart *part
mode = camel_content_type_param (type, "mode");
if (name == NULL || site == NULL)
goto fail;
-
+
/* Generate the path. */
if (dir)
path = g_strdup_printf("/%s/%s", *dir=='/'?dir+1:dir, name);
@@ -942,18 +942,18 @@ efh_message_external(EMFormatHTML *efh, CamelStream *stream, CamelMimePart *part
sprintf(ftype, ";type=%c", *mode);
else
ftype[0] = 0;
-
+
url = g_strdup_printf ("ftp://%s%s%s", site, path, ftype);
g_free (path);
desc = g_strdup_printf (_("Pointer to FTP site (%s)"), url);
} else if (!g_ascii_strcasecmp (access_type, "local-file")) {
const char *name, *site;
-
+
name = camel_content_type_param (type, "name");
site = camel_content_type_param (type, "site");
if (name == NULL)
goto fail;
-
+
url = g_filename_to_uri (name, NULL, NULL);
if (site)
desc = g_strdup_printf(_("Pointer to local file (%s) valid at site \"%s\""), name, site);
@@ -962,13 +962,13 @@ efh_message_external(EMFormatHTML *efh, CamelStream *stream, CamelMimePart *part
} else if (!g_ascii_strcasecmp (access_type, "URL")) {
const char *urlparam;
char *s, *d;
-
+
/* RFC 2017 */
-
+
urlparam = camel_content_type_param (type, "url");
if (urlparam == NULL)
goto fail;
-
+
/* For obscure MIMEy reasons, the URL may be split into words */
url = g_strdup (urlparam);
s = d = url;
@@ -1075,8 +1075,8 @@ efh_multipart_related(EMFormat *emf, CamelStream *stream, CamelMimePart *part, c
em_format_format_source(emf, stream, part);
return;
}
-
- nparts = camel_multipart_get_number(mp);
+
+ nparts = camel_multipart_get_number(mp);
content_type = camel_mime_part_get_content_type(part);
start = camel_content_type_param (content_type, "start");
if (start && strlen(start)>2) {
@@ -1086,11 +1086,11 @@ efh_multipart_related(EMFormat *emf, CamelStream *stream, CamelMimePart *part, c
/* strip <>'s */
len = strlen (start) - 2;
start++;
-
+
for (i=0; i<nparts; i++) {
body_part = camel_multipart_get_part(mp, i);
cid = camel_mime_part_get_content_id(body_part);
-
+
if (cid && !strncmp(cid, start, len) && strlen(cid) == len) {
display_part = body_part;
displayid = i;
@@ -1100,12 +1100,12 @@ efh_multipart_related(EMFormat *emf, CamelStream *stream, CamelMimePart *part, c
} else {
display_part = camel_multipart_get_part(mp, 0);
}
-
+
if (display_part == NULL) {
em_format_part_as(emf, stream, part, "multipart/mixed");
return;
}
-
+
em_format_push_level(emf);
partidlen = emf->part_id->len;
@@ -1120,7 +1120,7 @@ efh_multipart_related(EMFormat *emf, CamelStream *stream, CamelMimePart *part, c
d(printf(" part '%s' '%s' added\n", puri->uri?puri->uri:"", puri->cid));
}
}
-
+
g_string_append_printf(emf->part_id, "related.%d", displayid);
em_format_part(emf, stream, display_part);
g_string_truncate(emf->part_id, partidlen);
@@ -1228,7 +1228,7 @@ static void efh_format_do(struct _mail_msg *mm)
int cancelled = FALSE;
CamelURL *base;
- if (m->format->html == NULL)
+ if (m->format->html == NULL)
return;
camel_stream_printf((CamelStream *)m->estream,
@@ -1401,7 +1401,7 @@ efh_format_timeout(struct _format_msg *m)
p->last_part = m->message;
}
-
+
efh->priv->format_id = m->msg.seq;
e_thread_put(mail_thread_new, (EMsg *)m);
}
@@ -1471,13 +1471,13 @@ efh_format_text_header (EMFormatHTML *emfh, CamelStream *stream, const char *lab
{
char *mhtml = NULL;
const char *fmt, *html;
-
+
if (value == NULL)
return;
-
+
while (*value == ' ')
value++;
-
+
if (flags & EM_FORMAT_HTML_HEADER_HTML)
html = value;
else
@@ -1494,8 +1494,8 @@ efh_format_text_header (EMFormatHTML *emfh, CamelStream *stream, const char *lab
} else if (flags & EM_FORMAT_HTML_HEADER_NODEC) {
fmt = "<tr><th align=\"right\" valign=\"top\" nowrap>%s<b>&nbsp;</b></th><td valign=top>%s</td></tr>";
} else {
-
- if (flags & EM_FORMAT_HEADER_BOLD)
+
+ if (flags & EM_FORMAT_HEADER_BOLD)
fmt = "<tr><th align=\"right\" valign=\"top\" nowrap>%s:<b>&nbsp;</b></th><td>%s</td></tr>";
else
fmt = "<tr><td align=\"right\" valign=\"top\" nowrap>%s:<b>&nbsp;</b></td><td>%s</td></tr>";
@@ -1528,18 +1528,18 @@ efh_format_address (EMFormatHTML *efh, GString *out, struct _camel_header_addres
|| (!strcmp (field, _("Bcc")) && !(efh->header_wrap_flags & EM_FORMAT_HTML_HEADER_BCC)))
wrap = TRUE;
}
-
+
while (a) {
if (a->name)
name = camel_text_to_html (a->name, flags, 0);
else
name = NULL;
-
+
switch (a->type) {
case CAMEL_HEADER_ADDRESS_NAME:
if (name && *name) {
char *real, *mailaddr;
-
+
g_string_append_printf (out, "%s &lt;", name);
/* rfc2368 for mailto syntax and url encoding extras */
if ((real = camel_header_encode_phrase ((unsigned char *)a->name))) {
@@ -1557,7 +1557,7 @@ efh_format_address (EMFormatHTML *efh, GString *out, struct _camel_header_addres
g_string_append_printf (out, "<a href=\"mailto:%s\">%s</a>", mailto, addr);
g_free (mailto);
g_free (addr);
-
+
if (name && *name)
g_string_append (out, "&gt;");
break;
@@ -1570,7 +1570,7 @@ efh_format_address (EMFormatHTML *efh, GString *out, struct _camel_header_addres
g_warning ("Invalid address type");
break;
}
-
+
g_free (name);
i++;
@@ -1580,12 +1580,12 @@ efh_format_address (EMFormatHTML *efh, GString *out, struct _camel_header_addres
/* Let us add a '...' if we have more addresses */
if (limit > 0 && wrap && a && (i>(limit-1))) {
-
+
if (!strcmp (field, _("To"))) {
-
+
g_string_append (out, "<a href=\"##TO##\">...</a>");
str = g_strdup_printf ("<a href=\"##TO##\"><img src=\"%s/plus.png\" /></a> ", EVOLUTION_ICONSDIR);
-
+
return str;
}
else if (!strcmp (field, _("Cc"))) {
@@ -1601,12 +1601,12 @@ efh_format_address (EMFormatHTML *efh, GString *out, struct _camel_header_addres
return str;
}
}
-
+
}
if (limit > 0 && i>(limit)) {
-
+
if (!strcmp (field, _("To"))) {
str = g_strdup_printf ("<a href=\"##TO##\"><img src=\"%s/minus.png\" /></a> ", EVOLUTION_ICONSDIR);
}
@@ -1619,7 +1619,7 @@ efh_format_address (EMFormatHTML *efh, GString *out, struct _camel_header_addres
}
return str;
-
+
}
static void
@@ -1630,26 +1630,26 @@ efh_format_header(EMFormat *emf, CamelStream *stream, CamelMedium *part, struct
const char *label, *txt;
int addrspec = 0, i;
char *str_field = NULL;
-
+
name = alloca(strlen(header->name)+1);
strcpy(name, header->name);
camel_strdown(name);
-
+
for (i = 0; addrspec_hdrs[i]; i++) {
if (!strcmp(name, addrspec_hdrs[i])) {
addrspec = 1;
break;
}
}
-
+
if (addrspec) {
struct _camel_header_address *addrs;
GString *html;
char *img;
-
+
if (!(addrs = camel_header_address_decode(header->value, emf->charset ? emf->charset : emf->default_charset)))
return;
-
+
/* canonicalise the header name... first letter is
* capitalised and any letter following a '-' also gets
* capitalised */
@@ -1660,15 +1660,15 @@ efh_format_header(EMFormat *emf, CamelStream *stream, CamelMedium *part, struct
if (p[-1] == '-' && *p >= 'a' && *p <= 'z')
*p -= 0x20;
} while (*p);
-
+
label = _(name);
-
+
html = g_string_new("");
img = efh_format_address(efh, html, addrs, (char *)label);
-
+
if (img) {
// str_field = g_strdup_printf ("<table><tr><td valign=top>%s</td><td valign=top><b>%s:</b></td></tr></table>", img, label);
- str_field = g_strdup_printf ("%s%s:", img, label);
+ str_field = g_strdup_printf ("%s%s:", img, label);
label = str_field;
flags |= EM_FORMAT_HTML_HEADER_NODEC;
g_free (img);
@@ -1676,7 +1676,7 @@ efh_format_header(EMFormat *emf, CamelStream *stream, CamelMedium *part, struct
camel_header_address_unref(addrs);
txt = value = html->str;
g_string_free(html, FALSE);
-
+
flags |= EM_FORMAT_HEADER_BOLD | EM_FORMAT_HTML_HEADER_HTML;
} else if (!strcmp(name, "subject")) {
txt = value = camel_header_decode_string (header->value, charset);
@@ -1691,23 +1691,23 @@ efh_format_header(EMFormat *emf, CamelStream *stream, CamelMedium *part, struct
int msg_offset, local_tz;
time_t msg_date;
struct tm local;
-
+
txt = header->value;
while (*txt == ' ')
txt++;
-
+
/* Show the local timezone equivalent in brackets if the sender is remote */
msg_date = camel_header_decode_date(txt, &msg_offset);
e_localtime_with_offset(msg_date, &local, &local_tz);
-
+
/* Convert message offset to minutes (e.g. -0400 --> -240) */
msg_offset = ((msg_offset / 100) * 60) + (msg_offset % 100);
/* Turn into offset from localtime, not UTC */
msg_offset -= local_tz / 60;
-
+
if (msg_offset) {
char buf[256], *html;
-
+
msg_offset += (local.tm_hour * 60) + local.tm_min;
if (msg_offset >= (24 * 60) || msg_offset < 0) {
/* translators: strftime format for local time equivalent in Date header display, with day */
@@ -1720,18 +1720,18 @@ efh_format_header(EMFormat *emf, CamelStream *stream, CamelMedium *part, struct
e_utf8_strftime(buf, sizeof(buf), msg, &local);
g_free(msg);
}
-
+
html = camel_text_to_html(txt, efh->text_html_flags, 0);
txt = value = g_strdup_printf("%s %s", html, buf);
g_free(html);
flags |= EM_FORMAT_HTML_HEADER_HTML;
}
-
+
if (!strcmp(name, "date"))
label = _("Date");
else
label = "Resent-Date";
-
+
flags |= EM_FORMAT_HEADER_BOLD;
} else if (!strcmp(name, "newsgroups")) {
GString *html;
@@ -1751,7 +1751,7 @@ efh_format_header(EMFormat *emf, CamelStream *stream, CamelMedium *part, struct
}
camel_header_newsgroups_free(ng);
- label = _("Newsgroups");
+ label = _("Newsgroups");
txt = html->str;
g_string_free(html, FALSE);
flags |= EM_FORMAT_HEADER_BOLD|EM_FORMAT_HTML_HEADER_HTML;
@@ -1759,9 +1759,9 @@ efh_format_header(EMFormat *emf, CamelStream *stream, CamelMedium *part, struct
txt = value = camel_header_decode_string(header->value, charset);
label = header->name;
}
-
+
efh_format_text_header(efh, stream, label, txt, flags);
-
+
g_free(value);
g_free (str_field);
}
@@ -1782,13 +1782,13 @@ efh_format_headers(EMFormatHTML *efh, CamelStream *stream, CamelMedium *part)
gsize face_header_len = 0;
char *header_sender = NULL, *header_from = NULL, *name;
gboolean mail_from_delegate = FALSE;
-
+
if (!part)
return;
ct = camel_mime_part_get_content_type((CamelMimePart *)part);
charset = camel_content_type_param (ct, "charset");
- charset = e_iconv_charset_name(charset);
+ charset = e_iconv_charset_name(charset);
if (!efh->simple_headers)
camel_stream_printf(stream,
@@ -1804,24 +1804,24 @@ efh_format_headers(EMFormatHTML *efh, CamelStream *stream, CamelMedium *part)
if (!(addrs = camel_header_address_decode(header->value, emf->charset ? emf->charset : emf->default_charset)))
return;
-
+
html = g_string_new("");
name = efh_format_address(efh, html, addrs, header->name);
header_sender= html->str;
camel_header_address_unref(addrs);
-
+
g_string_free(html, FALSE);
g_free (name);
}
-
+
if(!g_ascii_strcasecmp (header->name, "From")) {
struct _camel_header_address *addrs;
GString *html;
-
+
if (!(addrs = camel_header_address_decode(header->value, emf->charset ? emf->charset : emf->default_charset)))
return;
-
+
html = g_string_new("");
name = efh_format_address(efh, html, addrs, header->name);
@@ -1834,18 +1834,18 @@ efh_format_headers(EMFormatHTML *efh, CamelStream *stream, CamelMedium *part)
if (!g_ascii_strcasecmp (header->name, "X-Evolution-Mail-From-Delegate"))
mail_from_delegate = TRUE;
-
+
if (header_sender && header_from && mail_from_delegate) {
camel_stream_printf(stream, "<tr><td><table border=1 width=\"100%%\" cellspacing=2 cellpadding=2><tr>");
camel_stream_printf(stream, "<td align=\"left\" width=\"100%%\">");
/* To translators: This message suggests to the receipients that the sender of the mail is
different from the one listed in From field.
- */
+ */
camel_stream_printf(stream, _("This message was sent by <b>%s</b> on behalf of <b>%s</b>"), header_sender, header_from);
camel_stream_printf(stream, "</td></tr></table></td></tr>");
break;
}
-
+
header = header->next;
}
@@ -1869,21 +1869,21 @@ efh_format_headers(EMFormatHTML *efh, CamelStream *stream, CamelMedium *part)
header = ((CamelMimePart *)part)->headers;
mailer = !g_ascii_strcasecmp (h->name, "X-Evolution-Mailer");
-
+
while (header) {
if (emf->show_photo && !photo_name && !g_ascii_strcasecmp (header->name, "From"))
photo_name = header->value;
-
+
if (!mailer_shown && mailer && (!g_ascii_strcasecmp (header->name, "X-Mailer") ||
!g_ascii_strcasecmp (header->name, "User-Agent") ||
!g_ascii_strcasecmp (header->name, "X-Newsreader"))) {
struct _camel_header_raw xmailer;
-
+
xmailer.name = "X-Evolution-Mailer";
xmailer.value = header->value;
mailer_shown = TRUE;
-
+
efh_format_header (emf, stream, part, &xmailer, h->flags, charset);
if (strstr(header->value, "Evolution"))
have_icon = TRUE;
@@ -1906,14 +1906,14 @@ efh_format_headers(EMFormatHTML *efh, CamelStream *stream, CamelMedium *part)
h = h->next;
}
}
-
+
if (!efh->simple_headers) {
camel_stream_printf(stream, "</table></td>");
if (photo_name) {
char *classid;
CamelMimePart *photopart;
-
+
cia = camel_internet_address_new();
camel_address_decode((CamelAddress *) cia, (const char *) photo_name);
photopart = em_utils_contact_photo (cia, emf->photo_local);
@@ -1932,8 +1932,8 @@ efh_format_headers(EMFormatHTML *efh, CamelStream *stream, CamelMedium *part)
g_free(classid);
}
camel_object_unref(cia);
- }
-
+ }
+
if (!contact_has_photo && face_decoded) {
char *classid;
CamelMimePart *part;
@@ -1994,7 +1994,7 @@ static void efh_format_message(EMFormat *emf, CamelStream *stream, CamelMimePart
handle = em_format_find_handler(emf, "x-evolution/message/post-header");
if (handle)
handle->handler(emf, stream, part, handle);
-
+
camel_stream_printf(stream, EM_FORMAT_HTML_VPAD);
em_format_part(emf, stream, part);
@@ -2019,11 +2019,11 @@ static void efh_format_source(EMFormat *emf, CamelStream *stream, CamelMimePart
| CAMEL_MIME_FILTER_TOHTML_PRESERVE_8BIT, 0);
camel_stream_filter_add(filtered_stream, html_filter);
camel_object_unref(html_filter);
-
+
camel_stream_write_string((CamelStream *)stream, EFH_TABLE_OPEN "<tr><td><tt>");
em_format_format_text(emf, (CamelStream *)filtered_stream, dw);
camel_object_unref(filtered_stream);
-
+
camel_stream_write_string(stream, "</tt></td></tr></table>");
}
diff --git a/mail/em-format-html.h b/mail/em-format-html.h
index 025bb9893f..d0a6655dc3 100644
--- a/mail/em-format-html.h
+++ b/mail/em-format-html.h
@@ -57,7 +57,7 @@ typedef struct _EMFormatHTMLJob EMFormatHTMLJob;
/**
* struct _EMFormatHTMLJob - A formatting job.
- *
+ *
* @next: Double linked list header.
* @prev: Double linked list header.
* @format: Set by allocation function.
@@ -68,7 +68,7 @@ typedef struct _EMFormatHTMLJob EMFormatHTMLJob;
* cancelled the display. So the callback should free any extra data
* it allocated every time it is called.
* @u: Union data, free for caller to use.
- *
+ *
* This object is used to queue a long-running-task which cannot be
* processed in the primary thread. When its turn comes, the job will
* be de-queued and the @callback invoked to perform its processing,
@@ -107,7 +107,7 @@ typedef gboolean (*EMFormatHTMLPObjectFunc)(EMFormatHTML *md, struct _GtkHTMLEmb
/**
* struct _EMFormatHTMLPObject - Pending object.
- *
+ *
* @next: Double linked list header.
* @prev: Double linked list header.
* @free: Invoked when the object is no longer needed.
@@ -115,7 +115,7 @@ typedef gboolean (*EMFormatHTMLPObjectFunc)(EMFormatHTML *md, struct _GtkHTMLEmb
* @classid: The assigned class id as passed to add_pobject().
* @func: Callback function.
* @part: The part as passed to add_pobject().
- *
+ *
* This structure is used to track OBJECT tags which have been
* inserted into the HTML stream. When GtkHTML requests them the
* @func will be invoked to create the embedded widget.
@@ -145,25 +145,25 @@ struct _EMFormatHTMLPObject {
/**
* struct _EMFormatHTML - HTML formatter object.
- *
- * @format:
- * @priv:
- * @html:
- * @pending_object_list:
- * @headers:
- * @text_html_flags:
- * @body_colour:
- * @text_colour:
- * @frame_colour:
- * @content_colour:
- * @citation_colour:
- * @load_http:2:
- * @load_http_now:1:
- * @mark_citations:1:
- * @simple_headers:1:
- * @hide_headers:1:
- * @show_icon:1:
- *
+ *
+ * @format:
+ * @priv:
+ * @html:
+ * @pending_object_list:
+ * @headers:
+ * @text_html_flags:
+ * @body_colour:
+ * @text_colour:
+ * @frame_colour:
+ * @content_colour:
+ * @citation_colour:
+ * @load_http:2:
+ * @load_http_now:1:
+ * @mark_citations:1:
+ * @simple_headers:1:
+ * @hide_headers:1:
+ * @show_icon:1:
+ *
* Most of these fields are private or read-only.
*
* The base HTML formatter object. This object drives HTML generation
@@ -193,12 +193,12 @@ struct _EMFormatHTML {
unsigned int simple_headers:1; /* simple header format, no box/table */
unsigned int hide_headers:1; /* no headers at all */
unsigned int show_icon:1; /* show an icon when the sender used Evo */
- guint32 header_wrap_flags;
+ guint32 header_wrap_flags;
};
struct _EMFormatHTMLClass {
EMFormatClass format_class;
-
+
};
GType em_format_html_get_type(void);
diff --git a/mail/em-format-quote.c b/mail/em-format-quote.c
index e92147304e..69626b951a 100644
--- a/mail/em-format-quote.c
+++ b/mail/em-format-quote.c
@@ -56,11 +56,11 @@ static EMFormatClass *emfq_parent;
static void
emfq_init(GObject *o)
-{
+{
EMFormatQuote *emfq =(EMFormatQuote *) o;
-
+
emfq->priv = g_malloc0(sizeof(*emfq->priv));
-
+
/* we want to convert url's etc */
emfq->text_html_flags = CAMEL_MIME_FILTER_TOHTML_PRE | CAMEL_MIME_FILTER_TOHTML_CONVERT_URLS
| CAMEL_MIME_FILTER_TOHTML_CONVERT_ADDRESSES;
@@ -75,7 +75,7 @@ emfq_finalise(GObject *o)
camel_object_unref(emfq->stream);
g_free(emfq->credits);
g_free(emfq->priv);
-
+
((GObjectClass *) emfq_parent)->finalize(o);
}
@@ -92,7 +92,7 @@ emfq_class_init(GObjectClass *klass)
((EMFormatClass *) klass)->format_error = emfq_format_error;
((EMFormatClass *) klass)->format_source = emfq_format_source;
((EMFormatClass *) klass)->format_attachment = emfq_format_attachment;
-
+
klass->finalize = emfq_finalise;
}
@@ -100,7 +100,7 @@ GType
em_format_quote_get_type(void)
{
static GType type = 0;
-
+
if (type == 0) {
static const GTypeInfo info = {
sizeof(EMFormatQuoteClass),
@@ -110,11 +110,11 @@ em_format_quote_get_type(void)
sizeof(EMFormatQuote), 0,
(GInstanceInitFunc) emfq_init
};
-
+
emfq_parent = g_type_class_ref(em_format_get_type());
type = g_type_register_static(em_format_get_type(), "EMFormatQuote", &info, 0);
}
-
+
return type;
}
@@ -122,14 +122,14 @@ EMFormatQuote *
em_format_quote_new(const char *credits, CamelStream *stream, guint32 flags)
{
EMFormatQuote *emfq;
-
+
emfq = (EMFormatQuote *)g_object_new(em_format_quote_get_type(), NULL);
emfq->credits = g_strdup(credits);
emfq->stream = stream;
camel_object_ref(stream);
emfq->flags = flags;
-
+
return emfq;
}
@@ -155,7 +155,7 @@ emfq_format_clone(EMFormat *emf, CamelFolder *folder, const char *uid, CamelMime
handle->handler(emf, emfq->stream, (CamelMimePart *)msg, handle);
handle = em_format_find_handler(emf, "x-evolution/message/rfc822");
if (handle)
- handle->handler(emf, emfq->stream, (CamelMimePart *)msg, handle);
+ handle->handler(emf, emfq->stream, (CamelMimePart *)msg, handle);
camel_stream_flush(emfq->stream);
@@ -173,23 +173,23 @@ emfq_format_text_header (EMFormatQuote *emfq, CamelStream *stream, const char *l
{
const char *fmt, *html;
char *mhtml = NULL;
-
+
if (value == NULL)
return;
-
+
while (*value == ' ')
value++;
-
+
if (!is_html)
html = mhtml = camel_text_to_html (value, 0, 0);
else
html = value;
-
+
if (flags & EM_FORMAT_HEADER_BOLD)
fmt = "<b>%s</b>: %s<br>";
else
fmt = "%s: %s<br>";
-
+
camel_stream_printf (stream, fmt, label, html);
g_free (mhtml);
}
@@ -213,18 +213,18 @@ emfq_format_address (GString *out, struct _camel_header_address *a)
{
guint32 flags = CAMEL_MIME_FILTER_TOHTML_CONVERT_SPACES;
char *name, *mailto, *addr;
-
+
while (a) {
if (a->name)
name = camel_text_to_html (a->name, flags, 0);
else
name = NULL;
-
+
switch (a->type) {
case CAMEL_HEADER_ADDRESS_NAME:
if (name && *name) {
char *real, *mailaddr;
-
+
g_string_append_printf (out, "%s &lt;", name);
/* rfc2368 for mailto syntax and url encoding extras */
if ((real = camel_header_encode_phrase ((unsigned char *)a->name))) {
@@ -242,7 +242,7 @@ emfq_format_address (GString *out, struct _camel_header_address *a)
g_string_append_printf (out, "<a href=\"mailto:%s\">%s</a>", mailto, addr);
g_free (mailto);
g_free (addr);
-
+
if (name && *name)
g_string_append (out, "&gt;");
break;
@@ -255,9 +255,9 @@ emfq_format_address (GString *out, struct _camel_header_address *a)
g_warning ("Invalid address type");
break;
}
-
+
g_free (name);
-
+
a = a->next;
if (a)
g_string_append (out, ", ");
@@ -273,28 +273,28 @@ emfq_format_header (EMFormat *emf, CamelStream *stream, CamelMedium *part, const
const char *txt, *label;
int addrspec = 0, i;
int is_html = FALSE;
-
+
name = g_alloca (strlen (namein) + 1);
strcpy (name, namein);
camel_strdown (name);
-
+
for (i = 0; addrspec_hdrs[i]; i++) {
if (!strcmp (name, addrspec_hdrs[i])) {
addrspec = 1;
break;
}
}
-
+
if (addrspec) {
struct _camel_header_address *addrs;
GString *html;
-
+
if (!(txt = camel_medium_get_header (part, name)))
return;
-
+
if (!(addrs = camel_header_address_decode (txt, emf->charset ? emf->charset : emf->default_charset)))
return;
-
+
/* canonicalise the header name... first letter is
* capitalised and any letter following a '-' also gets
* capitalised */
@@ -305,9 +305,9 @@ emfq_format_header (EMFormat *emf, CamelStream *stream, CamelMedium *part, const
if (p[-1] == '-' && *p >= 'a' && *p <= 'z')
*p -= 0x20;
} while (*p);
-
+
label = _(name);
-
+
html = g_string_new ("");
emfq_format_address (html, addrs);
camel_header_address_unref (addrs);
@@ -323,20 +323,20 @@ emfq_format_header (EMFormat *emf, CamelStream *stream, CamelMedium *part, const
if (!(txt = camel_medium_get_header (part, "x-mailer")))
if (!(txt = camel_medium_get_header (part, "user-agent")))
return;
-
+
txt = value = camel_header_format_ctext (txt, charset);
-
+
label = _("Mailer");
flags |= EM_FORMAT_HEADER_BOLD;
} else if (!strcmp (name, "date") || !strcmp (name, "resent-date")) {
if (!(txt = camel_medium_get_header (part, name)))
return;
-
+
if (!strcmp (name, "date"))
label = _("Date");
else
label = "Resent-Date";
-
+
flags |= EM_FORMAT_HEADER_BOLD;
} else {
txt = camel_medium_get_header (part, name);
@@ -344,9 +344,9 @@ emfq_format_header (EMFormat *emf, CamelStream *stream, CamelMedium *part, const
txt = value;
label = namein;
}
-
+
emfq_format_text_header (emfq, stream, label, txt, flags, is_html);
-
+
g_free (value);
}
@@ -357,14 +357,14 @@ emfq_format_headers (EMFormatQuote *emfq, CamelStream *stream, CamelMedium *part
CamelContentType *ct;
const char *charset;
EMFormatHeader *h;
-
+
if (!part)
return;
ct = camel_mime_part_get_content_type ((CamelMimePart *) part);
charset = camel_content_type_param (ct, "charset");
- charset = e_iconv_charset_name (charset);
-
+ charset = e_iconv_charset_name (charset);
+
/* dump selected headers */
h = (EMFormatHeader *) emf->header_list.head;
while (h->next) {
@@ -400,9 +400,9 @@ emfq_format_message(EMFormat *emf, CamelStream *stream, CamelMimePart *part, con
emfq_format_headers (emfq, stream, (CamelMedium *)part);
} else if (emfq->flags & EM_FORMAT_QUOTE_HEADERS)
emfq_format_headers (emfq, stream, (CamelMedium *)part);
-
+
em_format_part (emf, stream, part);
-
+
if (emfq->flags & EM_FORMAT_QUOTE_CITE)
camel_stream_write_string(stream, "</blockquote></font><!--+GtkHTML:<DATA class=\"ClueFlow\" clear=\"orig\">-->");
}
@@ -419,7 +419,7 @@ emfq_format_source(EMFormat *emf, CamelStream *stream, CamelMimePart *part)
| CAMEL_MIME_FILTER_TOHTML_ESCAPE_8BIT, 0);
camel_stream_filter_add(filtered_stream, html_filter);
camel_object_unref(html_filter);
-
+
em_format_format_text(emf, (CamelStream *)filtered_stream, (CamelDataWrapper *)part);
camel_object_unref(filtered_stream);
}
@@ -465,26 +465,26 @@ emfq_text_plain(EMFormatQuote *emfq, CamelStream *stream, CamelMimePart *part, E
return;
flags = emfq->text_html_flags;
-
+
/* Check for RFC 2646 flowed text. */
type = camel_mime_part_get_content_type(part);
if (camel_content_type_is(type, "text", "plain")
&& (format = camel_content_type_param(type, "format"))
&& !g_ascii_strcasecmp(format, "flowed"))
flags |= CAMEL_MIME_FILTER_TOHTML_FORMAT_FLOWED;
-
+
filtered_stream = camel_stream_filter_new_with_stream(stream);
-
+
if (emfq->flags != 0) {
sig_strip = em_stripsig_filter_new ();
camel_stream_filter_add (filtered_stream, sig_strip);
camel_object_unref (sig_strip);
}
-
+
html_filter = camel_mime_filter_tohtml_new(flags, rgb);
camel_stream_filter_add(filtered_stream, html_filter);
camel_object_unref(html_filter);
-
+
em_format_format_text((EMFormat *)emfq, (CamelStream *)filtered_stream, (CamelDataWrapper *)part);
camel_stream_flush((CamelStream *)filtered_stream);
camel_object_unref(filtered_stream);
@@ -497,16 +497,16 @@ emfq_text_enriched(EMFormatQuote *emfq, CamelStream *stream, CamelMimePart *part
CamelMimeFilter *enriched;
CamelDataWrapper *dw;
guint32 flags = 0;
-
+
dw = camel_medium_get_content_object((CamelMedium *)part);
-
+
if (!strcmp(info->mime_type, "text/richtext")) {
flags = CAMEL_MIME_FILTER_ENRICHED_IS_RICHTEXT;
camel_stream_write_string(stream, "\n<!-- text/richtext -->\n");
} else {
camel_stream_write_string(stream, "\n<!-- text/enriched -->\n");
}
-
+
enriched = camel_mime_filter_enriched_new(flags);
filtered_stream = camel_stream_filter_new_with_stream (stream);
camel_stream_filter_add(filtered_stream, enriched);
@@ -548,7 +548,7 @@ static void
emfq_builtin_init(EMFormatQuoteClass *efhc)
{
int i;
-
+
for (i=0;i<sizeof(type_builtin_table)/sizeof(type_builtin_table[0]);i++)
em_format_class_add_handler((EMFormatClass *)efhc, &type_builtin_table[i]);
}
diff --git a/mail/em-format.c b/mail/em-format.c
index 5bedde4007..36177d7991 100644
--- a/mail/em-format.c
+++ b/mail/em-format.c
@@ -56,7 +56,7 @@
#include "em-utils.h"
#include "mail-config.h"
-#define d(x)
+#define d(x)
/* Used to cache various data/info for redraws
The validity stuff could be cached at a higher level but this is easier
@@ -116,7 +116,7 @@ static void
emf_init(GObject *o)
{
EMFormat *emf = (EMFormat *)o;
-
+
emf->inline_table = g_hash_table_new_full (
g_str_hash, g_str_equal,
(GDestroyNotify) NULL,
@@ -133,7 +133,7 @@ static void
emf_finalise(GObject *o)
{
EMFormat *emf = (EMFormat *)o;
-
+
if (emf->session)
camel_object_unref(emf->session);
@@ -146,7 +146,7 @@ emf_finalise(GObject *o)
g_string_free(emf->part_id, TRUE);
/* FIXME: check pending jobs */
-
+
((GObjectClass *)emf_parent)->finalize(o);
}
@@ -204,7 +204,7 @@ em_format_get_type(void)
* em_format_class_add_handler:
* @emfc: EMFormatClass
* @info: Callback information.
- *
+ *
* Add a mime type handler to this class. This is only used by
* implementing classes. The @info.old pointer will automatically be
* setup to point to the old hanlder if one was already set. This can
@@ -227,13 +227,13 @@ em_format_class_add_handler(EMFormatClass *emfc, EMFormatHandler *info)
struct _class_handlers {
EMFormatClass *old;
EMFormatClass *new;
-};
+};
static void
merge_missing (gpointer key, gpointer value, gpointer userdata)
{
struct _class_handlers *classes = (struct _class_handlers *) userdata;
EMFormatHandler *info, *oldinfo;
-
+
oldinfo = (EMFormatHandler *) value;
info = g_hash_table_lookup (classes->new->type_handlers, key);
if (!info) {
@@ -258,9 +258,9 @@ em_format_merge_handler(EMFormat *new, EMFormat *old)
}
/**
* em_format_class_remove_handler:
- * @emfc:
- * @info:
- *
+ * @emfc:
+ * @info:
+ *
* Remove a handler. @info must be a value which was previously
* added.
**/
@@ -288,11 +288,11 @@ em_format_class_remove_handler(EMFormatClass *emfc, EMFormatHandler *info)
/**
* em_format_find_handler:
- * @emf:
- * @mime_type:
- *
+ * @emf:
+ * @mime_type:
+ *
* Find a format handler by @mime_type.
- *
+ *
* Return value: NULL if no handler is available.
**/
static const EMFormatHandler *
@@ -305,14 +305,14 @@ emf_find_handler(EMFormat *emf, const char *mime_type)
/**
* em_format_fallback_handler:
- * @emf:
- * @mime_type:
- *
+ * @emf:
+ * @mime_type:
+ *
* Try to find a format handler based on the major type of the @mime_type.
*
* The subtype is replaced with "*" and a lookup performed.
- *
- * Return value:
+ *
+ * Return value:
**/
const EMFormatHandler *
em_format_fallback_handler(EMFormat *emf, const char *mime_type)
@@ -335,18 +335,18 @@ em_format_fallback_handler(EMFormat *emf, const char *mime_type)
/**
* em_format_add_puri:
- * @emf:
- * @size:
+ * @emf:
+ * @size:
* @cid: Override the autogenerated content id.
- * @part:
- * @func:
- *
+ * @part:
+ * @func:
+ *
* Add a pending-uri handler. When formatting parts that reference
* other parts, a pending-uri (PURI) can be used to track the reference.
*
* @size is used to allocate the structure, so that it can be directly
* subclassed by implementors.
- *
+ *
* @cid can be used to override the key used to retreive the PURI, if NULL,
* then the content-location and the content-id of the @part are stored
* as lookup keys for the part.
@@ -427,8 +427,8 @@ em_format_add_puri(EMFormat *emf, size_t size, const char *cid, CamelMimePart *p
/**
* em_format_push_level:
- * @emf:
- *
+ * @emf:
+ *
* This is used to build a heirarchy of visible PURI objects based on
* the structure of the message. Used by multipart/alternative formatter.
*
@@ -455,8 +455,8 @@ em_format_push_level(EMFormat *emf)
/**
* em_format_pull_level:
- * @emf:
- *
+ * @emf:
+ *
* Drop a level of visibility back to the parent. Note that
* no PURI values are actually freed.
**/
@@ -469,13 +469,13 @@ em_format_pull_level(EMFormat *emf)
/**
* em_format_find_visible_puri:
- * @emf:
- * @uri:
- *
+ * @emf:
+ * @uri:
+ *
* Search for a PURI based on the visibility defined by :push_level()
* and :pull_level().
- *
- * Return value:
+ *
+ * Return value:
**/
EMFormatPURI *
em_format_find_visible_puri(EMFormat *emf, const char *uri)
@@ -502,13 +502,13 @@ em_format_find_visible_puri(EMFormat *emf, const char *uri)
/**
* em_format_find_puri:
- * @emf:
- * @uri:
- *
+ * @emf:
+ * @uri:
+ *
* Search for a PURI based on a uri. Both the content-id
* and content-location are checked.
- *
- * Return value:
+ *
+ * Return value:
**/
EMFormatPURI *
@@ -559,8 +559,8 @@ emf_clear_puri_node(struct _EMFormatPURITree *node)
/**
* em_format_clear_puri_tree:
- * @emf:
- *
+ * @emf:
+ *
* For use by implementors to clear out the message structure
* data.
**/
@@ -687,7 +687,7 @@ emf_format_clone(EMFormat *emf, CamelFolder *folder, const char *uid, CamelMimeM
emf->charset = g_strdup(emfsource->charset);
g_free (emf->default_charset);
emf->default_charset = g_strdup (emfsource->default_charset);
-
+
em_format_clear_headers(emf);
for (h = (struct _EMFormatHeader *)emfsource->header_list.head; h->next; h = h->next)
em_format_add_header(emf, h->name, h->flags);
@@ -765,7 +765,7 @@ emf_busy(EMFormat *emf)
* @msg: Camel Message.
* @emfsource: Used as a basis for user-altered layout, e.g. inline viewed
* attachments.
- *
+ *
* Format a message @msg. If @emfsource is non NULL, then the status of
* inlined expansion and so forth is copied direction from @emfsource.
*
@@ -777,9 +777,9 @@ emf_busy(EMFormat *emf)
/**
* em_format_set_session:
- * @emf:
- * @s:
- *
+ * @emf:
+ * @s:
+ *
* Set the CamelSession to be used for signature verification and decryption
* purposes. If this is not set, then signatures cannot be verified or
* encrypted messages viewed.
@@ -796,9 +796,9 @@ em_format_set_session(EMFormat *emf, struct _CamelSession *s)
/**
* em_format_set_mode:
- * @emf:
- * @type:
- *
+ * @emf:
+ * @type:
+ *
* Set display mode, EM_FORMAT_SOURCE, EM_FORMAT_ALLHEADERS, or
* EM_FORMAT_NORMAL.
**/
@@ -817,9 +817,9 @@ em_format_set_mode(EMFormat *emf, em_format_mode_t type)
/**
* em_format_set_charset:
- * @emf:
- * @charset:
- *
+ * @emf:
+ * @charset:
+ *
* set override charset on formatter. message will be redisplayed if
* required.
**/
@@ -840,9 +840,9 @@ em_format_set_charset(EMFormat *emf, const char *charset)
/**
* em_format_set_default_charset:
- * @emf:
- * @charset:
- *
+ * @emf:
+ * @charset:
+ *
* Set the fallback, default system charset to use when no other charsets
* are present. Message will be redisplayed if required (and sometimes redisplayed
* when it isn't).
@@ -864,8 +864,8 @@ em_format_set_default_charset(EMFormat *emf, const char *charset)
/**
* em_format_clear_headers:
- * @emf:
- *
+ * @emf:
+ *
* Clear the list of headers to be displayed. This will force all headers to
* be shown.
**/
@@ -895,8 +895,8 @@ static const struct {
/**
* em_format_default_headers:
- * @emf:
- *
+ * @emf:
+ *
* Set the headers to show to the default list.
*
* From, Reply-To, To, Cc, Bcc, Subject and Date.
@@ -905,7 +905,7 @@ void
em_format_default_headers(EMFormat *emf)
{
int i;
-
+
em_format_clear_headers(emf);
for (i=0; i<sizeof(default_headers)/sizeof(default_headers[0]); i++)
em_format_add_header(emf, default_headers[i].name, default_headers[i].flags);
@@ -913,10 +913,10 @@ em_format_default_headers(EMFormat *emf)
/**
* em_format_add_header:
- * @emf:
+ * @emf:
* @name: The name of the header, as it will appear during output.
* @flags: EM_FORMAT_HEAD_* defines to control display attributes.
- *
+ *
* Add a specific header to show. If any headers are set, they will
* be displayed in the order set by this function. Certain known
* headers included in this list will be shown using special
@@ -934,9 +934,9 @@ void em_format_add_header(EMFormat *emf, const char *name, guint32 flags)
/**
* em_format_is_attachment:
- * @emf:
+ * @emf:
* @part: Part to check.
- *
+ *
* Returns true if the part is an attachment.
*
* A part is not considered an attachment if it is a
@@ -945,7 +945,7 @@ void em_format_add_header(EMFormat *emf, const char *name, guint32 flags)
* the part.
*
* Content-Disposition is not checked.
- *
+ *
* Return value: TRUE/FALSE
**/
int em_format_is_attachment(EMFormat *emf, CamelMimePart *part)
@@ -958,26 +958,26 @@ int em_format_is_attachment(EMFormat *emf, CamelMimePart *part)
|| camel_content_type_is(dw->mime_type, "application", "x-pkcs7-mime")
|| camel_content_type_is(dw->mime_type, "application", "pkcs7-mime")
|| camel_content_type_is(dw->mime_type, "application", "x-inlinepgp-signed")
- || camel_content_type_is(dw->mime_type, "application", "x-inlinepgp-encrypted")
+ || camel_content_type_is(dw->mime_type, "application", "x-inlinepgp-encrypted")
|| (camel_content_type_is (dw->mime_type, "text", "*")
&& camel_mime_part_get_filename(part) == NULL));
}
/**
* em_format_is_inline:
- * @emf:
- * @part:
+ * @emf:
+ * @part:
* @partid: format->part_id part id of this part.
* @handle: handler for this part
- *
+ *
* Returns true if the part should be displayed inline. Any part with
* a Content-Disposition of inline, or if the @handle has a default
* inline set, will be shown inline.
*
* :set_inline() called on the same part will override any calculated
* value.
- *
- * Return value:
+ *
+ * Return value:
**/
int em_format_is_inline(EMFormat *emf, const char *partid, CamelMimePart *part, const EMFormatHandler *handle)
{
@@ -1005,10 +1005,10 @@ int em_format_is_inline(EMFormat *emf, const char *partid, CamelMimePart *part,
/**
* em_format_set_inline:
- * @emf:
+ * @emf:
* @partid: id of part
- * @state:
- *
+ * @state:
+ *
* Force the attachment @part to be expanded or hidden explictly to match
* @state. This is used only to record the change for a redraw or
* cloned layout render and does not force a redraw.
@@ -1065,10 +1065,10 @@ em_format_format_content(EMFormat *emf, CamelStream *stream, CamelMimePart *part
/**
* em_format_format_content:
- * @emf:
+ * @emf:
* @stream: Where to write the converted text
* @part: Part whose container is to be formatted
- *
+ *
* Decode/output a part's content to @stream.
**/
void
@@ -1081,7 +1081,7 @@ em_format_format_text(EMFormat *emf, CamelStream *stream, CamelDataWrapper *dw)
CamelStream *mem_stream = NULL;
size_t size;
size_t max;
-
+
if (emf->charset) {
charset = emf->charset;
} else if (dw->mime_type
@@ -1097,14 +1097,14 @@ em_format_format_text(EMFormat *emf, CamelStream *stream, CamelDataWrapper *dw)
null = camel_stream_null_new();
filter_stream = camel_stream_filter_new_with_stream(null);
camel_object_unref(null);
-
+
windows = (CamelMimeFilterWindows *)camel_mime_filter_windows_new(charset);
camel_stream_filter_add(filter_stream, (CamelMimeFilter *)windows);
-
+
camel_data_wrapper_decode_to_stream(dw, (CamelStream *)filter_stream);
camel_stream_flush((CamelStream *)filter_stream);
camel_object_unref(filter_stream);
-
+
charset = camel_mime_filter_windows_real_charset (windows);
} else if (charset == NULL) {
charset = emf->default_charset;
@@ -1112,7 +1112,7 @@ em_format_format_text(EMFormat *emf, CamelStream *stream, CamelDataWrapper *dw)
mem_stream = (CamelStream *)camel_stream_mem_new ();
filter_stream = camel_stream_filter_new_with_stream(mem_stream);
-
+
if ((filter = camel_mime_filter_charset_new_convert(charset, "UTF-8"))) {
camel_stream_filter_add(filter_stream, (CamelMimeFilter *) filter);
camel_object_unref(filter);
@@ -1137,13 +1137,13 @@ em_format_format_text(EMFormat *emf, CamelStream *stream, CamelDataWrapper *dw)
/**
* em_format_describe_part:
- * @part:
- * @mimetype:
- *
+ * @part:
+ * @mimetype:
+ *
* Generate a simple textual description of a part, @mime_type represents the
* the content.
- *
- * Return value:
+ *
+ * Return value:
**/
char *
em_format_describe_part(CamelMimePart *part, const char *mime_type)
@@ -1249,7 +1249,7 @@ emf_multipart_mixed(EMFormat *emf, CamelStream *stream, CamelMimePart *part, con
}
len = emf->part_id->len;
- nparts = camel_multipart_get_number(mp);
+ nparts = camel_multipart_get_number(mp);
for (i = 0; i < nparts; i++) {
part = camel_multipart_get_part(mp, i);
g_string_append_printf(emf->part_id, ".mixed.%d", i);
@@ -1285,7 +1285,7 @@ emf_multipart_alternative(EMFormat *emf, CamelStream *stream, CamelMimePart *par
type = camel_mime_part_get_content_type (part);
mime_type = camel_content_type_simple (type);
-
+
camel_strdown (mime_type);
/*if (want_plain && !strcmp (mime_type, "text/plain"))
@@ -1394,7 +1394,7 @@ emf_multipart_related(EMFormat *emf, CamelStream *stream, CamelMimePart *part, c
}
/* FIXME: put this stuff in a shared function */
- nparts = camel_multipart_get_number(mp);
+ nparts = camel_multipart_get_number(mp);
content_type = camel_mime_part_get_content_type(part);
start = camel_content_type_param (content_type, "start");
if (start && strlen(start)>2) {
@@ -1404,11 +1404,11 @@ emf_multipart_related(EMFormat *emf, CamelStream *stream, CamelMimePart *part, c
/* strip <>'s */
len = strlen (start) - 2;
start++;
-
+
for (i=0; i<nparts; i++) {
body_part = camel_multipart_get_part(mp, i);
cid = camel_mime_part_get_content_id(body_part);
-
+
if (cid && !strncmp(cid, start, len) && strlen(cid) == len) {
display_part = body_part;
displayid = i;
@@ -1418,12 +1418,12 @@ emf_multipart_related(EMFormat *emf, CamelStream *stream, CamelMimePart *part, c
} else {
display_part = camel_multipart_get_part(mp, 0);
}
-
+
if (display_part == NULL) {
emf_multipart_mixed(emf, stream, part, info);
return;
}
-
+
em_format_push_level(emf);
oldpartid = g_strdup(emf->part_id->str);
@@ -1440,7 +1440,7 @@ emf_multipart_related(EMFormat *emf, CamelStream *stream, CamelMimePart *part, c
d(printf(" part '%s' '%s' added\n", puri->uri?puri->uri:"", puri->cid));
}
}
-
+
g_string_append_printf(emf->part_id, ".related.%d", displayid);
em_format_part(emf, stream, display_part);
g_string_truncate(emf->part_id, partidlen);
@@ -1550,7 +1550,7 @@ emf_message_rfc822(EMFormat *emf, CamelStream *stream, CamelMimePart *part, cons
handle = em_format_find_handler(emf, "x-evolution/message/rfc822");
if (handle)
handle->handler(emf, stream, (CamelMimePart *)dw, handle);
-
+
g_string_truncate(emf->part_id, len);
}
@@ -1593,67 +1593,67 @@ emf_inlinepgp_signed(EMFormat *emf, CamelStream *stream, CamelMimePart *ipart, E
camel_object_unref(cipher);
return;
}
-
+
/* Setup output stream */
ostream = camel_stream_mem_new();
filtered_stream = camel_stream_filter_new_with_stream(ostream);
-
+
/* Add PGP header / footer filter */
pgp_filter = (CamelMimeFilterPgp *)camel_mime_filter_pgp_new();
camel_stream_filter_add(filtered_stream, (CamelMimeFilter *)pgp_filter);
camel_object_unref(pgp_filter);
-
+
/* Pass through the filters that have been setup */
dw = camel_medium_get_content_object((CamelMedium *)ipart);
camel_data_wrapper_decode_to_stream(dw, (CamelStream *)filtered_stream);
camel_stream_flush((CamelStream *)filtered_stream);
camel_object_unref(filtered_stream);
-
+
/* Create a new text/plain MIME part containing the signed content preserving the original part's Content-Type params */
content_type = camel_mime_part_get_content_type (ipart);
type = camel_content_type_format (content_type);
content_type = camel_content_type_decode (type);
g_free (type);
-
+
g_free (content_type->type);
content_type->type = g_strdup ("text");
g_free (content_type->subtype);
content_type->subtype = g_strdup ("plain");
type = camel_content_type_format (content_type);
camel_content_type_unref (content_type);
-
+
dw = camel_data_wrapper_new ();
camel_data_wrapper_construct_from_stream (dw, ostream);
camel_data_wrapper_set_mime_type (dw, type);
-
+
opart = camel_mime_part_new ();
camel_medium_set_content_object ((CamelMedium *) opart, dw);
camel_data_wrapper_set_mime_type_field ((CamelDataWrapper *) opart, dw->mime_type);
-
- /* Pass it off to the real formatter */
+
+ /* Pass it off to the real formatter */
em_format_format_secure(emf, stream, opart, valid);
-
+
/* Clean Up */
camel_object_unref(dw);
camel_object_unref(opart);
camel_object_unref(ostream);
camel_object_unref(cipher);
- camel_exception_free(ex);
+ camel_exception_free(ex);
}
static void
emf_inlinepgp_encrypted(EMFormat *emf, CamelStream *stream, CamelMimePart *ipart, EMFormatHandler *info)
-{
+{
CamelCipherContext *cipher;
CamelCipherValidity *valid;
CamelException *ex;
CamelMimePart *opart;
-
+
cipher = camel_gpg_context_new(emf->session);
ex = camel_exception_new();
opart = camel_mime_part_new();
/* Decrypt the message */
- valid = camel_cipher_decrypt (cipher, ipart, opart, ex);
+ valid = camel_cipher_decrypt (cipher, ipart, opart, ex);
if (!valid) {
em_format_format_error(emf, stream, ex->desc?_("Could not parse PGP message"):_("Could not parse PGP message: Unknown error"));
if (ex->desc)
@@ -1666,7 +1666,7 @@ emf_inlinepgp_encrypted(EMFormat *emf, CamelStream *stream, CamelMimePart *ipart
return;
}
- /* Pass it off to the real formatter */
+ /* Pass it off to the real formatter */
em_format_format_secure(emf, stream, opart, valid);
/* Clean Up */
diff --git a/mail/em-format.h b/mail/em-format.h
index 81f4b5c508..6dba5f8b05 100644
--- a/mail/em-format.h
+++ b/mail/em-format.h
@@ -55,13 +55,13 @@ typedef enum _em_format_mode_t {
/**
* struct _EMFormatHandler - MIME type handler.
- *
+ *
* @mime_type: Type this handler handles.
* @handler: The handler callback.
* @flags: Handling flags, see enum _em_format_handler_t.
* @old: The last handler set on this type. Allows overrides to
* fallback to previous implementation.
- *
+ *
**/
struct _EMFormatHandler {
char *mime_type;
@@ -73,12 +73,12 @@ struct _EMFormatHandler {
/**
* enum _em_format_handler_t - Format handler flags.
- *
+ *
* @EM_FORMAT_HANDLER_INLINE: This type should be shown expanded
* inline by default.
* @EM_FORMAT_HANDLER_INLINE_DISPOSITION: This type should always be
* shown inline, despite what the Content-Disposition suggests.
- *
+ *
**/
enum _em_format_handler_t {
EM_FORMAT_HANDLER_INLINE = 1<<0,
@@ -91,11 +91,11 @@ typedef void (*EMFormatPURIFunc)(EMFormat *md, struct _CamelStream *stream, EMFo
/**
* struct _EMFormatPURI - Pending URI object.
- *
+ *
* @next: Double-linked list header.
* @prev: Double-linked list header.
* @free: May be set by allocator and will be called when no longer needed.
- * @format:
+ * @format:
* @uri: Calculated URI of the part, if the part has one in its
* Content-Location field.
* @cid: The RFC2046 Content-Id of the part. If none is present, a unique value
@@ -103,9 +103,9 @@ typedef void (*EMFormatPURIFunc)(EMFormat *md, struct _CamelStream *stream, EMFo
* @part_id: A unique identifier for each part.
* @func: Callback for when the URI is requested. The callback writes
* its data to the supplied stream.
- * @part:
- * @use_count:
- *
+ * @part:
+ * @use_count:
+ *
* This is used for multipart/related, and other formatters which may
* need to include a reference to out-of-band data in the content
* stream.
@@ -131,7 +131,7 @@ struct _EMFormatPURI {
/**
* struct _EMFormatPURITree - Pending URI visibility tree.
- *
+ *
* @next: Double-linked list header.
* @prev: Double-linked list header.
* @parent: Parent in tree.
@@ -163,27 +163,27 @@ struct _EMFormatHeader {
/**
* struct _EMFormat - Mail formatter object.
- *
- * @parent:
- * @priv:
- * @message:
- * @folder:
- * @uid:
- * @part_id:
- * @header_list:
- * @session:
- * @base url:
- * @snoop_mime_type:
- * @valid:
- * @valid_parent:
- * @inline_table:
- * @pending_uri_table:
- * @pending_uri_tree:
- * @pending_uri_level:
- * @mode:
- * @charset:
- * @default_charset:
- *
+ *
+ * @parent:
+ * @priv:
+ * @message:
+ * @folder:
+ * @uid:
+ * @part_id:
+ * @header_list:
+ * @session:
+ * @base url:
+ * @snoop_mime_type:
+ * @valid:
+ * @valid_parent:
+ * @inline_table:
+ * @pending_uri_table:
+ * @pending_uri_tree:
+ * @pending_uri_level:
+ * @mode:
+ * @charset:
+ * @default_charset:
+ *
* Most fields are private or read-only.
*
* This is the base MIME formatter class. It provides no formatting
@@ -191,9 +191,9 @@ struct _EMFormatHeader {
**/
struct _EMFormat {
GObject parent;
-
+
struct _EMFormatPrivate *priv;
-
+
struct _CamelMimeMessage *message; /* the current message */
struct _CamelFolder *folder;
@@ -262,7 +262,7 @@ struct _EMFormatClass {
/* Shows optional way to open messages */
void (*format_optional)(EMFormat *, struct _CamelStream *, struct _CamelMimePart *, struct _CamelStream* );
-
+
/* signals */
/* complete, alternative to polling busy, for asynchronous work */
void (*complete)(EMFormat *);
diff --git a/mail/em-html-stream.c b/mail/em-html-stream.c
index 5738d6f56c..7b54dbe887 100644
--- a/mail/em-html-stream.c
+++ b/mail/em-html-stream.c
@@ -31,7 +31,7 @@
#include <gtk/gtkmain.h>
#include "em-html-stream.h"
-#define d(x)
+#define d(x)
static void em_html_stream_class_init (EMHTMLStreamClass *klass);
static void em_html_stream_init (CamelObject *object);
@@ -47,7 +47,7 @@ CamelType
em_html_stream_get_type (void)
{
static CamelType type = CAMEL_INVALID_TYPE;
-
+
if (type == CAMEL_INVALID_TYPE) {
parent_class = (EMSyncStreamClass *)em_sync_stream_get_type();
type = camel_type_register (em_sync_stream_get_type(),
@@ -59,7 +59,7 @@ em_html_stream_get_type (void)
(CamelObjectInitFunc) em_html_stream_init,
(CamelObjectFinalizeFunc) em_html_stream_finalize);
}
-
+
return type;
}
@@ -156,7 +156,7 @@ CamelStream *
em_html_stream_new(struct _GtkHTML *html, struct _GtkHTMLStream *html_stream)
{
EMHTMLStream *new;
-
+
new = EM_HTML_STREAM (camel_object_new (EM_HTML_STREAM_TYPE));
new->html_stream = html_stream;
new->html = html;
diff --git a/mail/em-html-stream.h b/mail/em-html-stream.h
index ad3ee0ac0b..e8be92eb9b 100644
--- a/mail/em-html-stream.h
+++ b/mail/em-html-stream.h
@@ -49,7 +49,7 @@ typedef struct _EMHTMLStream {
typedef struct {
EMSyncStreamClass parent_class;
-
+
} EMHTMLStreamClass;
diff --git a/mail/em-icon-stream.c b/mail/em-icon-stream.c
index 3407eb817e..ebd2cf6cc1 100644
--- a/mail/em-icon-stream.c
+++ b/mail/em-icon-stream.c
@@ -38,7 +38,7 @@
#include "libedataserver/e-msgport.h"
-#define d(x)
+#define d(x)
/* fixed-point scale factor for scaled images in cache */
#define EMIS_SCALE (1024)
@@ -72,7 +72,7 @@ CamelType
em_icon_stream_get_type (void)
{
static CamelType type = CAMEL_INVALID_TYPE;
-
+
if (type == CAMEL_INVALID_TYPE) {
parent_class = (EMSyncStreamClass *)em_sync_stream_get_type();
type = camel_type_register (em_sync_stream_get_type(),
@@ -86,7 +86,7 @@ em_icon_stream_get_type (void)
emis_cache = em_cache_new(60, sizeof(struct _emis_cache_node), emis_cache_free);
}
-
+
return type;
}
@@ -274,7 +274,7 @@ em_icon_stream_get_image(const char *key, unsigned int maxwidth, unsigned int ma
GdkPixbuf *pb = NULL;
/* forces the cache to be setup if not */
- em_icon_stream_get_type();
+ em_icon_stream_get_type();
node = (struct _emis_cache_node *)em_cache_lookup(emis_cache, key);
if (node) {
@@ -326,7 +326,7 @@ em_icon_stream_is_resized(const char *key, unsigned int maxwidth, unsigned int m
{
int res = FALSE;
struct _emis_cache_node *node;
-
+
/* forces the cache to be setup if not */
em_icon_stream_get_type();
diff --git a/mail/em-inline-filter.c b/mail/em-inline-filter.c
index 79300b33bc..59075ef5d3 100644
--- a/mail/em-inline-filter.c
+++ b/mail/em-inline-filter.c
@@ -33,7 +33,7 @@
#include "em-utils.h"
-#define d(x)
+#define d(x)
static void em_inline_filter_class_init (EMInlineFilterClass *klass);
static void em_inline_filter_init (CamelObject *object);
@@ -49,7 +49,7 @@ CamelType
em_inline_filter_get_type (void)
{
static CamelType type = CAMEL_INVALID_TYPE;
-
+
if (type == CAMEL_INVALID_TYPE) {
parent_class = (CamelMimeFilterClass *)camel_mime_filter_get_type();
@@ -62,7 +62,7 @@ em_inline_filter_get_type (void)
(CamelObjectInitFunc) em_inline_filter_init,
(CamelObjectFinalizeFunc) em_inline_filter_finalize);
}
-
+
return type;
}
@@ -129,7 +129,7 @@ emif_add_part(EMInlineFilter *emif, const char *data, int len)
CamelMimePart *part;
CamelStream *mem;
char *type;
-
+
if (emif->state == EMIF_PLAIN || emif->state == EMIF_PGPSIGNED || emif->state == EMIF_PGPENCRYPTED)
encoding = emif->base_encoding;
else
@@ -142,11 +142,11 @@ emif_add_part(EMInlineFilter *emif, const char *data, int len)
}
mem = camel_stream_mem_new_with_byte_array(emif->data);
emif->data = g_byte_array_new();
-
+
dw = camel_data_wrapper_new();
camel_data_wrapper_construct_from_stream(dw, mem);
camel_object_unref(mem);
-
+
if (emif_types[emif->state].plain && emif->base_type) {
camel_content_type_ref (emif->base_type);
content_type = emif->base_type;
@@ -155,17 +155,17 @@ emif_add_part(EMInlineFilter *emif, const char *data, int len)
type = camel_content_type_format (emif->base_type);
content_type = camel_content_type_decode (type);
g_free (type);
-
+
g_free (content_type->type);
g_free (content_type->subtype);
content_type->type = g_strdup (emif_types[emif->state].type);
content_type->subtype = g_strdup (emif_types[emif->state].subtype);
}
-
+
camel_data_wrapper_set_mime_type_field (dw, content_type);
camel_content_type_unref (content_type);
dw->encoding = encoding;
-
+
part = camel_mime_part_new();
camel_medium_set_content_object((CamelMedium *)part, dw);
camel_mime_part_set_encoding(part, encoding);
@@ -203,7 +203,7 @@ emif_scan(CamelMimeFilter *f, char *in, size_t len, int final)
while (inptr < inend && *inptr != '\n')
inptr++;
-
+
if (inptr == inend) {
if (!final) {
camel_mime_filter_backup(f, start, inend-start);
@@ -378,12 +378,12 @@ emif_reset(CamelMimeFilter *f)
* raw data being processed.
* @base_type: The base content-type of the raw data, should always be
* text/plain.
- *
+ *
* Create a filter which will scan a (text) stream for
* embedded parts. You can then retrieve the contents
* as a CamelMultipart object.
- *
- * Return value:
+ *
+ * Return value:
**/
EMInlineFilter *
em_inline_filter_new(CamelTransferEncoding base_encoding, CamelContentType *base_type)
diff --git a/mail/em-junk-hook.c b/mail/em-junk-hook.c
index 7c081fcf94..ee4a6ed614 100644
--- a/mail/em-junk-hook.c
+++ b/mail/em-junk-hook.c
@@ -64,11 +64,11 @@ static const EPluginHookTargetKey emjh_flag_map[] = {
static const char *
em_junk_get_name (CamelJunkPlugin *csp);
-static void
+static void
em_junk_init(CamelJunkPlugin *csp)
{
struct _EMJunkHookItem *item = (EMJunkHookItem *)csp;
-
+
((EPluginClass *)G_OBJECT_GET_CLASS(item->hook->hook.plugin))->enable(item->hook->hook.plugin, 1);
}
@@ -84,7 +84,7 @@ em_junk_get_name (CamelJunkPlugin *csp)
}
-static gboolean
+static gboolean
em_junk_check_junk(CamelJunkPlugin *csp, CamelMimeMessage *m)
{
struct _EMJunkHookItem *item = (EMJunkHookItem *)csp;
@@ -100,7 +100,7 @@ em_junk_check_junk(CamelJunkPlugin *csp, CamelMimeMessage *m)
return FALSE;
}
-static void
+static void
em_junk_report_junk(CamelJunkPlugin *csp, CamelMimeMessage *m)
{
struct _EMJunkHookItem *item = (EMJunkHookItem *)csp;
@@ -114,7 +114,7 @@ em_junk_report_junk(CamelJunkPlugin *csp, CamelMimeMessage *m)
}
}
-static void
+static void
em_junk_report_non_junk(CamelJunkPlugin *csp, CamelMimeMessage *m)
{
struct _EMJunkHookItem *item = (EMJunkHookItem *)csp;
@@ -127,24 +127,24 @@ em_junk_report_non_junk(CamelJunkPlugin *csp, CamelMimeMessage *m)
}
}
-static void
+static void
em_junk_commit_reports(CamelJunkPlugin *csp)
{
struct _EMJunkHookItem *item = (EMJunkHookItem *)csp;
- if (item->hook && item->hook->hook.plugin->enabled)
+ if (item->hook && item->hook->hook.plugin->enabled)
e_plugin_invoke(item->hook->hook.plugin, item->commit_reports, NULL);
}
-static void
+static void
emj_dispose (GObject *object)
{
if (parent_class->dispose)
parent_class->dispose (object);
}
-static void
+static void
emj_finalize (GObject *object)
{
if (parent_class->finalize)
@@ -174,7 +174,7 @@ emjh_free_group(EMJunkHookGroup *group)
static struct _EMJunkHookItem *
emjh_construct_item(EPluginHook *eph, EMJunkHookGroup *group, xmlNodePtr root)
{
- struct _EMJunkHookItem *item;
+ struct _EMJunkHookItem *item;
CamelJunkPlugin junk_plugin = {
em_junk_get_name,
1,
@@ -193,16 +193,16 @@ emjh_construct_item(EPluginHook *eph, EMJunkHookGroup *group, xmlNodePtr root)
item->report_non_junk = e_plugin_xml_prop(root, "report_non_junk");
item->commit_reports = e_plugin_xml_prop(root, "commit_reports");
item->validate_binary = e_plugin_xml_prop(root, "validate_binary");
-
+
item->plugin_name = e_plugin_xml_prop(root, "name");
item->hook = emjh;
-
+
if (item->check_junk == NULL || item->report_junk == NULL || item->report_non_junk == NULL || item->commit_reports == NULL)
goto error;
-
+
/* Add the plugin to the session plugin list*/
mail_session_add_junk_plugin (item->plugin_name, CAMEL_JUNK_PLUGIN (&(item->csp)));
-
+
return item;
error:
printf ("ERROR");
@@ -224,7 +224,7 @@ emjh_construct_group(EPluginHook *eph, xmlNodePtr root)
goto error;
node = root->children;
-
+
/* We'll processs only the first item from xml file*/
while (node) {
if (0 == strcmp((char *)node->name, "item")) {
@@ -235,14 +235,14 @@ emjh_construct_group(EPluginHook *eph, xmlNodePtr root)
group->items = g_slist_append(group->items, item);
break;
}
-
+
node = node->next;
}
return group;
error:
emjh_free_group(group);
-
+
return NULL;
}
@@ -250,7 +250,7 @@ static int
emjh_construct(EPluginHook *eph, EPlugin *ep, xmlNodePtr root)
{
xmlNodePtr node;
-
+
d(printf("loading junk hook\n"));
if (((EPluginHookClass *)emjh_parent_class)->construct(eph, ep, root) == -1)
@@ -273,7 +273,7 @@ emjh_construct(EPluginHook *eph, EPlugin *ep, xmlNodePtr root)
}
node = node->next;
}
-
+
eph->plugin = ep;
return 0;
@@ -284,7 +284,7 @@ static void
emjh_enable(EPluginHook *eph, int state)
{
GSList *g;
-
+
g = emjh->groups;
if (emjh_types == NULL)
return;
@@ -315,7 +315,7 @@ GType
em_junk_hook_get_type(void)
{
static GType type = 0;
-
+
if (!type) {
static const GTypeInfo info = {
sizeof(EMJunkHookClass), NULL, NULL, (GClassInitFunc) emjh_class_init, NULL, NULL,
@@ -325,7 +325,7 @@ em_junk_hook_get_type(void)
emjh_parent_class = g_type_class_ref(e_plugin_hook_get_type());
type = g_type_register_static(e_plugin_hook_get_type(), "EMJunkHook", &info, 0);
}
-
+
return type;
}
@@ -342,7 +342,7 @@ GType
emj_get_type(void)
{
static GType type = 0;
-
+
if (!type) {
static const GTypeInfo info = {
sizeof(EMJunkClass), NULL, NULL, (GClassInitFunc) emj_class_init, NULL, NULL,
@@ -352,11 +352,11 @@ emj_get_type(void)
emj_parent = g_type_class_ref(G_TYPE_OBJECT);
type = g_type_register_static(G_TYPE_OBJECT, "EMJunk", &info, 0);
}
-
+
return type;
}
-void
+void
em_junk_hook_register_type(GType type)
{
EMJunk *klass;
diff --git a/mail/em-mailer-prefs.c b/mail/em-mailer-prefs.c
index a47f274e5b..9746e620bb 100644
--- a/mail/em-mailer-prefs.c
+++ b/mail/em-mailer-prefs.c
@@ -72,7 +72,7 @@ enum {
HEADER_LIST_ENABLED_COLUMN, /* is the header enabled? */
HEADER_LIST_IS_DEFAULT_COLUMN, /* is this header a default header, eg From: */
HEADER_LIST_HEADER_COLUMN, /* the real name of this header */
- HEADER_LIST_N_COLUMNS,
+ HEADER_LIST_N_COLUMNS,
};
static GType col_types[] = {
@@ -91,7 +91,7 @@ static const char *default_headers[] = {
N_("Bcc"),
N_("Subject"),
N_("Date"),
- N_("Newsgroups"),
+ N_("Newsgroups"),
"x-evolution-mailer", /* DO NOT translate */
};
@@ -112,7 +112,7 @@ GtkType
em_mailer_prefs_get_type (void)
{
static GType type = 0;
-
+
if (!type) {
GTypeInfo type_info = {
sizeof (EMMailerPrefsClass),
@@ -123,10 +123,10 @@ em_mailer_prefs_get_type (void)
0,
(GInstanceInitFunc) em_mailer_prefs_init,
};
-
+
type = g_type_register_static (gtk_vbox_get_type (), "EMMailerPrefs", &type_info, 0);
}
-
+
return type;
}
@@ -134,10 +134,10 @@ static void
em_mailer_prefs_class_init (EMMailerPrefsClass *klass)
{
GObjectClass *object_class;
-
+
object_class = (GObjectClass *) klass;
parent_class = g_type_class_ref (gtk_vbox_get_type ());
-
+
object_class->finalize = em_mailer_prefs_finalise;
}
@@ -151,9 +151,9 @@ static void
em_mailer_prefs_finalise (GObject *obj)
{
EMMailerPrefs *prefs = (EMMailerPrefs *) obj;
-
+
g_object_unref (prefs->gui);
-
+
((GObjectClass *)(parent_class))->finalize (obj);
}
@@ -189,7 +189,7 @@ labels_changed (EMMailerPrefs *prefs)
const char *cstring;
char *string;
int i;
-
+
for (i = 4; i >= 0; i--) {
GdkColor color;
@@ -199,9 +199,9 @@ labels_changed (EMMailerPrefs *prefs)
color.red, color.green, color.blue);
list = g_slist_prepend (list, string);
}
-
+
gconf_client_set_list (prefs->gconf, "/apps/evolution/mail/labels", GCONF_VALUE_STRING, list, NULL);
-
+
l = list;
while (l != NULL) {
n = l->next;
@@ -228,7 +228,7 @@ restore_labels_clicked (GtkWidget *widget, gpointer user_data)
{
EMMailerPrefs *prefs = (EMMailerPrefs *) user_data;
int i;
-
+
for (i = 0; i < 5; i++) {
gtk_entry_set_text (prefs->labels[i].name, _(label_defaults[i].name));
color_button_set_color (prefs->labels[i].color, label_defaults[i].colour);
@@ -243,13 +243,13 @@ emmp_header_remove_sensitivity (EMMailerPrefs *prefs)
GtkTreeSelection *selection = gtk_tree_view_get_selection (prefs->header_list);
gboolean is_default;
- /* remove button should be sensitive if the currenlty selected entry in the list view
- is not a default header. if there are no entries, or none is selected, it should be
+ /* remove button should be sensitive if the currenlty selected entry in the list view
+ is not a default header. if there are no entries, or none is selected, it should be
disabled
*/
if (gtk_tree_selection_get_selected (selection, NULL, &iter)) {
- gtk_tree_model_get (GTK_TREE_MODEL (prefs->header_list_store), &iter,
- HEADER_LIST_IS_DEFAULT_COLUMN, &is_default,
+ gtk_tree_model_get (GTK_TREE_MODEL (prefs->header_list_store), &iter,
+ HEADER_LIST_IS_DEFAULT_COLUMN, &is_default,
-1);
if (is_default)
gtk_widget_set_sensitive (GTK_WIDGET (prefs->remove_header), FALSE);
@@ -264,16 +264,16 @@ static gboolean
emmp_header_is_valid (const char *header)
{
const char *p = header;
-
+
if (header[0] == 0)
return FALSE;
-
+
while (*p) {
if ((*p == ':') || (*p == ' '))
return FALSE;
p++;
}
-
+
return TRUE;
}
@@ -283,9 +283,9 @@ emmp_header_add_sensitivity (EMMailerPrefs *prefs)
const char *entry_contents;
GtkTreeIter iter;
gboolean valid;
-
- /* the add header button should be sensitive if the text box contains
- a valid header string, that is not a duplicate with something already
+
+ /* the add header button should be sensitive if the text box contains
+ a valid header string, that is not a duplicate with something already
in the list view
*/
entry_contents = gtk_entry_get_text (GTK_ENTRY (prefs->entry_header));
@@ -293,23 +293,23 @@ emmp_header_add_sensitivity (EMMailerPrefs *prefs)
gtk_widget_set_sensitive (GTK_WIDGET (prefs->add_header), FALSE);
return;
}
-
+
/* check if this is a duplicate */
valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (prefs->header_list_store), &iter);
while (valid) {
char *header_name;
-
- gtk_tree_model_get (GTK_TREE_MODEL (prefs->header_list_store), &iter,
- HEADER_LIST_HEADER_COLUMN, &header_name,
+
+ gtk_tree_model_get (GTK_TREE_MODEL (prefs->header_list_store), &iter,
+ HEADER_LIST_HEADER_COLUMN, &header_name,
-1);
if (g_ascii_strcasecmp (header_name, entry_contents) == 0) {
gtk_widget_set_sensitive (GTK_WIDGET (prefs->add_header), FALSE);
return;
}
-
+
valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (prefs->header_list_store), &iter);
}
-
+
gtk_widget_set_sensitive (GTK_WIDGET (prefs->add_header), TRUE);
}
@@ -319,7 +319,7 @@ emmp_save_headers (EMMailerPrefs *prefs)
GSList *header_list;
GtkTreeIter iter;
gboolean valid;
-
+
/* Headers */
header_list = NULL;
valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (prefs->header_list_store), &iter);
@@ -327,19 +327,19 @@ emmp_save_headers (EMMailerPrefs *prefs)
struct _EMMailerPrefsHeader h;
gboolean enabled;
char *xml;
-
- gtk_tree_model_get (GTK_TREE_MODEL (prefs->header_list_store), &iter,
- HEADER_LIST_HEADER_COLUMN, &h.name,
- HEADER_LIST_ENABLED_COLUMN, &enabled,
+
+ gtk_tree_model_get (GTK_TREE_MODEL (prefs->header_list_store), &iter,
+ HEADER_LIST_HEADER_COLUMN, &h.name,
+ HEADER_LIST_ENABLED_COLUMN, &enabled,
-1);
h.enabled = enabled;
-
+
if ((xml = em_mailer_prefs_header_to_xml (&h)))
header_list = g_slist_append (header_list, xml);
-
+
valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (prefs->header_list_store), &iter);
}
-
+
gconf_client_set_list (prefs->gconf, "/apps/evolution/mail/display/headers", GCONF_VALUE_STRING, header_list, NULL);
g_slist_foreach (header_list, (GFunc) g_free, NULL);
g_slist_free (header_list);
@@ -352,14 +352,14 @@ emmp_header_list_enabled_toggled (GtkCellRendererToggle *cell, const char *path_
GtkTreePath *path = gtk_tree_path_new_from_string (path_string);
GtkTreeIter iter;
int enabled;
-
+
gtk_tree_model_get_iter (model, &iter, path);
gtk_tree_model_get (model, &iter, HEADER_LIST_ENABLED_COLUMN, &enabled, -1);
enabled = !enabled;
gtk_list_store_set (GTK_LIST_STORE (model), &iter, HEADER_LIST_ENABLED_COLUMN,
enabled, -1);
gtk_tree_path_free (path);
-
+
emmp_save_headers (prefs);
}
@@ -369,16 +369,16 @@ emmp_header_add_header (GtkWidget *widget, EMMailerPrefs *prefs)
GtkTreeModel *model = GTK_TREE_MODEL (prefs->header_list_store);
GtkTreeIter iter;
const gchar *text = gtk_entry_get_text (prefs->entry_header);
-
+
g_strstrip ((gchar *)text);
if (text && (strlen (text)>0)) {
gtk_list_store_append (GTK_LIST_STORE (model), &iter);
- gtk_list_store_set (GTK_LIST_STORE (model), &iter,
- HEADER_LIST_NAME_COLUMN, text,
- HEADER_LIST_ENABLED_COLUMN, TRUE,
- HEADER_LIST_HEADER_COLUMN, text,
- HEADER_LIST_IS_DEFAULT_COLUMN, FALSE,
+ gtk_list_store_set (GTK_LIST_STORE (model), &iter,
+ HEADER_LIST_NAME_COLUMN, text,
+ HEADER_LIST_ENABLED_COLUMN, TRUE,
+ HEADER_LIST_HEADER_COLUMN, text,
+ HEADER_LIST_IS_DEFAULT_COLUMN, FALSE,
-1);
gtk_entry_set_text (prefs->entry_header, "");
emmp_header_remove_sensitivity (prefs);
@@ -395,21 +395,21 @@ emmp_header_remove_header (GtkWidget *button, gpointer user_data)
GtkTreeModel *model = GTK_TREE_MODEL (prefs->header_list_store);
GtkTreeSelection *selection = gtk_tree_view_get_selection (prefs->header_list);
GtkTreeIter iter;
-
+
if (!gtk_tree_selection_get_selected (selection, NULL, &iter))
return;
-
+
gtk_list_store_remove (GTK_LIST_STORE (model), &iter);
emmp_header_remove_sensitivity (prefs);
-
+
emmp_save_headers (prefs);
}
-static void
+static void
emmp_header_list_row_selected (GtkTreeSelection *selection, gpointer user_data)
{
EMMailerPrefs *prefs = (EMMailerPrefs *) user_data;
-
+
emmp_header_remove_sensitivity (prefs);
}
@@ -417,7 +417,7 @@ static void
emmp_header_entry_changed (GtkWidget *entry, gpointer user_data)
{
EMMailerPrefs *prefs = (EMMailerPrefs *) user_data;
-
+
emmp_header_add_sensitivity (prefs);
}
@@ -425,7 +425,7 @@ static void
mark_seen_timeout_changed (GtkSpinButton *spin, EMMailerPrefs *prefs)
{
int timeout;
-
+
timeout = (int) (gtk_spin_button_get_value (prefs->timeout) * 1000.0);
gconf_client_set_int (prefs->gconf, "/apps/evolution/mail/display/mark_seen_timeout", timeout, NULL);
}
@@ -434,9 +434,9 @@ static void
address_compress_count_changed (GtkSpinButton *spin, EMMailerPrefs *prefs)
{
int count;
-
+
count = (int) gtk_spin_button_get_value (prefs->address_count);
-
+
gconf_client_set_int (prefs->gconf, "/apps/evolution/mail/display/address_count", count, NULL);
}
@@ -444,9 +444,9 @@ static void
mlimit_count_changed (GtkSpinButton *spin, EMMailerPrefs *prefs)
{
int count;
-
+
count = (int) gtk_spin_button_get_value (prefs->mlimit_count);
-
+
gconf_client_set_int (prefs->gconf, "/apps/evolution/mail/display/message_text_part_limit", count, NULL);
}
@@ -457,13 +457,13 @@ spin_button_init (EMMailerPrefs *prefs, GtkSpinButton *spin, const char *key, fl
double min, max;
char *mkey, *p;
int val;
-
+
gtk_spin_button_get_range (spin, &min, &max);
-
+
mkey = g_alloca (strlen (key) + 5);
p = g_stpcpy (mkey, key);
*p++ = '_';
-
+
/* see if the admin locked down the min value */
strcpy (p, "min");
val = gconf_client_get_int (prefs->gconf, mkey, &err);
@@ -471,7 +471,7 @@ spin_button_init (EMMailerPrefs *prefs, GtkSpinButton *spin, const char *key, fl
g_clear_error (&err);
else
min = (1.0 * val) / div;
-
+
/* see if the admin locked down the max value */
strcpy (p, "max");
val = gconf_client_get_int (prefs->gconf, mkey, &err);
@@ -479,18 +479,18 @@ spin_button_init (EMMailerPrefs *prefs, GtkSpinButton *spin, const char *key, fl
g_clear_error (&err);
else
max = (1.0 * val) / div;
-
+
gtk_spin_button_set_range (spin, min, max);
-
+
/* get the value */
val = gconf_client_get_int (prefs->gconf, key, NULL);
gtk_spin_button_set_value (spin, (1.0 * val) / div);
-
+
if (value_changed) {
g_object_set_data ((GObject *) spin, "key", (void *) key);
g_signal_connect (spin, "value-changed", value_changed, prefs);
}
-
+
if (!gconf_client_key_is_writable (prefs->gconf, key, NULL))
gtk_widget_set_sensitive ((GtkWidget *) spin, FALSE);
}
@@ -499,7 +499,7 @@ static void
toggle_button_toggled (GtkToggleButton *toggle, EMMailerPrefs *prefs)
{
const char *key;
-
+
key = g_object_get_data ((GObject *) toggle, "key");
gconf_client_set_bool (prefs->gconf, key, gtk_toggle_button_get_active (toggle), NULL);
}
@@ -520,7 +520,7 @@ static void
toggle_button_toggled_not (GtkToggleButton *toggle, EMMailerPrefs *prefs)
{
const char *key;
-
+
key = g_object_get_data ((GObject *) toggle, "key");
gconf_client_set_bool (prefs->gconf, key, !gtk_toggle_button_get_active (toggle), NULL);
}
@@ -530,12 +530,12 @@ static void
custom_font_changed (GtkToggleButton *toggle, EMMailerPrefs *prefs)
{
gboolean use_custom;
-
+
use_custom = !gtk_toggle_button_get_active (toggle);
-
+
gtk_widget_set_sensitive (GTK_WIDGET (prefs->font_fixed), use_custom);
gtk_widget_set_sensitive (GTK_WIDGET (prefs->font_variable), use_custom);
-
+
gconf_client_set_bool (prefs->gconf, "/apps/evolution/mail/display/fonts/use_custom", use_custom, NULL);
}
@@ -544,7 +544,7 @@ font_changed (GtkFontButton *font_button, EMMailerPrefs *prefs)
{
const gchar *key;
const gchar *font_name;
-
+
key = g_object_get_data (G_OBJECT (font_button), "key");
font_name = gtk_font_button_get_font_name (font_button);
gconf_client_set_string (prefs->gconf, key, font_name, NULL);
@@ -554,7 +554,7 @@ static void
toggle_button_init (EMMailerPrefs *prefs, GtkToggleButton *toggle, int not, const char *key, GCallback toggled)
{
gboolean bool;
-
+
bool = gconf_client_get_bool (prefs->gconf, key, NULL);
gtk_toggle_button_set_active (toggle, not ? !bool : bool);
@@ -562,7 +562,7 @@ toggle_button_init (EMMailerPrefs *prefs, GtkToggleButton *toggle, int not, cons
g_object_set_data ((GObject *) toggle, "key", (void *) key);
g_signal_connect (toggle, "toggled", toggled, prefs);
}
-
+
if (!gconf_client_key_is_writable (prefs->gconf, key, NULL))
gtk_widget_set_sensitive ((GtkWidget *) toggle, FALSE);
}
@@ -572,11 +572,11 @@ charset_activate (GtkWidget *item, EMMailerPrefs *prefs)
{
GtkWidget *menu;
char *string;
-
+
menu = gtk_option_menu_get_menu (prefs->charset);
if (!(string = e_charset_picker_get_charset (menu)))
string = g_strdup (e_iconv_locale_charset ());
-
+
gconf_client_set_string (prefs->gconf, "/apps/evolution/mail/display/charset", string, NULL);
g_free (string);
}
@@ -587,19 +587,19 @@ charset_menu_init (EMMailerPrefs *prefs)
GtkWidget *menu, *item;
GList *items;
char *buf;
-
+
buf = gconf_client_get_string (prefs->gconf, "/apps/evolution/mail/display/charset", NULL);
menu = e_charset_picker_new (buf && *buf ? buf : e_iconv_locale_charset ());
gtk_option_menu_set_menu (prefs->charset, GTK_WIDGET (menu));
g_free (buf);
-
+
items = GTK_MENU_SHELL (menu)->children;
while (items) {
item = items->data;
g_signal_connect (item, "activate", G_CALLBACK (charset_activate), prefs);
items = items->next;
}
-
+
if (!gconf_client_key_is_writable (prefs->gconf, "/apps/evolution/mail/display/charset", NULL))
gtk_widget_set_sensitive ((GtkWidget *) prefs->charset, FALSE);
}
@@ -608,7 +608,7 @@ static void
trash_days_activate (GtkWidget *item, EMMailerPrefs *prefs)
{
int days;
-
+
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);
}
@@ -618,29 +618,29 @@ emmp_empty_trash_init (EMMailerPrefs *prefs)
{
int locked, days, hist = 0, i;
GtkWidget *menu, *item;
-
+
toggle_button_init (prefs, prefs->empty_trash, FALSE,
"/apps/evolution/mail/trash/empty_on_exit",
G_CALLBACK (toggle_button_toggled));
-
+
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;
-
+
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);
-
+
gtk_widget_show (item);
gtk_menu_shell_append((GtkMenuShell *)menu, item);
}
-
+
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);
-
+
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);
}
@@ -649,7 +649,7 @@ static void
junk_days_activate (GtkWidget *item, EMMailerPrefs *prefs)
{
int days;
-
+
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);
}
@@ -659,29 +659,29 @@ emmp_empty_junk_init (EMMailerPrefs *prefs)
{
int 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));
-
+
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;
-
+
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);
-
+
gtk_widget_show (item);
gtk_menu_shell_append((GtkMenuShell *)menu, item);
}
-
+
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);
-
+
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);
}
@@ -690,14 +690,14 @@ static void
http_images_changed (GtkWidget *widget, EMMailerPrefs *prefs)
{
int when;
-
+
if (gtk_toggle_button_get_active (prefs->images_always))
when = MAIL_CONFIG_HTTP_ALWAYS;
else if (gtk_toggle_button_get_active (prefs->images_sometimes))
when = MAIL_CONFIG_HTTP_SOMETIMES;
else
when = MAIL_CONFIG_HTTP_NEVER;
-
+
gconf_client_set_int (prefs->gconf, "/apps/evolution/mail/display/load_http_images", when, NULL);
}
@@ -706,7 +706,7 @@ static void
notify_type_changed (GtkWidget *widget, EMMailerPrefs *prefs)
{
int type;
-
+
if (gtk_toggle_button_get_active (prefs->notify_not))
type = MAIL_CONFIG_NOTIFY_NOT;
else if (gtk_toggle_button_get_active (prefs->notify_beep))
@@ -773,7 +773,7 @@ junk_plugin_changed (GtkWidget *combo, EMMailerPrefs *prefs)
{
char *def_plugin = gtk_combo_box_get_active_text(GTK_COMBO_BOX (combo));
const GList *plugins = mail_session_get_junk_plugins();
-
+
gconf_client_set_string (prefs->gconf, "/apps/evolution/mail/junk/default_plugin", def_plugin, NULL);
while (plugins) {
struct _EMJunkHookItem *item = plugins->data;;
@@ -798,8 +798,8 @@ junk_plugin_changed (GtkWidget *combo, EMMailerPrefs *prefs)
html = g_strdup_printf ("<i>%s</i>", text);
gtk_label_set_markup (prefs->plugin_status, html);
g_free (html);
- g_free (text);
- }
+ g_free (text);
+ }
break;
}
plugins = plugins->next;
@@ -816,30 +816,30 @@ junk_plugin_setup (GtkWidget *combo, EMMailerPrefs *prefs)
if (!plugins || !g_list_length ((GList *)plugins)) {
gtk_combo_box_append_text (GTK_COMBO_BOX (combo), _("No Junk plugin available"));
- gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0);
+ gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0);
gtk_widget_set_sensitive (GTK_WIDGET (combo), FALSE);
gtk_widget_hide (GTK_WIDGET (prefs->plugin_image));
gtk_widget_hide (GTK_WIDGET (prefs->plugin_status));
gtk_image_set_from_stock (prefs->plugin_image, NULL, 0);
g_free (pdefault);
-
+
return;
}
-
+
while (plugins) {
struct _EMJunkHookItem *item = plugins->data;;
-
+
gtk_combo_box_append_text (GTK_COMBO_BOX (combo), item->plugin_name);
if (!def_set && pdefault && item->plugin_name && !strcmp(pdefault, item->plugin_name)) {
gboolean status;
-
+
def_set = TRUE;
gtk_combo_box_set_active (GTK_COMBO_BOX (combo), index);
status = e_plugin_invoke (item->hook->hook.plugin, item->validate_binary, NULL) != NULL;
if (status) {
char *text, *html;
gtk_image_set_from_stock (prefs->plugin_image, "gtk-dialog-info", GTK_ICON_SIZE_MENU);
- /* May be a better text */
+ /* May be a better text */
text = g_strdup_printf (_("%s plugin is available and the binary is installed."), item->plugin_name);
html = g_strdup_printf ("<i>%s</i>", text);
gtk_label_set_markup (prefs->plugin_status, html);
@@ -853,7 +853,7 @@ junk_plugin_setup (GtkWidget *combo, EMMailerPrefs *prefs)
html = g_strdup_printf ("<i>%s</i>", text);
gtk_label_set_markup (prefs->plugin_status, html);
g_free (html);
- g_free (text);
+ g_free (text);
}
}
plugins = plugins->next;
@@ -868,7 +868,7 @@ GtkWidget *
create_combo_text_widget (void) {
return gtk_combo_box_new_text ();
}
-
+
static void
em_mailer_prefs_construct (EMMailerPrefs *prefs)
{
@@ -886,7 +886,7 @@ em_mailer_prefs_construct (EMMailerPrefs *prefs)
EMConfigTargetPrefs *target;
GSList *l;
char *gladefile;
-
+
gladefile = g_build_filename (EVOLUTION_GLADEDIR,
"mail-config.glade",
NULL);
@@ -910,13 +910,13 @@ em_mailer_prefs_construct (EMMailerPrefs *prefs)
e_config_add_items((EConfig *)ec, l, NULL, NULL, emmp_free, prefs);
/* General tab */
-
+
/* Message Display */
prefs->timeout_toggle = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "chkMarkTimeout"));
toggle_button_init (prefs, prefs->timeout_toggle, FALSE,
"/apps/evolution/mail/display/mark_seen",
G_CALLBACK (toggle_button_toggled));
-
+
prefs->timeout = GTK_SPIN_BUTTON (glade_xml_get_widget (gui, "spinMarkTimeout"));
spin_button_init (prefs, prefs->timeout,
"/apps/evolution/mail/display/mark_seen_timeout",
@@ -926,30 +926,30 @@ em_mailer_prefs_construct (EMMailerPrefs *prefs)
toggle_button_init (prefs, prefs->mlimit_toggle, FALSE,
"/apps/evolution/mail/display/force_message_limit",
G_CALLBACK (toggle_button_toggled));
-
+
prefs->mlimit_count = GTK_SPIN_BUTTON (glade_xml_get_widget (gui, "mlimit_spin"));
spin_button_init (prefs, prefs->mlimit_count,
"/apps/evolution/mail/display/message_text_part_limit",
1, G_CALLBACK (mlimit_count_changed));
-
+
prefs->address_toggle = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "address_checkbox"));
toggle_button_init (prefs, prefs->address_toggle, FALSE,
"/apps/evolution/mail/display/address_compress",
G_CALLBACK (toggle_button_toggled));
-
+
prefs->address_count = GTK_SPIN_BUTTON (glade_xml_get_widget (gui, "address_spin"));
spin_button_init (prefs, prefs->address_count,
"/apps/evolution/mail/display/address_count",
1, G_CALLBACK (address_compress_count_changed));
-
+
prefs->charset = GTK_OPTION_MENU (glade_xml_get_widget (gui, "omenuCharset"));
charset_menu_init (prefs);
-
+
prefs->citation_highlight = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "chkHighlightCitations"));
toggle_button_init (prefs, prefs->citation_highlight, FALSE,
"/apps/evolution/mail/display/mark_citations",
G_CALLBACK (toggle_button_toggled));
-
+
prefs->citation_color = GTK_COLOR_BUTTON (glade_xml_get_widget (gui, "colorButtonHighlightCitations"));
buf = gconf_client_get_string (prefs->gconf, "/apps/evolution/mail/display/citation_colour", NULL);
color_button_set_color (prefs->citation_color, buf ? buf : "#737373");
@@ -957,40 +957,40 @@ em_mailer_prefs_construct (EMMailerPrefs *prefs)
if (!gconf_client_key_is_writable (prefs->gconf, "/apps/evolution/mail/display/citation_colour", NULL))
gtk_widget_set_sensitive ((GtkWidget *) prefs->citation_color, FALSE);
g_free (buf);
-
+
/* Deleting Mail */
prefs->empty_trash = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "chkEmptyTrashOnExit"));
prefs->empty_trash_days = GTK_OPTION_MENU (glade_xml_get_widget (gui, "omenuEmptyTrashDays"));
emmp_empty_trash_init (prefs);
-
+
prefs->confirm_expunge = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "chkConfirmExpunge"));
toggle_button_init (prefs, prefs->confirm_expunge, FALSE,
"/apps/evolution/mail/prompts/expunge",
G_CALLBACK (toggle_button_toggled));
-
+
/* New Mail Notification */
locked = !gconf_client_key_is_writable (prefs->gconf, "/apps/evolution/mail/notify/type", NULL);
-
+
val = gconf_client_get_int (prefs->gconf, "/apps/evolution/mail/notify/type", NULL);
prefs->notify_not = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "radNotifyNot"));
gtk_toggle_button_set_active (prefs->notify_not, val == MAIL_CONFIG_NOTIFY_NOT);
g_signal_connect (prefs->notify_not, "toggled", G_CALLBACK (notify_type_changed), prefs);
if (locked)
gtk_widget_set_sensitive ((GtkWidget *) prefs->notify_not, FALSE);
-
+
prefs->notify_beep = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "radNotifyBeep"));
- prefs->notify_sound_file = GTK_FILE_CHOOSER_BUTTON (glade_xml_get_widget (gui, "fileNotifyPlaySoundButton"));
+ prefs->notify_sound_file = GTK_FILE_CHOOSER_BUTTON (glade_xml_get_widget (gui, "fileNotifyPlaySoundButton"));
gtk_toggle_button_set_active (prefs->notify_beep, val == MAIL_CONFIG_NOTIFY_BEEP);
g_signal_connect (prefs->notify_beep, "toggled", G_CALLBACK (notify_type_changed), prefs);
if (locked)
gtk_widget_set_sensitive ((GtkWidget *) prefs->notify_beep, FALSE);
-
+
prefs->notify_play_sound = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "radNotifyPlaySound"));
gtk_toggle_button_set_active (prefs->notify_play_sound, val == MAIL_CONFIG_NOTIFY_PLAY_SOUND);
g_signal_connect (prefs->notify_play_sound, "toggled", G_CALLBACK (notify_type_changed), prefs);
if (locked)
gtk_widget_set_sensitive ((GtkWidget *) prefs->notify_play_sound, FALSE);
-
+
buf = gconf_client_get_string (prefs->gconf, "/apps/evolution/mail/notify/sound", NULL);
if (buf && *buf)
gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (prefs->notify_sound_file), buf);
@@ -999,7 +999,7 @@ em_mailer_prefs_construct (EMMailerPrefs *prefs)
if (val != MAIL_CONFIG_NOTIFY_PLAY_SOUND)
gtk_widget_set_sensitive ((GtkWidget *) prefs->notify_sound_file, FALSE);
g_free (buf);
-
+
/* Mail Fonts */
font = gconf_client_get_string (prefs->gconf, "/apps/evolution/mail/display/fonts/monospace", NULL);
prefs->font_fixed = GTK_FONT_BUTTON (glade_xml_get_widget (gui, "FontFixed"));
@@ -1009,7 +1009,7 @@ em_mailer_prefs_construct (EMMailerPrefs *prefs)
g_signal_connect (prefs->font_fixed, "font-set", G_CALLBACK (font_changed), prefs);
if (!gconf_client_key_is_writable (prefs->gconf, "/apps/evolution/mail/display/fonts/monospace", NULL))
gtk_widget_set_sensitive ((GtkWidget *) prefs->font_fixed, FALSE);
-
+
font = gconf_client_get_string (prefs->gconf, "/apps/evolution/mail/display/fonts/variable", NULL);
prefs->font_variable = GTK_FONT_BUTTON (glade_xml_get_widget (gui, "FontVariable"));
gtk_font_button_set_font_name (prefs->font_variable, font);
@@ -1018,29 +1018,29 @@ em_mailer_prefs_construct (EMMailerPrefs *prefs)
g_signal_connect (prefs->font_variable, "font-set", G_CALLBACK (font_changed), prefs);
if (!gconf_client_key_is_writable (prefs->gconf, "/apps/evolution/mail/display/fonts/variable", NULL))
gtk_widget_set_sensitive ((GtkWidget *) prefs->font_variable, FALSE);
-
+
prefs->font_share = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "radFontUseSame"));
toggle_button_init (prefs, prefs->font_share, TRUE,
"/apps/evolution/mail/display/fonts/use_custom",
G_CALLBACK (custom_font_changed));
custom_font_changed (prefs->font_share, prefs);
-
+
/* HTML Mail tab */
-
+
/* Loading Images */
locked = !gconf_client_key_is_writable (prefs->gconf, "/apps/evolution/mail/display/load_http_images", NULL);
-
+
val = gconf_client_get_int (prefs->gconf, "/apps/evolution/mail/display/load_http_images", NULL);
prefs->images_never = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "radImagesNever"));
gtk_toggle_button_set_active (prefs->images_never, val == MAIL_CONFIG_HTTP_NEVER);
if (locked)
gtk_widget_set_sensitive ((GtkWidget *) prefs->images_never, FALSE);
-
+
prefs->images_sometimes = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "radImagesSometimes"));
gtk_toggle_button_set_active (prefs->images_sometimes, val == MAIL_CONFIG_HTTP_SOMETIMES);
if (locked)
gtk_widget_set_sensitive ((GtkWidget *) prefs->images_sometimes, FALSE);
-
+
prefs->images_always = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "radImagesAlways"));
gtk_toggle_button_set_active (prefs->images_always, val == MAIL_CONFIG_HTTP_ALWAYS);
if (locked)
@@ -1054,12 +1054,12 @@ em_mailer_prefs_construct (EMMailerPrefs *prefs)
toggle_button_init (prefs, prefs->show_animated, FALSE,
"/apps/evolution/mail/display/animate_images",
G_CALLBACK (toggle_button_toggled));
-
+
prefs->prompt_unwanted_html = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "chkPromptWantHTML"));
toggle_button_init (prefs, prefs->prompt_unwanted_html, FALSE,
"/apps/evolution/mail/prompts/unwanted_html",
G_CALLBACK (toggle_button_toggled));
-
+
/* Labels... */
locked = !gconf_client_key_is_writable (prefs->gconf, "/apps/evolution/mail/labels", NULL);
i = 0;
@@ -1068,33 +1068,33 @@ em_mailer_prefs_construct (EMMailerPrefs *prefs)
MailConfigLabel *label;
char *widget_name;
label = list->data;
-
+
widget_name = g_strdup_printf ("txtLabel%d", i);
prefs->labels[i].name = GTK_ENTRY (glade_xml_get_widget (gui, widget_name));
gtk_widget_set_sensitive ((GtkWidget *) prefs->labels[i].name, !locked);
g_free (widget_name);
-
+
widget_name = g_strdup_printf ("colorLabel%d", i);
prefs->labels[i].color = GTK_COLOR_BUTTON (glade_xml_get_widget (gui, widget_name));
gtk_widget_set_sensitive ((GtkWidget *) prefs->labels[i].color, !locked);
g_free (widget_name);
-
+
gtk_entry_set_text (prefs->labels[i].name, label->name);
g_signal_connect (prefs->labels[i].name, "changed", G_CALLBACK (label_entry_changed), prefs);
-
+
color_button_set_color (prefs->labels[i].color, label->colour);
g_signal_connect (prefs->labels[i].color, "color-set", G_CALLBACK (label_color_set), prefs);
-
+
atk_object_set_name(gtk_widget_get_accessible((GtkWidget *)prefs->labels[i].color), label->name);
i++;
list = list->next;
}
-
+
prefs->restore_labels = GTK_BUTTON (glade_xml_get_widget (gui, "cmdRestoreLabels"));
gtk_widget_set_sensitive ((GtkWidget *) prefs->restore_labels, !locked);
g_signal_connect (prefs->restore_labels, "clicked", G_CALLBACK (restore_labels_clicked), prefs);
-
+
/* headers */
locked = !gconf_client_key_is_writable (prefs->gconf, "/apps/evolution/mail/display/headers", NULL);
@@ -1108,21 +1108,21 @@ em_mailer_prefs_construct (EMMailerPrefs *prefs)
G_CALLBACK (toggle_button_toggled));
if (!gtk_toggle_button_get_active (prefs->photo_show))
gtk_widget_set_sensitive ((GtkWidget *) prefs->photo_local, FALSE);
-
+
/* always de-sensitised until the user types something in the entry */
prefs->add_header = GTK_BUTTON (glade_xml_get_widget (gui, "cmdHeadersAdd"));
gtk_widget_set_sensitive ((GtkWidget *) prefs->add_header, FALSE);
-
+
/* always de-sensitised until the user selects a header in the list */
prefs->remove_header = GTK_BUTTON (glade_xml_get_widget (gui, "cmdHeadersRemove"));
gtk_widget_set_sensitive ((GtkWidget *) prefs->remove_header, FALSE);
-
+
prefs->entry_header = GTK_ENTRY (glade_xml_get_widget (gui, "txtHeaders"));
gtk_widget_set_sensitive ((GtkWidget *) prefs->entry_header, !locked);
-
+
prefs->header_list = GTK_TREE_VIEW (glade_xml_get_widget (gui, "treeHeaders"));
gtk_widget_set_sensitive ((GtkWidget *) prefs->header_list, !locked);
-
+
selection = gtk_tree_view_get_selection (prefs->header_list);
g_signal_connect (selection, "changed", G_CALLBACK (emmp_header_list_row_selected), prefs);
g_signal_connect (prefs->entry_header, "changed", G_CALLBACK (emmp_header_entry_changed), prefs);
@@ -1132,29 +1132,29 @@ em_mailer_prefs_construct (EMMailerPrefs *prefs)
g_signal_connect (prefs->add_header, "clicked", G_CALLBACK (emmp_header_add_header), prefs);
g_signal_connect (prefs->remove_header, "clicked", G_CALLBACK (emmp_header_remove_header), prefs);
gtk_tree_view_set_model (prefs->header_list, GTK_TREE_MODEL (prefs->header_list_store));
-
+
renderer = gtk_cell_renderer_toggle_new ();
g_object_set (renderer, "activatable", TRUE, NULL);
g_signal_connect (renderer, "toggled", G_CALLBACK (emmp_header_list_enabled_toggled), prefs);
- gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (prefs->header_list), -1,
+ gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (prefs->header_list), -1,
"Enabled", renderer,
- "active", HEADER_LIST_ENABLED_COLUMN,
+ "active", HEADER_LIST_ENABLED_COLUMN,
NULL);
renderer = gtk_cell_renderer_text_new ();
- gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (prefs->header_list), -1,
+ gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (prefs->header_list), -1,
"Name", renderer,
- "text", HEADER_LIST_NAME_COLUMN,
+ "text", HEADER_LIST_NAME_COLUMN,
NULL);
-
- /* populated the listview with entries; firstly we add all the default headers, and then
- we add read header configuration out of gconf. If a header in gconf is a default header,
+
+ /* populated the listview with entries; firstly we add all the default headers, and then
+ we add read header configuration out of gconf. If a header in gconf is a default header,
we update the enabled flag accordingly
*/
header_add_list = NULL;
default_header_hash = g_hash_table_new (g_str_hash, g_str_equal);
for (i = 0; i < G_N_ELEMENTS (default_headers); i++) {
struct _EMMailerPrefsHeader *h;
-
+
h = g_malloc (sizeof (struct _EMMailerPrefsHeader));
h->is_default = TRUE;
h->name = g_strdup (default_headers[i]);
@@ -1162,14 +1162,14 @@ em_mailer_prefs_construct (EMMailerPrefs *prefs)
g_hash_table_insert (default_header_hash, (gpointer) default_headers[i], h);
header_add_list = g_slist_append (header_add_list, h);
}
-
+
/* read stored headers from gconf */
header_config_list = gconf_client_get_list (prefs->gconf, "/apps/evolution/mail/display/headers", GCONF_VALUE_STRING, NULL);
p = header_config_list;
while (p) {
struct _EMMailerPrefsHeader *h, *def;
char *xml = (char *) p->data;
-
+
h = em_mailer_prefs_header_from_xml (xml);
if (h) {
def = g_hash_table_lookup (default_header_hash, h->name);
@@ -1181,38 +1181,38 @@ em_mailer_prefs_construct (EMMailerPrefs *prefs)
header_add_list = g_slist_append (header_add_list, h);
}
}
-
+
p = p->next;
}
-
+
g_hash_table_destroy (default_header_hash);
g_slist_foreach (header_config_list, (GFunc) g_free, NULL);
g_slist_free (header_config_list);
-
+
p = header_add_list;
while (p) {
struct _EMMailerPrefsHeader *h = (struct _EMMailerPrefsHeader *) p->data;
const char *name;
-
+
if (g_ascii_strcasecmp (h->name, EM_FORMAT_HEADER_XMAILER) == 0)
name = _("Mailer");
else
name = _(h->name);
-
+
gtk_list_store_append (prefs->header_list_store, &iter);
- gtk_list_store_set (prefs->header_list_store, &iter,
- HEADER_LIST_NAME_COLUMN, name,
- HEADER_LIST_ENABLED_COLUMN, h->enabled,
- HEADER_LIST_IS_DEFAULT_COLUMN, h->is_default,
- HEADER_LIST_HEADER_COLUMN, h->name,
+ gtk_list_store_set (prefs->header_list_store, &iter,
+ HEADER_LIST_NAME_COLUMN, name,
+ HEADER_LIST_ENABLED_COLUMN, h->enabled,
+ HEADER_LIST_IS_DEFAULT_COLUMN, h->is_default,
+ HEADER_LIST_HEADER_COLUMN, h->name,
-1);
-
+
em_mailer_prefs_header_free (h);
p = p->next;
}
-
+
g_slist_free (header_add_list);
-
+
/* Junk prefs */
prefs->check_incoming = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "chkCheckIncomingMail"));
toggle_button_init (prefs, prefs->check_incoming, FALSE,
@@ -1222,12 +1222,12 @@ em_mailer_prefs_construct (EMMailerPrefs *prefs)
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);
-
+
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"));
- prefs->plugin_image = GTK_IMAGE (glade_xml_get_widget (gui, "plugin_image"));
+ prefs->plugin_image = GTK_IMAGE (glade_xml_get_widget (gui, "plugin_image"));
junk_plugin_setup (GTK_WIDGET (prefs->default_junk_plugin), prefs);
-
+
/* get our toplevel widget */
target = em_config_target_new_prefs(ec, prefs->gconf);
e_config_set_target((EConfig *)ec, (EConfigTarget *)target);
@@ -1239,10 +1239,10 @@ GtkWidget *
em_mailer_prefs_new (void)
{
EMMailerPrefs *new;
-
+
new = (EMMailerPrefs *) g_object_new (em_mailer_prefs_get_type (), NULL);
em_mailer_prefs_construct (new);
-
+
return (GtkWidget *) new;
}
@@ -1253,27 +1253,27 @@ emmp_header_from_xmldoc (xmlDocPtr doc)
struct _EMMailerPrefsHeader *h;
xmlNodePtr root;
xmlChar *name;
-
+
if (doc == NULL)
return NULL;
-
+
root = doc->children;
if (strcmp ((char *)root->name, "header") != 0)
return NULL;
-
+
name = xmlGetProp (root, (const unsigned char *)"name");
if (name == NULL)
return NULL;
-
+
h = g_malloc0 (sizeof (struct _EMMailerPrefsHeader));
h->name = g_strdup ((gchar *)name);
xmlFree (name);
-
+
if (xmlHasProp (root, (const unsigned char *)"enabled"))
h->enabled = 1;
else
h->enabled = 0;
-
+
return h;
}
@@ -1281,9 +1281,9 @@ emmp_header_from_xmldoc (xmlDocPtr doc)
* em_mailer_prefs_header_from_xml
* @xml: XML configuration data
*
- * Parses passed XML data, which should be of
- * the format <header name="foo" enabled />, and
- * returns a EMMailerPrefs structure, or NULL if there
+ * Parses passed XML data, which should be of
+ * the format <header name="foo" enabled />, and
+ * returns a EMMailerPrefs structure, or NULL if there
* is an error.
**/
struct _EMMailerPrefsHeader *
@@ -1291,13 +1291,13 @@ em_mailer_prefs_header_from_xml (const char *xml)
{
struct _EMMailerPrefsHeader *header;
xmlDocPtr doc;
-
+
if (!(doc = xmlParseDoc ((unsigned char *) xml)))
return NULL;
-
+
header = emmp_header_from_xmldoc (doc);
xmlFreeDoc (doc);
-
+
return header;
}
@@ -1305,7 +1305,7 @@ em_mailer_prefs_header_from_xml (const char *xml)
* em_mailer_prefs_header_free
* @header: header to free
*
- * Frees the memory associated with the passed header
+ * Frees the memory associated with the passed header
* structure.
*/
void
@@ -1313,7 +1313,7 @@ em_mailer_prefs_header_free (struct _EMMailerPrefsHeader *header)
{
if (header == NULL)
return;
-
+
g_free (header->name);
g_free (header);
}
@@ -1322,7 +1322,7 @@ em_mailer_prefs_header_free (struct _EMMailerPrefsHeader *header)
* em_mailer_prefs_header_to_xml
* @header: header from which to generate XML
*
- * Returns the passed header as a XML structure,
+ * Returns the passed header as a XML structure,
* or NULL on error
*/
char *
@@ -1333,25 +1333,25 @@ em_mailer_prefs_header_to_xml (struct _EMMailerPrefsHeader *header)
xmlChar *xml;
char *out;
int size;
-
+
g_return_val_if_fail (header != NULL, NULL);
g_return_val_if_fail (header->name != NULL, NULL);
-
+
doc = xmlNewDoc ((const unsigned char *)"1.0");
-
+
root = xmlNewDocNode (doc, NULL, (const unsigned char *)"header", NULL);
xmlSetProp (root, (const unsigned char *)"name", (unsigned char *)header->name);
if (header->enabled)
xmlSetProp (root, (const unsigned char *)"enabled", NULL);
-
+
xmlDocSetRootElement (doc, root);
xmlDocDumpMemory (doc, &xml, &size);
xmlFreeDoc (doc);
-
+
out = g_malloc (size + 1);
memcpy (out, xml, size);
out[size] = '\0';
xmlFree (xml);
-
+
return out;
}
diff --git a/mail/em-mailer-prefs.h b/mail/em-mailer-prefs.h
index fe3bb13003..163d6f9406 100644
--- a/mail/em-mailer-prefs.h
+++ b/mail/em-mailer-prefs.h
@@ -62,14 +62,14 @@ struct _EMMailerPrefsHeader {
struct _EMMailerPrefs {
GtkVBox parent_object;
-
+
GNOME_Evolution_Shell shell;
-
+
struct _GladeXML *gui;
struct _GConfClient *gconf;
-
+
/* General tab */
-
+
/* Message Display */
struct _GtkToggleButton *timeout_toggle;
struct _GtkSpinButton *timeout;
@@ -80,28 +80,28 @@ struct _EMMailerPrefs {
struct _GtkOptionMenu *charset;
struct _GtkToggleButton *citation_highlight;
struct _GtkColorButton *citation_color;
-
+
/* Deleting Mail */
struct _GtkToggleButton *empty_trash;
struct _GtkOptionMenu *empty_trash_days;
struct _GtkToggleButton *confirm_expunge;
-
+
/* New Mail Notification */
struct _GtkToggleButton *notify_not;
struct _GtkToggleButton *notify_beep;
struct _GtkToggleButton *notify_play_sound;
struct _GtkFileChooserButton *notify_sound_file;
-
+
/* HTML Mail tab */
struct _GtkFontButton *font_variable;
struct _GtkFontButton *font_fixed;
struct _GtkToggleButton *font_share;
-
+
/* Loading Images */
struct _GtkToggleButton *images_always;
struct _GtkToggleButton *images_sometimes;
struct _GtkToggleButton *images_never;
-
+
struct _GtkToggleButton *show_animated;
struct _GtkToggleButton *autodetect_links;
struct _GtkToggleButton *prompt_unwanted_html;
@@ -126,7 +126,7 @@ struct _EMMailerPrefs {
struct _GtkToggleButton *check_incoming;
struct _GtkToggleButton *empty_junk;
struct _GtkOptionMenu *empty_junk_days;
-
+
struct _GtkToggleButton *sa_local_tests_only;
struct _GtkToggleButton *sa_use_daemon;
struct _GtkComboBox *default_junk_plugin;
@@ -136,9 +136,9 @@ struct _EMMailerPrefs {
struct _EMMailerPrefsClass {
GtkVBoxClass parent_class;
-
+
/* signals */
-
+
};
GtkType em_mailer_prefs_get_type (void);
diff --git a/mail/em-menu.c b/mail/em-menu.c
index 2f4aa43ad2..69fc7839f8 100644
--- a/mail/em-menu.c
+++ b/mail/em-menu.c
@@ -139,12 +139,12 @@ EMMenu *em_menu_new(const char *menuid)
/**
* em_menu_target_new_select:
* @folder: The selection will ref this for the life of it.
- * @folder_uri:
+ * @folder_uri:
* @uids: The selection will free this when done with it.
- *
+ *
* Create a new selection popup target.
- *
- * Return value:
+ *
+ * Return value:
**/
EMMenuTargetSelect *
em_menu_target_new_select(EMMenu *emp, struct _CamelFolder *folder, const char *folder_uri, GPtrArray *uids)
@@ -168,10 +168,10 @@ em_menu_target_new_select(EMMenu *emp, struct _CamelFolder *folder, const char *
camel_object_ref(folder);
mask &= ~EM_MENU_SELECT_FOLDER;
-
+
if (em_utils_folder_is_sent(folder, folder_uri))
mask &= ~EM_MENU_SELECT_EDIT;
-
+
if (!(em_utils_folder_is_drafts(folder, folder_uri)
|| em_utils_folder_is_outbox(folder, folder_uri))
&& uids->len == 1)
@@ -196,7 +196,7 @@ em_menu_target_new_select(EMMenu *emp, struct _CamelFolder *folder, const char *
mask &= ~EM_MENU_SELECT_MARK_UNREAD;
else
mask &= ~EM_MENU_SELECT_MARK_READ;
-
+
if (flags & CAMEL_MESSAGE_DELETED)
mask &= ~EM_MENU_SELECT_UNDELETE;
else
@@ -211,7 +211,7 @@ em_menu_target_new_select(EMMenu *emp, struct _CamelFolder *folder, const char *
mask &= ~EM_MENU_SELECT_MARK_NOJUNK;
else
mask &= ~EM_MENU_SELECT_MARK_JUNK;
-
+
tmp = camel_message_info_user_tag(info, "follow-up");
if (tmp && *tmp) {
mask &= ~EM_MENU_SELECT_FLAG_CLEAR;
@@ -236,12 +236,12 @@ em_menu_target_new_select(EMMenu *emp, struct _CamelFolder *folder, const char *
/**
* em_menu_target_new_window:
- * @emp:
- * @window:
- *
+ * @emp:
+ * @window:
+ *
* create a dummy target which references some sort of widget.
- *
- * Return value:
+ *
+ * Return value:
**/
EMMenuTargetWidget *
em_menu_target_new_widget(EMMenu *emp, struct _GtkWidget *w)
@@ -352,7 +352,7 @@ GType
em_menu_hook_get_type(void)
{
static GType type = 0;
-
+
if (!type) {
static const GTypeInfo info = {
sizeof(EMMenuHookClass), NULL, NULL, (GClassInitFunc) emph_class_init, NULL, NULL,
@@ -362,6 +362,6 @@ em_menu_hook_get_type(void)
emph_parent_class = g_type_class_ref(e_menu_hook_get_type());
type = g_type_register_static(e_menu_hook_get_type(), "EMMenuHook", &info, 0);
}
-
+
return type;
}
diff --git a/mail/em-message-browser.c b/mail/em-message-browser.c
index 5a963ef3bf..ef6e68b390 100644
--- a/mail/em-message-browser.c
+++ b/mail/em-message-browser.c
@@ -141,11 +141,11 @@ static void
emmb_class_init(GObjectClass *klass)
{
klass->finalize = emmb_finalise;
-
+
((GtkObjectClass *)klass)->destroy = emmb_destroy;
-
+
((EMFolderViewClass *) klass)->update_message_style = FALSE;
-
+
((EMFolderViewClass *)klass)->set_message = emmb_set_message;
((EMFolderViewClass *)klass)->activate = emmb_activate;
}
@@ -177,10 +177,10 @@ static void
window_size_allocate (GtkWidget *widget, GtkAllocation *allocation)
{
GConfClient *gconf;
-
+
/* save to in-memory variable for current session access */
window_size = *allocation;
-
+
/* save the setting across sessions */
gconf = gconf_client_get_default ();
gconf_client_set_int (gconf, "/apps/evolution/mail/message_window/width", window_size.width, NULL);
@@ -193,7 +193,7 @@ emmb_list_message_selected (struct _MessageList *ml, const char *uid, EMMessageB
{
EMFolderView *emfv = (EMFolderView *) emmb;
CamelMessageInfo *info;
-
+
if (uid && (info = camel_folder_get_message_info (emfv->folder, uid))) {
gtk_window_set_title ((GtkWindow *) emmb->window, camel_message_info_subject (info));
gtk_widget_grab_focus ((GtkWidget *) (emmb->view.preview->formathtml.html));
@@ -222,10 +222,10 @@ messagebrowser_key_pressed (EMMessageBrowser *emmb, GdkEventKey *event, void *us
{
if (event->keyval == GDK_Escape) {
gtk_widget_destroy(gtk_widget_get_toplevel((GtkWidget *)emmb));
- g_signal_stop_emission_by_name (emmb, "key-press-event");
+ g_signal_stop_emission_by_name (emmb, "key-press-event");
return TRUE;
}
-
+
return FALSE;
}
@@ -246,34 +246,34 @@ GtkWidget *em_message_browser_window_new(void)
bonobo_ui_component_set_container(uic, BONOBO_OBJREF(uicont), NULL);
em_folder_view_activate((EMFolderView *)emmb, uic, TRUE);
-
+
if (window_size.width == 0) {
/* initialize @window_size with the previous session's size */
GConfClient *gconf;
GError *err = NULL;
-
+
gconf = gconf_client_get_default ();
-
+
window_size.width = gconf_client_get_int (gconf, "/apps/evolution/mail/message_window/width", &err);
if (err != NULL) {
window_size.width = DEFAULT_WIDTH;
g_clear_error (&err);
}
-
+
window_size.height = gconf_client_get_int (gconf, "/apps/evolution/mail/message_window/height", &err);
if (err != NULL) {
window_size.height = DEFAULT_HEIGHT;
g_clear_error (&err);
}
-
+
g_object_unref (gconf);
}
-
+
gtk_window_set_default_size ((GtkWindow *) emmb->window, window_size.width, window_size.height);
g_signal_connect (emmb->window, "size-allocate", G_CALLBACK (window_size_allocate), NULL);
g_signal_connect (((EMFolderView *) emmb)->list, "message_selected", G_CALLBACK (emmb_list_message_selected), emmb);
- g_signal_connect (emmb, "key-press-event" , G_CALLBACK (messagebrowser_key_pressed), NULL);
-
+ g_signal_connect (emmb, "key-press-event" , G_CALLBACK (messagebrowser_key_pressed), NULL);
+
/* cleanup? */
return (GtkWidget *)emmb;
@@ -286,19 +286,19 @@ emmb_set_message(EMFolderView *emfv, const char *uid, int nomarkseen)
{
EMMessageBrowser *emmb = (EMMessageBrowser *) emfv;
CamelMessageInfo *info;
-
+
emmb_parent->set_message(emfv, uid, nomarkseen);
-
+
if (uid == NULL) {
gtk_widget_destroy((GtkWidget *)emfv);
return;
}
-
+
if ((info = camel_folder_get_message_info (emfv->folder, uid))) {
gtk_window_set_title ((GtkWindow *) emmb->window, camel_message_info_subject (info));
camel_folder_free_message_info (emfv->folder, info);
}
-
+
/* Well we don't know if it got displayed (yet) ... but whatever ... */
if (!nomarkseen)
camel_folder_set_message_flags(emfv->folder, uid, CAMEL_MESSAGE_SEEN, CAMEL_MESSAGE_SEEN);
@@ -327,7 +327,7 @@ emmb_activate(EMFolderView *emfv, BonoboUIComponent *uic, int state)
bonobo_ui_component_set_prop(uic, "/commands/EditPaste", "sensitive", "0", NULL);
} else {
const BonoboUIVerb *v;
-
+
for (v = &emmb_verbs[0]; v->cname; v++)
bonobo_ui_component_remove_verb(uic, v->cname);
diff --git a/mail/em-migrate.c b/mail/em-migrate.c
index c290b60330..1c64c5e659 100644
--- a/mail/em-migrate.c
+++ b/mail/em-migrate.c
@@ -86,15 +86,15 @@ emm_load_xml (const char *dirname, const char *filename)
xmlDocPtr doc;
struct stat st;
char *path;
-
+
path = g_strdup_printf ("%s/%s", dirname, filename);
if (stat (path, &st) == -1 || !(doc = xmlParseFile (path))) {
g_free (path);
return NULL;
}
-
+
g_free (path);
-
+
return doc;
}
@@ -103,11 +103,11 @@ emm_save_xml (xmlDocPtr doc, const char *dirname, const char *filename)
{
char *path;
int retval;
-
+
path = g_strdup_printf ("%s/%s", dirname, filename);
retval = e_xml_save_file (path, doc);
g_free (path);
-
+
return retval;
}
@@ -115,15 +115,15 @@ static xmlNodePtr
xml_find_node (xmlNodePtr parent, const char *name)
{
xmlNodePtr node;
-
+
node = parent->children;
while (node != NULL) {
if (node->name && !strcmp ((char *)node->name, name))
return node;
-
+
node = node->next;
}
-
+
return NULL;
}
@@ -132,25 +132,25 @@ upgrade_xml_uris (xmlDocPtr doc, char * (* upgrade_uri) (const char *uri))
{
xmlNodePtr root, node;
char *uri, *new;
-
+
if (!doc || !(root = xmlDocGetRootElement (doc)))
return;
-
+
if (!root->name || strcmp ((char *)root->name, "filteroptions") != 0) {
/* root node is not <filteroptions>, nothing to upgrade */
return;
}
-
+
if (!(node = xml_find_node (root, "ruleset"))) {
/* no ruleset node, nothing to upgrade */
return;
}
-
+
node = node->children;
while (node != NULL) {
if (node->name && !strcmp ((char *)node->name, "rule")) {
xmlNodePtr actionset, part, val, n;
-
+
if ((actionset = xml_find_node (node, "actionset"))) {
/* filters.xml */
part = actionset->children;
@@ -160,26 +160,26 @@ upgrade_xml_uris (xmlDocPtr doc, char * (* upgrade_uri) (const char *uri))
while (val != NULL) {
if (val->name && !strcmp ((char *)val->name, "value")) {
char *type;
-
+
type = (char *)xmlGetProp (val, (const unsigned char *)"type");
if (type && !strcmp ((char *)type, "folder")) {
if ((n = xml_find_node (val, "folder"))) {
uri = (char *)xmlGetProp (n, (const unsigned char *)"uri");
new = upgrade_uri (uri);
xmlFree (uri);
-
+
xmlSetProp (n, (const unsigned char *)"uri", (unsigned char *)new);
g_free (new);
}
}
-
+
xmlFree (type);
}
-
+
val = val->next;
}
}
-
+
part = part->next;
}
} else if ((actionset = xml_find_node (node, "sources"))) {
@@ -190,16 +190,16 @@ upgrade_xml_uris (xmlDocPtr doc, char * (* upgrade_uri) (const char *uri))
uri = (char *)xmlGetProp (n, (const unsigned char *)"uri");
new = upgrade_uri (uri);
xmlFree (uri);
-
+
xmlSetProp (n, (const unsigned char *)"uri", (unsigned char *)new);
g_free (new);
}
-
+
n = n->next;
}
}
}
-
+
node = node->next;
}
}
@@ -255,7 +255,7 @@ static char *
get_base_uri(const char *val)
{
const char *tmp;
-
+
tmp = strchr(val, ':');
if (tmp) {
tmp++;
@@ -263,7 +263,7 @@ get_base_uri(const char *val)
tmp += 2;
tmp = strchr(tmp, '/');
}
-
+
if (tmp)
return g_strndup(val, tmp-val);
else
@@ -274,21 +274,21 @@ static char *
upgrade_xml_uris_1_0 (const char *uri)
{
char *out = NULL;
-
+
/* upgrades camel uri's */
if (strncmp (uri, "imap:", 5) == 0) {
char *base_uri, dir_sep, *folder, *p;
struct _account_info_1_0 *ai;
-
+
/* add namespace, canonicalise dir_sep to / */
base_uri = get_base_uri (uri);
ai = g_hash_table_lookup (accounts_1_0, base_uri);
-
+
if (ai == NULL) {
g_free (base_uri);
return NULL;
}
-
+
dir_sep = ai->u.imap.dir_sep;
if (dir_sep == 0) {
/* no dir_sep listed, try get it from the namespace, if set */
@@ -304,34 +304,34 @@ upgrade_xml_uris_1_0 (const char *uri)
p++;
}
}
-
+
/* give up ... */
if (dir_sep == 0) {
g_free (base_uri);
return NULL;
}
}
-
+
folder = g_strdup (uri + strlen (base_uri) + 1);
-
+
/* Add the namespace before the mailbox name, unless the mailbox is INBOX */
if (ai->u.imap.namespace && strcmp ((char *)folder, "INBOX") != 0)
out = g_strdup_printf ("%s/%s/%s", base_uri, ai->u.imap.namespace, folder);
else
out = g_strdup_printf ("%s/%s", base_uri, folder);
-
+
p = out;
while (*p) {
if (*p == dir_sep)
*p = '/';
p++;
}
-
+
g_free (folder);
g_free (base_uri);
} else if (strncmp (uri, "exchange:", 9) == 0) {
char *base_uri, *folder, *p;
-
+
/* exchange://user@host/exchange/ * -> exchange://user@host/personal/ * */
/* Any url encoding (%xx) in the folder name is also removed */
base_uri = get_base_uri (uri);
@@ -346,7 +346,7 @@ upgrade_xml_uris_1_0 (const char *uri)
/* these should be converted in the accounts table when it is loaded */
g_warning ("exchanget: uri not converted: '%s'", uri);
}
-
+
return out;
}
@@ -357,7 +357,7 @@ parse_lsub (const char *lsub, char *dir_sep)
static regex_t pat;
regmatch_t match[3];
char *m = "^\\* LSUB \\([^)]*\\) \"?([^\" ]+)\"? \"?(.*)\"?$";
-
+
if (!comp) {
if (regcomp (&pat, m, REG_EXTENDED|REG_ICASE) == -1) {
g_warning ("reg comp '%s' failed: %s", m, g_strerror (errno));
@@ -365,7 +365,7 @@ parse_lsub (const char *lsub, char *dir_sep)
}
comp = 1;
}
-
+
if (regexec (&pat, lsub, 3, match, 0) == 0) {
if (match[1].rm_so != -1 && match[2].rm_so != -1) {
if (dir_sep)
@@ -373,7 +373,7 @@ parse_lsub (const char *lsub, char *dir_sep)
return g_strndup (lsub + match[2].rm_so, match[2].rm_eo - match[2].rm_so);
}
}
-
+
return NULL;
}
@@ -384,19 +384,19 @@ read_imap_storeinfo (struct _account_info_1_0 *si)
guint32 tmp;
char *buf, *folder, dir_sep, *path, *name, *p;
struct _imap_folder_info_1_0 *fi;
-
+
si->u.imap.folders = g_hash_table_new_full (
g_str_hash, g_str_equal,
(GDestroyNotify) NULL,
(GDestroyNotify) imap_folder_info_1_0_free);
-
+
/* get details from uri first */
name = strstr (si->uri, ";override_namespace");
if (name) {
name = strstr (si->uri, ";namespace=");
if (name) {
char *end;
-
+
name += strlen (";namespace=");
if (*name == '\"') {
name++;
@@ -404,11 +404,11 @@ read_imap_storeinfo (struct _account_info_1_0 *si)
} else {
end = strchr (name, ';');
}
-
+
if (end) {
/* try get the dir_sep from the namespace */
si->u.imap.namespace = g_strndup (name, end-name);
-
+
p = si->u.imap.namespace;
while ((dir_sep = *p++)) {
if (dir_sep < '0'
@@ -423,7 +423,7 @@ read_imap_storeinfo (struct _account_info_1_0 *si)
}
}
}
-
+
/* now load storeinfo if it exists */
path = g_build_filename (g_get_home_dir (), "evolution", "mail", "imap", si->base_uri + 7, "storeinfo", NULL);
storeinfo = fopen (path, "r");
@@ -432,7 +432,7 @@ read_imap_storeinfo (struct _account_info_1_0 *si)
g_warning ("could not find imap store info '%s'", path);
return -1;
}
-
+
/* ignore version */
camel_file_util_decode_uint32 (storeinfo, &tmp);
camel_file_util_decode_uint32 (storeinfo, &si->u.imap.capabilities);
@@ -446,9 +446,9 @@ read_imap_storeinfo (struct _account_info_1_0 *si)
|| si->u.imap.namespace[strlen (si->u.imap.namespace) - 1] == '/')) {
si->u.imap.namespace[strlen (si->u.imap.namespace) - 1] = 0;
}
-
+
d(printf ("namespace '%s' dir_sep '%c'\n", si->u.imap.namespace, si->u.imap.dir_sep ? si->u.imap.dir_sep : '?'));
-
+
while (camel_file_util_decode_string (storeinfo, &buf) == 0) {
folder = parse_lsub (buf, &dir_sep);
if (folder) {
@@ -467,9 +467,9 @@ read_imap_storeinfo (struct _account_info_1_0 *si)
g_warning ("Could not parse LIST result '%s'\n", buf);
}
}
-
+
fclose (storeinfo);
-
+
return 0;
}
@@ -480,37 +480,37 @@ load_accounts_1_0 (xmlDocPtr doc)
char *val, *tmp;
int count = 0, i;
char key[32];
-
+
if (!(source = e_bconf_get_path (doc, "/Mail/Accounts")))
return 0;
-
+
if ((val = e_bconf_get_value (source, "num"))) {
count = atoi (val);
xmlFree (val);
}
-
+
/* load account upgrade info for each account */
for (i = 0; i < count; i++) {
struct _account_info_1_0 *ai;
char *rawuri;
-
+
sprintf (key, "source_url_%d", i);
if (!(rawuri = e_bconf_get_value (source, key)))
continue;
-
+
ai = g_malloc0 (sizeof (struct _account_info_1_0));
ai->uri = e_bconf_hex_decode (rawuri);
ai->base_uri = get_base_uri (ai->uri);
sprintf (key, "account_name_%d", i);
ai->name = e_bconf_get_string (source, key);
-
+
d(printf("load account '%s'\n", ai->uri));
-
+
if (!strncmp (ai->uri, "imap:", 5)) {
read_imap_storeinfo (ai);
} else if (!strncmp (ai->uri, "exchange:", 9)) {
xmlNodePtr node;
-
+
d(printf (" upgrade exchange account\n"));
/* small hack, poke the source_url into the transport_url for exchanget: transports
- this will be picked up later in the conversion */
@@ -527,12 +527,12 @@ load_accounts_1_0 (xmlDocPtr doc)
}
}
xmlFree (rawuri);
-
+
g_hash_table_insert (accounts_1_0, ai->base_uri, ai);
if (ai->name)
g_hash_table_insert (accounts_name_1_0, ai->name, ai);
}
-
+
return 0;
}
@@ -543,15 +543,15 @@ em_migrate_1_0 (const char *evolution_dir, xmlDocPtr config_xmldb, xmlDocPtr fil
g_str_hash, g_str_equal,
(GDestroyNotify) NULL,
(GDestroyNotify) account_info_1_0_free);
- accounts_name_1_0 = g_hash_table_new (g_str_hash, g_str_equal);
+ accounts_name_1_0 = g_hash_table_new (g_str_hash, g_str_equal);
load_accounts_1_0 (config_xmldb);
upgrade_xml_uris(filters, upgrade_xml_uris_1_0);
upgrade_xml_uris(vfolders, upgrade_xml_uris_1_0);
-
+
g_hash_table_destroy (accounts_1_0);
g_hash_table_destroy (accounts_name_1_0);
-
+
return 0;
}
@@ -562,7 +562,7 @@ is_xml1encoded (const char *txt)
const unsigned char *p;
int isxml1 = FALSE;
int is8bit = FALSE;
-
+
p = (const unsigned char *)txt;
while (*p) {
if (p[0] == '\\' && p[1] == 'U' && p[2] == '+'
@@ -574,11 +574,11 @@ is_xml1encoded (const char *txt)
is8bit = TRUE;
p++;
}
-
+
/* check for invalid utf8 that needs cleaning */
if (is8bit && !isxml1)
isxml1 = !g_utf8_validate (txt, -1, NULL);
-
+
return isxml1;
}
@@ -588,11 +588,11 @@ decode_xml1 (const char *txt)
GString *out = g_string_new ("");
const unsigned char *p;
char *res;
-
+
/* convert:
\U+XXXX\ -> utf8
8 bit characters -> utf8 (iso-8859-1) */
-
+
p = (const unsigned char *) txt;
while (*p) {
if (p[0] > 0x80
@@ -601,7 +601,7 @@ decode_xml1 (const char *txt)
&& p[7] == '\\')) {
char utf8[8];
gunichar u;
-
+
if (p[0] == '\\') {
memcpy (utf8, p + 3, 4);
utf8[4] = 0;
@@ -616,10 +616,10 @@ decode_xml1 (const char *txt)
}
p++;
}
-
+
res = out->str;
g_string_free (out, FALSE);
-
+
return res;
}
@@ -629,17 +629,17 @@ utf8_reencode (const char *txt)
GString *out = g_string_new ("");
gchar *p;
char *res;
-
+
/* convert:
libxml1 8 bit utf8 converted to xml entities byte-by-byte chars -> utf8 */
-
+
p = (gchar *)txt;
-
+
while (*p) {
g_string_append_c (out, (gchar)g_utf8_get_char ((const gchar *)p));
p = (gchar *)g_utf8_next_char (p);
}
-
+
res = out->str;
if (g_utf8_validate (res, -1, NULL)) {
g_string_free (out, FALSE);
@@ -669,9 +669,9 @@ upgrade_xml_1_2_rec (xmlNodePtr node)
xmlNodePtr work;
int i,j;
char *txt, *tmp;
-
+
/* upgrades the content of a node, if the node has a specific parent/node name */
-
+
for (i = 0; tags[i].name; i++) {
if (!strcmp ((char *)node->name, tags[i].name)) {
if (tags[i].tags != NULL) {
@@ -694,7 +694,7 @@ upgrade_xml_1_2_rec (xmlNodePtr node)
}
break;
}
-
+
if (tags[i].props != NULL) {
for (j = 0; tags[i].props[j]; j++) {
txt = (char *)xmlGetProp (node, (unsigned char *)tags[i].props[j]);
@@ -708,13 +708,13 @@ upgrade_xml_1_2_rec (xmlNodePtr node)
}
}
}
-
+
node = node->children;
while (node) {
upgrade_xml_1_2_rec (node);
node = node->next;
}
-
+
return 0;
}
@@ -722,10 +722,10 @@ static int
em_upgrade_xml_1_2 (xmlDocPtr doc)
{
xmlNodePtr root;
-
+
if (!doc || !(root = xmlDocGetRootElement (doc)))
return 0;
-
+
return upgrade_xml_1_2_rec (root);
}
@@ -771,7 +771,7 @@ upgrade_passwords_1_2(void)
if (!strcmp((char *)entry->name, "entry")) {
char *namep = (char *)xmlGetProp(entry, (const unsigned char *)"name"),
*valuep = (char *)xmlGetProp(entry, (const unsigned char *)"value");
-
+
if (namep && valuep) {
char *value = e_bconf_hex_decode(valuep);
guchar *decoded;
@@ -1038,11 +1038,11 @@ static e_gconf_map_list_t gconf_remap_list[] = {
{ "/Mail/Notify", mail_notify_map },
{ "/Mail/Filesel", mail_filesel_map },
{ "/Mail/Composer", mail_composer_map },
-
+
{ "/Importer/Elm", importer_elm_map },
{ "/Importer/Pine", importer_pine_map },
{ "/Importer/Netscape", importer_netscape_map },
-
+
{ 0 },
};
@@ -1066,9 +1066,9 @@ bconf_import(GConfClient *gconf, xmlDocPtr config_xmldb)
char *val, *lab, *col;
GSList *list, *l;
int i;
-
+
e_bconf_import(gconf, config_xmldb, gconf_remap_list);
-
+
/* Labels:
label string + label colour as integer
-> label string:# colour as hex */
@@ -1084,12 +1084,12 @@ bconf_import(GConfClient *gconf, xmlDocPtr config_xmldb)
g_free(col);
} else
strcpy(colx, label_default[i].colour);
-
+
val = g_strdup_printf("%s:%s", lab ? lab : label_default[i].label, colx);
list = g_slist_append(list, val);
g_free(lab);
}
-
+
gconf_client_set_list(gconf, "/apps/evolution/mail/labels", GCONF_VALUE_STRING, list, NULL);
while (list) {
l = list->next;
@@ -1100,15 +1100,15 @@ bconf_import(GConfClient *gconf, xmlDocPtr config_xmldb)
} else {
g_warning("could not find /Mail/Labels in old config database, skipping");
}
-
+
/* Accounts: The flat bonobo-config structure is remapped to a list of xml blobs. Upgrades as necessary */
e_bconf_import_xml_blob(gconf, config_xmldb, account_map, "/Mail/Accounts",
"/apps/evolution/mail/accounts", "account", "uid");
-
+
/* Same for signatures */
e_bconf_import_xml_blob(gconf, config_xmldb, signature_map, "/Mail/Signatures",
"/apps/evolution/mail/signatures", "signature", NULL);
-
+
return 0;
}
@@ -1116,11 +1116,11 @@ static int
em_migrate_1_2(const char *evolution_dir, xmlDocPtr config_xmldb, xmlDocPtr filters, xmlDocPtr vfolders, CamelException *ex)
{
GConfClient *gconf;
-
+
gconf = gconf_client_get_default();
bconf_import(gconf, config_xmldb);
g_object_unref(gconf);
-
+
em_upgrade_xml_1_2(filters);
em_upgrade_xml_1_2(vfolders);
upgrade_passwords_1_2();
@@ -1137,14 +1137,14 @@ em_migrate_1_2(const char *evolution_dir, xmlDocPtr config_xmldb, xmlDocPtr filt
typedef struct _EMMigrateSession {
CamelSession parent_object;
-
+
CamelStore *store; /* new folder tree store */
char *srcdir; /* old folder tree path */
} EMMigrateSession;
typedef struct _EMMigrateSessionClass {
CamelSessionClass parent_class;
-
+
} EMMigrateSessionClass;
static CamelType em_migrate_session_get_type (void);
@@ -1160,7 +1160,7 @@ static CamelType
em_migrate_session_get_type (void)
{
static CamelType type = CAMEL_INVALID_TYPE;
-
+
if (type == CAMEL_INVALID_TYPE) {
type = camel_type_register (
camel_session_get_type (),
@@ -1172,7 +1172,7 @@ em_migrate_session_get_type (void)
NULL,
NULL);
}
-
+
return type;
}
@@ -1180,11 +1180,11 @@ static CamelSession *
em_migrate_session_new (const char *path)
{
CamelSession *session;
-
+
session = CAMEL_SESSION (camel_object_new (EM_MIGRATE_SESSION_TYPE));
-
+
camel_session_construct (session, path);
-
+
return session;
}
@@ -1197,35 +1197,35 @@ static void
em_migrate_setup_progress_dialog (void)
{
GtkWidget *vbox, *hbox, *w;
-
+
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title ((GtkWindow *) window, _("Migrating..."));
gtk_window_set_modal ((GtkWindow *) window, TRUE);
gtk_container_set_border_width ((GtkContainer *) window, 6);
-
+
vbox = gtk_vbox_new (FALSE, 6);
gtk_widget_show (vbox);
gtk_container_add ((GtkContainer *) window, vbox);
-
+
w = gtk_label_new (_("The location and hierarchy of the Evolution mailbox "
"folders has changed since Evolution 1.x.\n\nPlease be "
"patient while Evolution migrates your folders..."));
gtk_label_set_line_wrap ((GtkLabel *) w, TRUE);
gtk_widget_show (w);
gtk_box_pack_start_defaults ((GtkBox *) vbox, w);
-
+
hbox = gtk_hbox_new (FALSE, 6);
gtk_widget_show (hbox);
gtk_box_pack_start_defaults ((GtkBox *) vbox, hbox);
-
+
label = (GtkLabel *) gtk_label_new ("");
gtk_widget_show ((GtkWidget *) label);
gtk_box_pack_start_defaults ((GtkBox *) hbox, (GtkWidget *) label);
-
+
progress = (GtkProgressBar *) gtk_progress_bar_new ();
gtk_widget_show ((GtkWidget *) progress);
gtk_box_pack_start_defaults ((GtkBox *) hbox, (GtkWidget *) progress);
-
+
gtk_widget_show (window);
}
@@ -1239,13 +1239,13 @@ static void
em_migrate_set_folder_name (const char *folder_name)
{
char *text;
-
+
text = g_strdup_printf (_("Migrating `%s':"), folder_name);
gtk_label_set_text (label, text);
g_free (text);
-
+
gtk_progress_bar_set_fraction (progress, 0.0);
-
+
while (gtk_events_pending ())
gtk_main_iteration ();
}
@@ -1254,12 +1254,12 @@ static void
em_migrate_set_progress (double percent)
{
char text[5];
-
+
snprintf (text, sizeof (text), "%d%%", (int) (percent * 100.0f));
-
+
gtk_progress_bar_set_fraction (progress, percent);
gtk_progress_bar_set_text (progress, text);
-
+
while (gtk_events_pending ())
gtk_main_iteration ();
}
@@ -1270,24 +1270,24 @@ is_mail_folder (const char *metadata)
xmlNodePtr node;
xmlDocPtr doc;
char *type;
-
+
if (!(doc = xmlParseFile (metadata))) {
g_warning ("Cannot parse `%s'", metadata);
return FALSE;
}
-
+
if (!(node = xmlDocGetRootElement (doc))) {
g_warning ("`%s' corrupt: document contains no root node", metadata);
xmlFreeDoc (doc);
return FALSE;
}
-
+
if (!node->name || strcmp ((char *)node->name, "efolder") != 0) {
g_warning ("`%s' corrupt: root node is not 'efolder'", metadata);
xmlFreeDoc (doc);
return FALSE;
}
-
+
node = node->children;
while (node != NULL) {
if (node->name && !strcmp ((char *)node->name, "type")) {
@@ -1295,20 +1295,20 @@ is_mail_folder (const char *metadata)
if (!strcmp ((char *)type, "mail")) {
xmlFreeDoc (doc);
xmlFree (type);
-
+
return TRUE;
}
-
+
xmlFree (type);
-
+
break;
}
-
+
node = node->next;
}
-
+
xmlFreeDoc (doc);
-
+
return FALSE;
}
@@ -1320,38 +1320,38 @@ get_local_et_expanded (const char *dirname)
struct stat st;
char *buf, *p;
int thread_list;
-
+
buf = g_strdup_printf ("%s/evolution/config/file:%s", g_get_home_dir (), dirname);
p = buf + strlen (g_get_home_dir ()) + strlen ("/evolution/config/file:");
e_filename_make_safe (p);
-
+
if (stat (buf, &st) == -1) {
g_free (buf);
return -1;
}
-
+
if (!(doc = xmlParseFile (buf))) {
g_free (buf);
return -1;
}
-
+
g_free (buf);
-
+
if (!(node = xmlDocGetRootElement (doc)) || strcmp ((char *)node->name, "expanded_state") != 0) {
xmlFreeDoc (doc);
return -1;
}
-
+
if (!(buf = (char *)xmlGetProp (node, (const unsigned char *)"default"))) {
xmlFreeDoc (doc);
return -1;
}
-
+
thread_list = strcmp (buf, "0") == 0 ? 0 : 1;
xmlFree (buf);
-
+
xmlFreeDoc (doc);
-
+
return thread_list;
}
@@ -1383,7 +1383,7 @@ get_local_store_uri (const char *dirname, char **namep, int *indexp)
node = doc->children;
if (strcmp((char *)node->name, "folderinfo"))
goto dodefault;
-
+
for (node = node->children; node; node = node->next) {
if (node->name && !strcmp ((char *)node->name, "folder")) {
tmp = (char *)xmlGetProp (node, (const unsigned char *)"type");
@@ -1446,7 +1446,7 @@ cp (const char *src, const char *dest, gboolean show_progress, int mode)
errno = EEXIST;
return -1;
}
-
+
if (g_stat (src, &st) == -1
|| (readfd = g_open (src, O_RDONLY | O_BINARY, 0)) == -1)
return -1;
@@ -1457,58 +1457,58 @@ cp (const char *src, const char *dest, gboolean show_progress, int mode)
errno = errnosav;
return -1;
}
-
+
do {
do {
nread = read (readfd, readbuf, sizeof (readbuf));
} while (nread == -1 && errno == EINTR);
-
+
if (nread == 0)
break;
else if (nread < 0)
goto exception;
-
+
do {
nwritten = write (writefd, readbuf, nread);
} while (nwritten == -1 && errno == EINTR);
-
+
if (nwritten < nread)
goto exception;
-
+
total += nwritten;
-#ifndef G_OS_WIN32
+#ifndef G_OS_WIN32
if (show_progress)
em_migrate_set_progress (((double) total) / ((double) st.st_size));
#endif
} while (total < st.st_size);
-
+
if (fsync (writefd) == -1)
goto exception;
-
+
close (readfd);
if (close (writefd) == -1)
goto failclose;
-
+
ut.actime = st.st_atime;
ut.modtime = st.st_mtime;
utime (dest, &ut);
chmod (dest, st.st_mode);
-
+
return 0;
-
+
exception:
-
+
errnosav = errno;
close (readfd);
close (writefd);
errno = errnosav;
-
+
failclose:
-
+
errnosav = errno;
unlink (dest);
errno = errnosav;
-
+
return -1;
}
@@ -1522,46 +1522,46 @@ cp_r (const char *src, const char *dest, const char *pattern, int mode)
size_t slen, dlen;
struct stat st;
DIR *dir;
-
+
if (g_mkdir_with_parents (dest, 0777) == -1)
return -1;
-
+
if (!(dir = opendir (src)))
return -1;
-
+
srcpath = g_string_new (src);
g_string_append_c (srcpath, '/');
slen = srcpath->len;
-
+
destpath = g_string_new (dest);
g_string_append_c (destpath, '/');
dlen = destpath->len;
-
+
while ((dent = readdir (dir))) {
if (!strcmp (dent->d_name, ".") || !strcmp (dent->d_name, ".."))
continue;
-
+
g_string_truncate (srcpath, slen);
g_string_truncate (destpath, dlen);
-
+
g_string_append (srcpath, dent->d_name);
g_string_append (destpath, dent->d_name);
-
+
if (stat (srcpath->str, &st) == -1)
continue;
-
+
if (S_ISDIR (st.st_mode)) {
cp_r (srcpath->str, destpath->str, pattern, mode);
} else if (!pattern || !strcmp (dent->d_name, pattern)) {
cp (srcpath->str, destpath->str, FALSE, mode);
}
}
-
+
closedir (dir);
-
+
g_string_free (destpath, TRUE);
g_string_free (srcpath, TRUE);
-
+
return 0;
}
@@ -1570,7 +1570,7 @@ mbox_build_filename (GString *path, const char *toplevel_dir, const char *full_n
{
const char *start, *inptr = full_name;
int subdirs = 0;
-
+
while (*inptr != '\0') {
if (*inptr == '/')
subdirs++;
@@ -1579,19 +1579,19 @@ mbox_build_filename (GString *path, const char *toplevel_dir, const char *full_n
g_string_assign(path, toplevel_dir);
g_string_append_c (path, '/');
-
+
inptr = full_name;
while (*inptr != '\0') {
start = inptr;
while (*inptr != '/' && *inptr != '\0')
inptr++;
-
+
g_string_append_len (path, start, inptr - start);
-
+
if (*inptr == '/') {
g_string_append (path, ".sbd/");
inptr++;
-
+
/* strip extranaeous '/'s */
while (*inptr == '/')
inptr++;
@@ -1622,7 +1622,7 @@ em_migrate_folder(EMMigrateSession *session, const char *dirname, const char *fu
g_string_free(src, TRUE);
return 0;
}
-
+
dest = g_string_new("");
uri = get_local_store_uri(dirname, &name, &index);
em_migrate_set_folder_name (full_name);
@@ -1635,22 +1635,22 @@ em_migrate_folder(EMMigrateSession *session, const char *dirname, const char *fu
FILE *fp;
char *p;
int mode;
-
+
g_string_printf (src, "%s/%s", uri + 5, name);
mbox_build_filename (dest, ((CamelService *)session->store)->url->path, full_name);
p = strrchr (dest->str, '/');
*p = '\0';
-
+
slen = src->len;
dlen = dest->len;
-
+
if (g_mkdir_with_parents (dest->str, 0777) == -1 && errno != EEXIST) {
camel_exception_setv(ex, CAMEL_EXCEPTION_SYSTEM,
_("Unable to create new folder `%s': %s"),
dest->str, g_strerror(errno));
goto fatal;
}
-
+
*p = '/';
mode = CP_UNIQUE;
retry_copy:
@@ -1677,47 +1677,47 @@ em_migrate_folder(EMMigrateSession *session, const char *dirname, const char *fu
goto fatal;
}
ignore:
-
+
/* create a .cmeta file specifying to index and/or thread the folder */
g_string_truncate (dest, dlen);
g_string_append (dest, ".cmeta");
if ((fp = fopen (dest->str, "w")) != NULL) {
int fd = fileno (fp);
-
+
/* write the magic string */
if (fwrite ("CLMD", 4, 1, fp) != 1)
goto cmeta_err;
-
+
/* write the version (1) */
if (camel_file_util_encode_uint32 (fp, 1) == -1)
goto cmeta_err;
-
+
/* write the meta count */
if (camel_file_util_encode_uint32 (fp, thread_list != -1 ? 1 : 0) == -1)
goto cmeta_err;
-
+
if (thread_list != -1) {
if (camel_file_util_encode_string (fp, "evolution:thread_list") == -1)
goto cmeta_err;
-
+
if (camel_file_util_encode_string (fp, thread_list ? "1" : "0") == -1)
goto cmeta_err;
}
-
+
/* write the prop count (only prop is the index prop) */
if (camel_file_util_encode_uint32 (fp, 1) == -1)
goto cmeta_err;
-
+
/* write the index prop tag (== CAMEL_FOLDER_ARG_LAST|CAMEL_ARG_BOO) */
if (camel_file_util_encode_uint32 (fp, CAMEL_FOLDER_ARG_LAST|CAMEL_ARG_BOO) == -1)
goto cmeta_err;
-
+
/* write the index prop value */
if (camel_file_util_encode_uint32 (fp, 1) == -1)
goto cmeta_err;
-
+
fflush (fp);
-
+
if (fsync (fd) == -1) {
cmeta_err:
fclose (fp);
@@ -1726,12 +1726,12 @@ em_migrate_folder(EMMigrateSession *session, const char *dirname, const char *fu
fclose (fp);
}
}
-
+
/* copy over the metadata files */
for (i = 0; i < sizeof(meta_ext)/sizeof(meta_ext[0]); i++) {
g_string_truncate (src, slen);
g_string_truncate (dest, dlen);
-
+
g_string_append (src, meta_ext[i]);
g_string_append (dest, meta_ext[i]);
cp (src->str, dest->str, FALSE, CP_OVERWRITE);
@@ -1742,42 +1742,42 @@ em_migrate_folder(EMMigrateSession *session, const char *dirname, const char *fu
if (!(local_store = camel_session_get_store ((CamelSession *) session, uri, ex))
|| !(old_folder = camel_store_get_folder (local_store, name, 0, ex)))
goto fatal;
-
+
flags |= (index ? CAMEL_STORE_FOLDER_BODY_INDEX : 0);
if (!(new_folder = camel_store_get_folder (session->store, full_name, flags, ex)))
goto fatal;
-
+
if (thread_list != -1) {
camel_object_meta_set (new_folder, "evolution:thread_list", thread_list ? "1" : "0");
camel_object_state_write (new_folder);
}
-
+
uids = camel_folder_get_uids (old_folder);
for (i = 0; i < uids->len; i++) {
CamelMimeMessage *message;
CamelMessageInfo *info;
-
+
if (!(info = camel_folder_get_message_info (old_folder, uids->pdata[i])))
continue;
-
+
if (!(message = camel_folder_get_message (old_folder, uids->pdata[i], ex))) {
camel_folder_free_message_info (old_folder, info);
camel_folder_free_uids (old_folder, uids);
goto fatal;
}
-
+
camel_folder_append_message (new_folder, message, info, NULL, ex);
camel_folder_free_message_info (old_folder, info);
camel_object_unref (message);
-
+
if (camel_exception_is_set (ex))
break;
-
+
em_migrate_set_progress (((double) i + 1) / ((double) uids->len));
}
-
+
camel_folder_free_uids (old_folder, uids);
-
+
if (camel_exception_is_set (ex))
goto fatal;
}
@@ -1815,33 +1815,33 @@ em_migrate_dir (EMMigrateSession *session, const char *dirname, const char *full
g_free (path);
return 0;
}
-
+
if (!(dir = opendir (path))) {
g_free (path);
return 0;
}
-
+
while (res == 0 && (dent = readdir (dir))) {
char *full_path;
char *name;
if (dent->d_name[0] == '.')
continue;
-
+
full_path = g_strdup_printf ("%s/%s", path, dent->d_name);
if (stat (full_path, &st) == -1 || !S_ISDIR (st.st_mode)) {
g_free (full_path);
continue;
}
-
+
name = g_strdup_printf ("%s/%s", full_name, dent->d_name);
res = em_migrate_dir (session, full_path, name, ex);
g_free (full_path);
g_free (name);
}
-
+
closedir (dir);
-
+
g_free (path);
return res;
@@ -1861,27 +1861,27 @@ em_migrate_local_folders_1_4 (EMMigrateSession *session, CamelException *ex)
session->srcdir, g_strerror(errno));
return -1;
}
-
+
em_migrate_setup_progress_dialog ();
-
+
while (res == 0 && (dent = readdir (dir))) {
char *full_path;
-
+
if (dent->d_name[0] == '.')
continue;
-
+
full_path = g_strdup_printf ("%s/%s", session->srcdir, dent->d_name);
if (stat (full_path, &st) == -1 || !S_ISDIR (st.st_mode)) {
g_free (full_path);
continue;
}
-
+
res = em_migrate_dir (session, full_path, dent->d_name, ex);
g_free (full_path);
}
-
+
closedir (dir);
-
+
em_migrate_close_progress_dialog ();
return res;
@@ -1892,39 +1892,39 @@ upgrade_xml_uris_1_4 (const char *uri)
{
char *path, *prefix, *p;
CamelURL *url;
-
+
if (!strncmp (uri, "file:", 5)) {
url = camel_url_new (uri, NULL);
camel_url_set_protocol (url, "email");
camel_url_set_user (url, "local");
camel_url_set_host (url, "local");
-
+
prefix = g_build_filename (g_get_home_dir (), "evolution", "local", NULL);
if (strncmp (url->path, prefix, strlen (prefix)) != 0) {
/* uri is busticated - user probably copied from another user's home directory */
camel_url_free (url);
g_free (prefix);
-
+
return g_strdup (uri);
}
path = g_strdup (url->path + strlen (prefix));
g_free (prefix);
-
+
/* modify the path in-place */
p = path + strlen (path) - 12;
while (p > path) {
if (!strncmp (p, "/subfolders/", 12))
memmove (p, p + 11, strlen (p + 11) + 1);
-
+
p--;
}
-
+
camel_url_set_path (url, path);
g_free (path);
-
+
path = camel_url_to_string (url, 0);
camel_url_free (url);
-
+
return path;
} else {
return em_uri_from_camel (uri);
@@ -1935,38 +1935,38 @@ static void
upgrade_vfolder_sources_1_4 (xmlDocPtr doc)
{
xmlNodePtr root, node;
-
+
if (!doc || !(root = xmlDocGetRootElement (doc)))
return;
-
+
if (!root->name || strcmp ((char *)root->name, "filteroptions") != 0) {
/* root node is not <filteroptions>, nothing to upgrade */
return;
}
-
+
if (!(node = xml_find_node (root, "ruleset"))) {
/* no ruleset node, nothing to upgrade */
return;
}
-
+
node = node->children;
while (node != NULL) {
if (node->name && !strcmp ((char *)node->name, "rule")) {
xmlNodePtr sources;
char *src;
-
+
if (!(src = (char *)xmlGetProp (node, (const unsigned char *)"source")))
src = (char *)xmlStrdup ((const unsigned char *)"local"); /* default to all local folders? */
-
+
xmlSetProp (node, (const unsigned char *)"source", (const unsigned char *)"incoming");
-
+
if (!(sources = xml_find_node (node, "sources")))
sources = xmlNewChild (node, NULL, (const unsigned char *)"sources", NULL);
-
+
xmlSetProp (sources, (const unsigned char *)"with", (unsigned char *)src);
xmlFree (src);
}
-
+
node = node->next;
}
}
@@ -1979,22 +1979,22 @@ get_nth_sig (int id)
EIterator *iter;
char *uid = NULL;
int i = 0;
-
+
list = mail_config_get_signatures ();
iter = e_list_get_iterator ((EList *) list);
-
+
while (e_iterator_is_valid (iter) && i < id) {
e_iterator_next (iter);
i++;
}
-
+
if (i == id && e_iterator_is_valid (iter)) {
sig = (ESignature *) e_iterator_get (iter);
uid = g_strdup (sig->uid);
}
-
+
g_object_unref (iter);
-
+
return uid;
}
@@ -2003,40 +2003,40 @@ em_upgrade_accounts_1_4 (void)
{
EAccountList *accounts;
EIterator *iter;
-
+
if (!(accounts = mail_config_get_accounts ()))
return;
-
+
iter = e_list_get_iterator ((EList *) accounts);
while (e_iterator_is_valid (iter)) {
EAccount *account = (EAccount *) e_iterator_get (iter);
char *url;
-
+
if (account->drafts_folder_uri) {
url = upgrade_xml_uris_1_4 (account->drafts_folder_uri);
g_free (account->drafts_folder_uri);
account->drafts_folder_uri = url;
}
-
+
if (account->sent_folder_uri) {
url = upgrade_xml_uris_1_4 (account->sent_folder_uri);
g_free (account->sent_folder_uri);
account->sent_folder_uri = url;
}
-
+
if (account->id->sig_uid && !strncmp (account->id->sig_uid, "::", 2)) {
int sig_id;
-
+
sig_id = strtol (account->id->sig_uid + 2, NULL, 10);
g_free (account->id->sig_uid);
account->id->sig_uid = get_nth_sig (sig_id);
}
-
+
e_iterator_next (iter);
}
-
+
g_object_unref (iter);
-
+
mail_config_save_accounts ();
}
@@ -2059,19 +2059,19 @@ em_migrate_pop_uid_caches_1_4 (const char *evolution_dir, CamelException *ex)
g_free(cache_dir);
return 0;
}
-
+
camel_exception_setv (ex, CAMEL_EXCEPTION_SYSTEM,
_("Unable to open old POP keep-on-server data `%s': %s"),
cache_dir, g_strerror (errno));
g_free (cache_dir);
return -1;
}
-
+
oldpath = g_string_new (cache_dir);
g_string_append_c (oldpath, '/');
olen = oldpath->len;
g_free (cache_dir);
-
+
cache_dir = g_build_filename (evolution_dir, "mail", "pop", NULL);
if (g_mkdir_with_parents (cache_dir, 0777) == -1) {
camel_exception_setv (ex, CAMEL_EXCEPTION_SYSTEM,
@@ -2082,25 +2082,25 @@ em_migrate_pop_uid_caches_1_4 (const char *evolution_dir, CamelException *ex)
closedir (dir);
return -1;
}
-
+
newpath = g_string_new (cache_dir);
g_string_append_c (newpath, '/');
nlen = newpath->len;
g_free (cache_dir);
-
+
while (res == 0 && (dent = readdir (dir))) {
if (strncmp (dent->d_name, "cache-pop:__", 12) != 0)
continue;
-
+
g_string_truncate (oldpath, olen);
g_string_truncate (newpath, nlen);
-
+
g_string_append (oldpath, dent->d_name);
g_string_append (newpath, dent->d_name + 12);
-
+
/* strip the trailing '_' */
g_string_truncate (newpath, newpath->len - 1);
-
+
if (g_mkdir_with_parents (newpath->str, 0777) == -1
|| cp(oldpath->str, (g_string_append(newpath, "/uid-cache"))->str, FALSE, CP_UNIQUE)) {
camel_exception_setv (ex, CAMEL_EXCEPTION_SYSTEM,
@@ -2110,12 +2110,12 @@ em_migrate_pop_uid_caches_1_4 (const char *evolution_dir, CamelException *ex)
}
}
-
+
g_string_free (oldpath, TRUE);
g_string_free (newpath, TRUE);
-
+
closedir (dir);
-
+
return res;
}
@@ -2124,21 +2124,21 @@ em_migrate_imap_caches_1_4 (const char *evolution_dir, CamelException *ex)
{
char *src, *dest;
struct stat st;
-
+
src = g_build_filename (g_get_home_dir (), "evolution", "mail", "imap", NULL);
if (stat (src, &st) == -1 || !S_ISDIR (st.st_mode)) {
g_free (src);
return 0;
}
-
+
dest = g_build_filename (evolution_dir, "mail", "imap", NULL);
-
+
/* we don't care if this fails, it's only a cache... */
cp_r (src, dest, "summary", CP_OVERWRITE);
-
+
g_free (dest);
g_free (src);
-
+
return 0;
}
@@ -2151,14 +2151,14 @@ em_migrate_folder_expand_state_1_4 (const char *evolution_dir, CamelException *e
struct dirent *dent;
struct stat st;
DIR *dir;
-
+
srcpath = g_string_new (g_get_home_dir ());
g_string_append (srcpath, "/evolution/config");
if (stat (srcpath->str, &st) == -1 || !S_ISDIR (st.st_mode)) {
g_string_free (srcpath, TRUE);
return 0;
}
-
+
destpath = g_string_new (evolution_dir);
g_string_append (destpath, "/mail/config");
if (g_mkdir_with_parents (destpath->str, 0777) == -1 || !(dir = opendir (srcpath->str))) {
@@ -2166,49 +2166,49 @@ em_migrate_folder_expand_state_1_4 (const char *evolution_dir, CamelException *e
g_string_free (srcpath, TRUE);
return 0;
}
-
+
g_string_append (srcpath, "/et-expanded-");
slen = srcpath->len;
g_string_append (destpath, "/et-expanded-");
dlen = destpath->len;
-
+
evo14_mbox_root = g_build_filename (g_get_home_dir (), "evolution", "local", NULL);
e_filename_make_safe (evo14_mbox_root);
rlen = strlen (evo14_mbox_root);
evo14_mbox_root = g_realloc (evo14_mbox_root, rlen + 2);
evo14_mbox_root[rlen++] = '_';
evo14_mbox_root[rlen] = '\0';
-
+
while ((dent = readdir (dir))) {
char *full_name, *inptr, *buf = NULL;
const char *filename;
GString *new;
-
+
if (strncmp (dent->d_name, "et-expanded-", 12) != 0)
continue;
-
+
if (!strncmp (dent->d_name + 12, "file:", 5)) {
/* need to munge the filename */
inptr = dent->d_name + 17;
-
+
if (!strncmp (inptr, evo14_mbox_root, rlen)) {
/* this should always be the case afaik... */
inptr += rlen;
new = g_string_new ("mbox:");
g_string_append_printf (new, "%s/mail/local#", evolution_dir);
-
+
full_name = g_strdup (inptr);
inptr = full_name + strlen (full_name) - 12;
while (inptr > full_name) {
if (!strncmp (inptr, "_subfolders_", 12))
memmove (inptr, inptr + 11, strlen (inptr + 11) + 1);
-
+
inptr--;
}
-
+
g_string_append (new, full_name);
g_free (full_name);
-
+
filename = buf = new->str;
g_string_free (new, FALSE);
e_filename_make_safe (buf);
@@ -2220,23 +2220,23 @@ em_migrate_folder_expand_state_1_4 (const char *evolution_dir, CamelException *e
/* no munging needed */
filename = dent->d_name + 12;
}
-
+
g_string_append (srcpath, dent->d_name + 12);
g_string_append (destpath, filename);
g_free (buf);
-
+
cp (srcpath->str, destpath->str, FALSE, CP_UNIQUE);
-
+
g_string_truncate (srcpath, slen);
g_string_truncate (destpath, dlen);
}
-
+
closedir (dir);
-
+
g_free (evo14_mbox_root);
g_string_free (destpath, TRUE);
g_string_free (srcpath, TRUE);
-
+
return 0;
}
@@ -2249,14 +2249,14 @@ em_migrate_folder_view_settings_1_4 (const char *evolution_dir, CamelException *
struct dirent *dent;
struct stat st;
DIR *dir;
-
+
srcpath = g_string_new (g_get_home_dir ());
g_string_append (srcpath, "/evolution/views/mail");
if (stat (srcpath->str, &st) == -1 || !S_ISDIR (st.st_mode)) {
g_string_free (srcpath, TRUE);
return 0;
}
-
+
destpath = g_string_new (evolution_dir);
g_string_append (destpath, "/mail/views");
if (g_mkdir_with_parents (destpath->str, 0777) == -1 || !(dir = opendir (srcpath->str))) {
@@ -2264,31 +2264,31 @@ em_migrate_folder_view_settings_1_4 (const char *evolution_dir, CamelException *
g_string_free (srcpath, TRUE);
return 0;
}
-
+
g_string_append_c (srcpath, '/');
slen = srcpath->len;
g_string_append_c (destpath, '/');
dlen = destpath->len;
-
+
evo14_mbox_root = g_build_filename (g_get_home_dir (), "evolution", "local", NULL);
e_filename_make_safe (evo14_mbox_root);
rlen = strlen (evo14_mbox_root);
evo14_mbox_root = g_realloc (evo14_mbox_root, rlen + 2);
evo14_mbox_root[rlen++] = '_';
evo14_mbox_root[rlen] = '\0';
-
+
while ((dent = readdir (dir))) {
char *full_name, *inptr, *buf = NULL;
const char *filename, *ext;
size_t prelen = 0;
GString *new;
-
+
if (dent->d_name[0] == '.')
continue;
-
+
if (!(ext = strrchr (dent->d_name, '.')))
continue;
-
+
if (!strcmp (ext, ".galview") || !strcmp ((char *)dent->d_name, "galview.xml")) {
/* just copy the file */
filename = dent->d_name;
@@ -2296,7 +2296,7 @@ em_migrate_folder_view_settings_1_4 (const char *evolution_dir, CamelException *
} else if (strcmp (ext, ".xml") != 0) {
continue;
}
-
+
if (!strncmp ((const char *)dent->d_name, "current_view-", 13)) {
prelen = 13;
} else if (!strncmp ((const char *)dent->d_name, "custom_view-", 12)) {
@@ -2305,29 +2305,29 @@ em_migrate_folder_view_settings_1_4 (const char *evolution_dir, CamelException *
/* huh? wtf is this file? */
continue;
}
-
+
if (!strncmp (dent->d_name + prelen, "file:", 5)) {
/* need to munge the filename */
inptr = dent->d_name + prelen + 5;
-
+
if (!strncmp (inptr, evo14_mbox_root, rlen)) {
/* this should always be the case afaik... */
inptr += rlen;
new = g_string_new ("mbox:");
g_string_append_printf (new, "%s/mail/local#", evolution_dir);
-
+
full_name = g_strdup (inptr);
inptr = full_name + strlen (full_name) - 12;
while (inptr > full_name) {
if (!strncmp (inptr, "_subfolders_", 12))
memmove (inptr, inptr + 11, strlen (inptr + 11) + 1);
-
+
inptr--;
}
-
+
g_string_append (new, full_name);
g_free (full_name);
-
+
filename = buf = new->str;
g_string_free (new, FALSE);
e_filename_make_safe (buf);
@@ -2339,26 +2339,26 @@ em_migrate_folder_view_settings_1_4 (const char *evolution_dir, CamelException *
/* no munging needed */
filename = dent->d_name + prelen;
}
-
+
copy:
g_string_append (srcpath, dent->d_name);
if (prelen > 0)
g_string_append_len (destpath, dent->d_name, prelen);
g_string_append (destpath, filename);
g_free (buf);
-
+
cp (srcpath->str, destpath->str, FALSE, CP_UNIQUE);
-
+
g_string_truncate (srcpath, slen);
g_string_truncate (destpath, dlen);
}
-
+
closedir (dir);
-
+
g_free (evo14_mbox_root);
g_string_free (destpath, TRUE);
g_string_free (srcpath, TRUE);
-
+
return 0;
}
@@ -2533,7 +2533,7 @@ remove_system_searches(xmlDocPtr searches)
if (!(node = xml_find_node(node, "ruleset")))
return;
-
+
node = node->children;
while (node != NULL) {
xmlNodePtr nnode = node->next;
@@ -2548,9 +2548,9 @@ remove_system_searches(xmlDocPtr searches)
}
xmlFree (src);
}
-
+
node = nnode;
- }
+ }
}
static int
@@ -2568,9 +2568,9 @@ em_migrate_1_4 (const char *evolution_dir, xmlDocPtr filters, xmlDocPtr vfolders
camel_provider_init();
session = (EMMigrateSession *) em_migrate_session_new (path);
g_free (path);
-
- session->srcdir = g_build_filename (g_get_home_dir (), "evolution", "local", NULL);
-
+
+ session->srcdir = g_build_filename (g_get_home_dir (), "evolution", "local", NULL);
+
path = g_strdup_printf ("mbox:%s/.evolution/mail/local", g_get_home_dir ());
if (stat (path + 5, &st) == -1) {
if (errno != ENOENT || g_mkdir_with_parents (path + 5, 0777) == -1) {
@@ -2583,7 +2583,7 @@ em_migrate_1_4 (const char *evolution_dir, xmlDocPtr filters, xmlDocPtr vfolders
return -1;
}
}
-
+
camel_exception_init (&lex);
if (!(session->store = camel_session_get_store ((CamelSession *) session, path, &lex))) {
camel_exception_setv (ex, CAMEL_EXCEPTION_SYSTEM,
@@ -2596,17 +2596,17 @@ em_migrate_1_4 (const char *evolution_dir, xmlDocPtr filters, xmlDocPtr vfolders
return -1;
}
g_free (path);
-
+
if (em_migrate_local_folders_1_4 (session, ex) == -1)
return -1;
-
+
camel_object_unref (session->store);
g_free (session->srcdir);
-
+
camel_object_unref (session);
-
+
em_upgrade_accounts_1_4();
-
+
upgrade_xml_uris(filters, upgrade_xml_uris_1_4);
upgrade_vfolder_sources_1_4(vfolders);
upgrade_xml_uris(vfolders, upgrade_xml_uris_1_4);
@@ -2621,10 +2621,10 @@ em_migrate_1_4 (const char *evolution_dir, xmlDocPtr filters, xmlDocPtr vfolders
g_free(path);
xmlFreeDoc(searches);
}
-
+
if (em_migrate_pop_uid_caches_1_4 (evolution_dir, ex) == -1)
return -1;
-
+
/* these are non-fatal */
em_migrate_imap_caches_1_4 (evolution_dir, ex);
camel_exception_clear(ex);
@@ -2685,7 +2685,7 @@ emm_setup_initial(const char *evolution_dir)
/* FIXME: create default folders and stuff... */
d(printf("Setting up initial mail tree\n"));
-
+
base = g_build_filename(evolution_dir, "mail", "local", NULL);
if (g_mkdir_with_parents(base, 0777) == -1 && errno != EEXIST) {
g_free(base);
@@ -2733,28 +2733,28 @@ em_migrate (const char *evolution_dir, int major, int minor, int revision, Camel
{
struct stat st;
char *path;
-
+
/* make sure ~/.evolution/mail exists */
path = g_build_filename (evolution_dir, "mail", NULL);
if (g_stat (path, &st) == -1) {
if (errno != ENOENT || g_mkdir_with_parents (path, 0777) == -1) {
- camel_exception_setv (ex, CAMEL_EXCEPTION_SYSTEM,
+ camel_exception_setv (ex, CAMEL_EXCEPTION_SYSTEM,
_("Unable to create local mail folders at `%s': %s"),
path, g_strerror (errno));
g_free (path);
return -1;
}
}
-
+
g_free (path);
-
+
if (major == 0)
return emm_setup_initial(evolution_dir);
#ifndef G_OS_WIN32
if (major == 1 && minor < 5) {
xmlDocPtr config_xmldb = NULL, filters, vfolders;
-
+
path = g_build_filename (g_get_home_dir (), "evolution", NULL);
if (minor <= 2 && !(config_xmldb = emm_load_xml (path, "config.xmldb"))) {
camel_exception_setv (ex, CAMEL_EXCEPTION_SYSTEM,
@@ -2766,7 +2766,7 @@ em_migrate (const char *evolution_dir, int major, int minor, int revision, Camel
filters = emm_load_xml (path, "filters.xml");
vfolders = emm_load_xml (path, "vfolders.xml");
g_free (path);
-
+
if (minor == 0) {
if (em_migrate_1_0 (evolution_dir, config_xmldb, filters, vfolders, ex) == -1) {
xmlFreeDoc (config_xmldb);
@@ -2775,7 +2775,7 @@ em_migrate (const char *evolution_dir, int major, int minor, int revision, Camel
return -1;
}
}
-
+
if (minor <= 2) {
if (em_migrate_1_2 (evolution_dir, config_xmldb, filters, vfolders, ex) == -1) {
xmlFreeDoc (config_xmldb);
@@ -2783,10 +2783,10 @@ em_migrate (const char *evolution_dir, int major, int minor, int revision, Camel
xmlFreeDoc (vfolders);
return -1;
}
-
+
xmlFreeDoc (config_xmldb);
}
-
+
if (minor <= 4) {
if (em_migrate_1_4 (evolution_dir, filters, vfolders, ex) == -1) {
xmlFreeDoc (filters);
@@ -2794,19 +2794,19 @@ em_migrate (const char *evolution_dir, int major, int minor, int revision, Camel
return -1;
}
}
-
+
path = g_build_filename (evolution_dir, "mail", NULL);
-
+
if (filters) {
emm_save_xml (filters, path, "filters.xml");
xmlFreeDoc (filters);
}
-
+
if (vfolders) {
emm_save_xml (vfolders, path, "vfolders.xml");
xmlFreeDoc (vfolders);
}
-
+
g_free (path);
}
diff --git a/mail/em-popup.c b/mail/em-popup.c
index 63f7291dfe..40e22eb230 100644
--- a/mail/em-popup.c
+++ b/mail/em-popup.c
@@ -165,12 +165,12 @@ EMPopup *em_popup_new(const char *menuid)
/**
* em_popup_target_new_select:
* @folder: The selection will ref this for the life of it.
- * @folder_uri:
+ * @folder_uri:
* @uids: The selection will free this when done with it.
- *
+ *
* Create a new selection popup target.
- *
- * Return value:
+ *
+ * Return value:
**/
EMPopupTargetSelect *
em_popup_target_new_select(EMPopup *emp, struct _CamelFolder *folder, const char *folder_uri, GPtrArray *uids)
@@ -194,10 +194,10 @@ em_popup_target_new_select(EMPopup *emp, struct _CamelFolder *folder, const char
camel_object_ref(folder);
mask &= ~EM_POPUP_SELECT_FOLDER;
-
+
if (em_utils_folder_is_sent(folder, folder_uri))
mask &= ~EM_POPUP_SELECT_EDIT;
-
+
draft_or_outbox = em_utils_folder_is_drafts(folder, folder_uri) || em_utils_folder_is_outbox(folder, folder_uri);
if (!draft_or_outbox && uids->len == 1)
mask &= ~EM_POPUP_SELECT_ADD_SENDER;
@@ -229,11 +229,11 @@ em_popup_target_new_select(EMPopup *emp, struct _CamelFolder *folder, const char
} else if (draft_or_outbox) {
/* Show none option */
mask |= EM_POPUP_SELECT_NOT_JUNK;
- mask |= EM_POPUP_SELECT_JUNK;
+ mask |= EM_POPUP_SELECT_JUNK;
} else {
/* Show both options */
mask &= ~EM_POPUP_SELECT_NOT_JUNK;
- mask &= ~EM_POPUP_SELECT_JUNK;
+ mask &= ~EM_POPUP_SELECT_JUNK;
}
if (flags & CAMEL_MESSAGE_DELETED)
@@ -334,20 +334,20 @@ em_popup_target_new_folder (EMPopup *emp, const char *uri, guint32 info_flags, g
mask &= ~(EM_POPUP_FOLDER_STORE|EM_POPUP_FOLDER_INFERIORS);
else
mask &= ~EM_POPUP_FOLDER_FOLDER;
-
+
url = camel_url_new(uri, NULL);
if (url == NULL)
goto done;
-
+
if (!(popup_flags & EM_POPUP_FOLDER_STORE)) {
const char *path;
-
+
if (popup_flags & EM_POPUP_FOLDER_DELETE)
mask &= ~EM_POPUP_FOLDER_DELETE;
-
+
if (!(info_flags & CAMEL_FOLDER_NOINFERIORS))
mask &= ~EM_POPUP_FOLDER_INFERIORS;
-
+
if (info_flags & CAMEL_FOLDER_TYPE_OUTBOX)
mask &= ~EM_POPUP_FOLDER_OUTBOX;
else
@@ -355,17 +355,17 @@ em_popup_target_new_folder (EMPopup *emp, const char *uri, guint32 info_flags, g
if (!(info_flags & CAMEL_FOLDER_NOSELECT))
mask &= ~EM_POPUP_FOLDER_SELECT;
-
+
if (info_flags & CAMEL_FOLDER_VIRTUAL)
mask |= EM_POPUP_FOLDER_DELETE|EM_POPUP_FOLDER_INFERIORS;
-
+
if ((path = url->fragment ? url->fragment : url->path)) {
if ((!strcmp (url->protocol, "vfolder") && !strcmp (path, CAMEL_UNMATCHED_NAME))
|| (!strcmp (url->protocol, "maildir") && !strcmp (path, "."))) /* hack for maildir toplevel folder */
mask |= EM_POPUP_FOLDER_DELETE|EM_POPUP_FOLDER_INFERIORS;
}
}
-
+
camel_url_free(url);
done:
t->target.mask = mask;
@@ -375,13 +375,13 @@ done:
/**
* em_popup_target_new_attachments:
- * @emp:
+ * @emp:
* @attachments: A list of EMsgComposerAttachment objects, reffed for
* the list. Will be unreff'd once finished with.
- *
+ *
* Owns the list @attachments and their items after they're passed in.
- *
- * Return value:
+ *
+ * Return value:
**/
EMPopupTargetAttachments *
em_popup_target_new_attachments(EMPopup *emp, GSList *attachments)
@@ -399,7 +399,7 @@ em_popup_target_new_attachments(EMPopup *emp, GSList *attachments)
mask &= ~ EM_POPUP_ATTACHMENTS_IMAGE;
if (CAMEL_IS_MIME_MESSAGE(camel_medium_get_content_object((CamelMedium *) ((EAttachment *) attachments->data)->body)))
mask &= ~EM_POPUP_ATTACHMENTS_MESSAGE;
-
+
mask &= ~ EM_POPUP_ATTACHMENTS_ONE;
}
if (len > 1)
@@ -435,7 +435,7 @@ emp_part_popup_set_background(EPopup *ep, EPopupItem *item, void *data)
unsigned int i=1;
CamelMimePart *part = NULL;
- if (t->type == EM_POPUP_TARGET_ATTACHMENTS)
+ if (t->type == EM_POPUP_TARGET_ATTACHMENTS)
part = ((EAttachment *) ((EMPopupTargetAttachments *) t)->attachments->data)->body;
else
part = ((EMPopupTargetPart *) t)->part;
@@ -444,7 +444,7 @@ emp_part_popup_set_background(EPopup *ep, EPopupItem *item, void *data)
return;
filename = g_strdup(camel_mime_part_get_filename(part));
-
+
/* if filename is blank, create a default filename based on MIME type */
if (!filename || !filename[0]) {
CamelContentType *ct;
@@ -455,13 +455,13 @@ emp_part_popup_set_background(EPopup *ep, EPopupItem *item, void *data)
}
e_filename_make_safe(filename);
-
+
path = g_build_filename(g_get_home_dir(), ".gnome2", "wallpapers", filename, NULL);
-
+
extension = strrchr(filename, '.');
if (extension)
*extension++ = 0;
-
+
/* if file exists, stick a (number) on the end */
while (g_file_test(path, G_FILE_TEST_EXISTS)) {
char *name;
@@ -470,35 +470,35 @@ emp_part_popup_set_background(EPopup *ep, EPopupItem *item, void *data)
path = g_build_filename(g_get_home_dir(), ".gnome2", "wallpapers", name, NULL);
g_free(name);
}
-
+
g_free(filename);
-
+
if (em_utils_save_part_to_file(ep->target->widget, path, part)) {
gconf = gconf_client_get_default();
-
- /* if the filename hasn't changed, blank the filename before
+
+ /* if the filename hasn't changed, blank the filename before
* setting it so that gconf detects a change and updates it */
- if ((str = gconf_client_get_string(gconf, "/desktop/gnome/background/picture_filename", NULL)) != NULL
+ if ((str = gconf_client_get_string(gconf, "/desktop/gnome/background/picture_filename", NULL)) != NULL
&& strcmp (str, path) == 0) {
gconf_client_set_string(gconf, "/desktop/gnome/background/picture_filename", "", NULL);
}
-
+
g_free (str);
gconf_client_set_string(gconf, "/desktop/gnome/background/picture_filename", path, NULL);
-
+
/* if GNOME currently doesn't display a picture, set to "wallpaper"
* display mode, otherwise leave it alone */
- if ((str = gconf_client_get_string(gconf, "/desktop/gnome/background/picture_options", NULL)) == NULL
+ if ((str = gconf_client_get_string(gconf, "/desktop/gnome/background/picture_options", NULL)) == NULL
|| strcmp(str, "none") == 0) {
gconf_client_set_string(gconf, "/desktop/gnome/background/picture_options", "wallpaper", NULL);
}
-
+
gconf_client_suggest_sync(gconf, NULL);
-
+
g_free(str);
g_object_unref(gconf);
}
-
+
g_free(path);
}
@@ -509,11 +509,11 @@ emp_part_popup_reply_sender(EPopup *ep, EPopupItem *item, void *data)
CamelMimeMessage *message;
CamelMimePart *part;
- if (t->type == EM_POPUP_TARGET_ATTACHMENTS)
+ if (t->type == EM_POPUP_TARGET_ATTACHMENTS)
part = ((EAttachment *) ((EMPopupTargetAttachments *) t)->attachments->data)->body;
else
part = ((EMPopupTargetPart *) t)->part;
-
+
message = (CamelMimeMessage *)camel_medium_get_content_object((CamelMedium *)part);
em_utils_reply_to_message(NULL, NULL, message, REPLY_MODE_SENDER, NULL);
}
@@ -525,11 +525,11 @@ emp_part_popup_reply_list (EPopup *ep, EPopupItem *item, void *data)
CamelMimeMessage *message;
CamelMimePart *part;
- if (t->type == EM_POPUP_TARGET_ATTACHMENTS)
+ if (t->type == EM_POPUP_TARGET_ATTACHMENTS)
part = ((EAttachment *) ((EMPopupTargetAttachments *) t)->attachments->data)->body;
else
part = ((EMPopupTargetPart *) t)->part;
-
+
message = (CamelMimeMessage *)camel_medium_get_content_object((CamelMedium *)part);
em_utils_reply_to_message(NULL, NULL, message, REPLY_MODE_LIST, NULL);
}
@@ -541,11 +541,11 @@ emp_part_popup_reply_all (EPopup *ep, EPopupItem *item, void *data)
CamelMimeMessage *message;
CamelMimePart *part;
- if (t->type == EM_POPUP_TARGET_ATTACHMENTS)
+ if (t->type == EM_POPUP_TARGET_ATTACHMENTS)
part = ((EAttachment *) ((EMPopupTargetAttachments *) t)->attachments->data)->body;
else
part = ((EMPopupTargetPart *) t)->part;
-
+
message = (CamelMimeMessage *)camel_medium_get_content_object((CamelMedium *)part);
em_utils_reply_to_message(NULL, NULL, message, REPLY_MODE_ALL, NULL);
}
@@ -557,10 +557,10 @@ emp_part_popup_forward (EPopup *ep, EPopupItem *item, void *data)
CamelMimeMessage *message;
CamelMimePart *part;
- if (t->type == EM_POPUP_TARGET_ATTACHMENTS)
+ if (t->type == EM_POPUP_TARGET_ATTACHMENTS)
part = ((EAttachment *) ((EMPopupTargetAttachments *) t)->attachments->data)->body;
else
- part = ((EMPopupTargetPart *) t)->part;
+ part = ((EMPopupTargetPart *) t)->part;
/* TODO: have a emfv specific override so we can get the parent folder uri */
message = (CamelMimeMessage *)camel_medium_get_content_object((CamelMedium *) part);
@@ -598,7 +598,7 @@ emp_uri_popup_link_open(EPopup *ep, EPopupItem *item, void *data)
{
EMPopupTargetURI *t = (EMPopupTargetURI *)ep->target;
GError *err = NULL;
-
+
gnome_url_show(t->uri, &err);
if (err) {
g_warning("gnome_url_show: %s", err->message);
@@ -653,7 +653,7 @@ emp_apps_open_in(EPopup *ep, EPopupItem *item, void *data)
CamelMimePart *part;
printf("in emp_apps_open_in\n");
- if (target->type == EM_POPUP_TARGET_ATTACHMENTS)
+ if (target->type == EM_POPUP_TARGET_ATTACHMENTS)
part = ((EAttachment *) ((EMPopupTargetAttachments *) target)->attachments->data)->body;
else
part = ((EMPopupTargetPart *) target)->part;
@@ -663,7 +663,7 @@ emp_apps_open_in(EPopup *ep, EPopupItem *item, void *data)
GnomeVFSMimeApplication *app = item->user_data;
char *uri;
GList *uris = NULL;
-
+
uri = gnome_vfs_get_uri_from_local_path(path);
uris = g_list_append(uris, uri);
@@ -724,7 +724,7 @@ emp_standard_menu_factory(EPopup *emp, void *data)
case EM_POPUP_TARGET_PART: {
EMPopupTargetPart *t = (EMPopupTargetPart *)emp->target;
mime_type = camel_data_wrapper_get_mime_type((CamelDataWrapper *)t->part);
- filename = camel_mime_part_get_filename(t->part);
+ filename = camel_mime_part_get_filename(t->part);
items = emp_standard_object_popups;
len = LEN(emp_standard_object_popups);
@@ -733,10 +733,10 @@ emp_standard_menu_factory(EPopup *emp, void *data)
EMPopupTargetAttachments *t = (EMPopupTargetAttachments *)emp->target;
GSList *list = t->attachments;
EAttachment *attachment;
-
+
if (g_slist_length(list) != 1 || !((EAttachment *)list->data)->is_available_local) {
items = NULL;
- len = 0;
+ len = 0;
break;
}
@@ -747,18 +747,18 @@ emp_standard_menu_factory(EPopup *emp, void *data)
items = emp_attachment_object_popups;
len = LEN(emp_attachment_object_popups);
- break; }
+ break; }
default:
items = NULL;
len = 0;
}
-
+
if (mime_type) {
apps = gnome_vfs_mime_get_all_applications(mime_type);
-
+
if (apps == NULL && strcmp(mime_type, "application/octet-stream") == 0) {
const char *name_type;
-
+
if (filename) {
/* GNOME-VFS will misidentify TNEF attachments as MPEG */
if (!strcmp (filename, "winmail.dat"))
@@ -860,7 +860,7 @@ static const EPopupHookTargetMask emph_select_masks[] = {
{ "add_sender", EM_POPUP_SELECT_ADD_SENDER },
{ "folder", EM_POPUP_SELECT_FOLDER },
{ "junk", EM_POPUP_SELECT_JUNK },
- { "not_junk", EM_POPUP_SELECT_NOT_JUNK },
+ { "not_junk", EM_POPUP_SELECT_NOT_JUNK },
{ NULL }
};
@@ -933,7 +933,7 @@ GType
em_popup_hook_get_type(void)
{
static GType type = 0;
-
+
if (!type) {
static const GTypeInfo info = {
sizeof(EMPopupHookClass), NULL, NULL, (GClassInitFunc) emph_class_init, NULL, NULL,
@@ -943,6 +943,6 @@ em_popup_hook_get_type(void)
emph_parent_class = g_type_class_ref(e_popup_hook_get_type());
type = g_type_register_static(e_popup_hook_get_type(), "EMPopupHook", &info, 0);
}
-
+
return type;
}
diff --git a/mail/em-popup.h b/mail/em-popup.h
index ea57aa347e..ea44cd4261 100644
--- a/mail/em-popup.h
+++ b/mail/em-popup.h
@@ -37,7 +37,7 @@ typedef struct _EMPopupClass EMPopupClass;
/**
* enum _em_popup_target_t - A list of mail popup target types.
- *
+ *
* @EM_POPUP_TARGET_SELECT: A selection of messages.
* @EM_POPUP_TARGET_URI: A URI.
* @EM_POPUP_TARGET_PART: A CamelMimePart message part.
@@ -56,7 +56,7 @@ enum _em_popup_target_t {
/**
* enum _em_popup_target_select_t - EMPopupTargetSelect qualifiers.
- *
+ *
* @EM_POPUP_SELECT_ONE: Only one item is selected.
* @EM_POPUP_SELECT_MANY: One ore more items are selected.
* @EM_POPUP_SELECT_MARK_READ: Message(s) are unseen and can be
@@ -85,7 +85,7 @@ enum _em_popup_target_t {
* @EM_POPUP_SELECT_FOLDER: A folder is set on the selection.
* @EM_POPUP_SELECT_LAST: The last bit used, can be used to add
* additional types from derived application code.
- *
+ *
**/
enum _em_popup_target_select_t {
EM_POPUP_SELECT_ONE = 1<<1,
@@ -105,17 +105,17 @@ enum _em_popup_target_select_t {
EM_POPUP_SELECT_FOLDER = 1<<15, /* do we have any folder at all? */
EM_POPUP_SELECT_JUNK = 1<<16,
EM_POPUP_SELECT_NOT_JUNK = 1<<17,
- EM_POPUP_SELECT_LAST = 1<<18,
+ EM_POPUP_SELECT_LAST = 1<<18,
};
/**
* enum _em_popup_target_uri_t - EMPopupTargetURI qualifiers.
- *
+ *
* @EM_POPUP_URI_HTTP: This is a HTTP or HTTPS url.
* @EM_POPUP_URI_MAILTO: This is a MAILTO url.
* @EM_POPUP_URI_NOT_MAILTO: This is not a MAILTO url.
* @EM_POPUP_URI_CALLTO: This is a CALLTO url.
- *
+ *
**/
enum _em_popup_target_uri_t {
EM_POPUP_URI_HTTP = 1<<0,
@@ -126,10 +126,10 @@ enum _em_popup_target_uri_t {
/**
* enum _em_popup_target_part_t - EMPopupTargetPart qualifiers.
- *
+ *
* @EM_POPUP_PART_MESSAGE: This is a message type.
* @EM_POPUP_PART_IMAGE: This is an image type.
- *
+ *
**/
enum _em_popup_target_part_t {
EM_POPUP_PART_MESSAGE = 1<<0,
@@ -138,14 +138,14 @@ enum _em_popup_target_part_t {
/**
* enum _em_popup_target_folder_t - EMPopupTargetFolder qualifiers.
- *
+ *
* @EM_POPUP_FOLDER_FOLDER: This is a normal folder.
* @EM_POPUP_FOLDER_STORE: This is a store.
* @EM_POPUP_FOLDER_INFERIORS: This folder may have child folders.
* @EM_POPUP_FOLDER_DELETE: This folder can be deleted or renamed.
* @EM_POPUP_FOLDER_SELECT: This folder exists and can be selected or
* opened.
- *
+ *
**/
enum _em_popup_target_folder_t {
EM_POPUP_FOLDER_FOLDER = 1<<0, /* normal folder */
@@ -159,10 +159,10 @@ enum _em_popup_target_folder_t {
/**
* enum _em_popup_target_attachments_t - EMPopupTargetAttachments qualifiers.
- *
+ *
* @EM_POPUP_ATTACHMENTS_ONE: There is one and only one attachment selected.
* @EM_POPUP_ATTACHMENTS_MANY: There is one or more attachments selected.
- *
+ *
**/
enum _em_popup_target_attachments_t {
EM_POPUP_ATTACHMENTS_ONE = 1<<0, /* only 1 selected */
@@ -180,10 +180,10 @@ typedef struct _EMPopupTargetAttachments EMPopupTargetAttachments;
/**
* struct _EMPopupTargetURI - An inline URI.
- *
+ *
* @target: Superclass.
* @uri: The encoded URI to which this target applies.
- *
+ *
* Used to represent popup-menu context on any URI object.
**/
struct _EMPopupTargetURI {
@@ -193,7 +193,7 @@ struct _EMPopupTargetURI {
/**
* struct _EMPopupTargetSelect - A list of messages.
- *
+ *
* @target: Superclass.
* @folder: The CamelFolder of the selected messages.
* @uri: The encoded URI represending this folder.
@@ -212,12 +212,12 @@ struct _EMPopupTargetSelect {
/**
* struct _EMPopupTargetPart - A Camel object.
- *
+ *
* @target: Superclass.
* @mime_type: MIME type of the part. This may be a calculated type
* not matching the @part's MIME type.
* @part: A CamelMimePart representing a message or attachment.
- *
+ *
* Used to represent a message part as context for a popup menu. This
* is used for both attachments and inline-images.
**/
@@ -229,7 +229,7 @@ struct _EMPopupTargetPart {
/**
* struct _EMPopupTargetFolder - A folder uri.
- *
+ *
* @target: Superclass.
* @uri: A folder URI.
*
@@ -242,7 +242,7 @@ struct _EMPopupTargetFolder {
/**
* struct _EMPopupTargetAttachments - A list of composer attachments.
- *
+ *
* @target: Superclass.
* @attachments: A GSList list of EMsgComposer attachments.
*
diff --git a/mail/em-search-context.c b/mail/em-search-context.c
index caed0bdc99..48320d2b2c 100644
--- a/mail/em-search-context.c
+++ b/mail/em-search-context.c
@@ -45,7 +45,7 @@ static void
em_search_context_class_init (EMSearchContextClass *klass)
{
parent_class = g_type_class_ref (RULE_TYPE_CONTEXT);
-
+
((GObjectClass *)klass)->finalize = em_search_context_finalise;
((RuleContextClass *)klass)->new_element = em_search_new_element;
}
@@ -55,7 +55,7 @@ em_search_context_init (EMSearchContext *vc)
{
rule_context_add_part_set ((RuleContext *)vc, "partset", filter_part_get_type (),
rule_context_add_part, rule_context_next_part);
-
+
rule_context_add_rule_set ((RuleContext *)vc, "ruleset", filter_rule_get_type (),
rule_context_add_rule, rule_context_next_rule);
@@ -66,7 +66,7 @@ GType
em_search_context_get_type (void)
{
static GType type = 0;
-
+
if (!type) {
static const GTypeInfo info = {
sizeof (EMSearchContextClass),
@@ -79,10 +79,10 @@ em_search_context_get_type (void)
0, /* n_preallocs */
(GInstanceInitFunc) em_search_context_init,
};
-
+
type = g_type_register_static (RULE_TYPE_CONTEXT, "EMSearchContext", &info, 0);
}
-
+
return type;
}
@@ -90,7 +90,7 @@ em_search_context_get_type (void)
* em_search_context_new:
*
* Create a new EMSearchContext object.
- *
+ *
* Return value: A new #EMSearchContext object.
**/
EMSearchContext *
diff --git a/mail/em-stripsig-filter.c b/mail/em-stripsig-filter.c
index b0c0ee28e5..d1c4bb3718 100644
--- a/mail/em-stripsig-filter.c
+++ b/mail/em-stripsig-filter.c
@@ -48,7 +48,7 @@ CamelType
em_stripsig_filter_get_type (void)
{
static CamelType type = CAMEL_INVALID_TYPE;
-
+
if (type == CAMEL_INVALID_TYPE) {
type = camel_type_register (camel_mime_filter_get_type (),
"EMStripSigFilter",
@@ -59,7 +59,7 @@ em_stripsig_filter_get_type (void)
(CamelObjectInitFunc) em_stripsig_filter_init,
NULL);
}
-
+
return type;
}
@@ -68,9 +68,9 @@ static void
em_stripsig_filter_class_init (EMStripSigFilterClass *klass)
{
CamelMimeFilterClass *filter_class = (CamelMimeFilterClass *) klass;
-
+
parent_class = CAMEL_MIME_FILTER_CLASS (camel_type_get_global_classfuncs (camel_mime_filter_get_type ()));
-
+
filter_class->reset = filter_reset;
filter_class->filter = filter_filter;
filter_class->complete = filter_complete;
@@ -90,17 +90,17 @@ strip_signature (CamelMimeFilter *filter, char *in, size_t len, size_t prespace,
register const char *inptr = in;
const char *inend = in + len;
const char *start = NULL;
-
+
if (stripsig->midline) {
while (inptr < inend && *inptr != '\n')
inptr++;
-
+
if (inptr < inend) {
stripsig->midline = FALSE;
inptr++;
}
}
-
+
while (inptr < inend) {
if ((inend - inptr) >= 4 && !strncmp (inptr, "-- \n", 4)) {
start = inptr;
@@ -108,24 +108,24 @@ strip_signature (CamelMimeFilter *filter, char *in, size_t len, size_t prespace,
} else {
while (inptr < inend && *inptr != '\n')
inptr++;
-
+
if (inptr == inend) {
stripsig->midline = TRUE;
break;
}
-
+
inptr++;
}
}
-
+
if (start != NULL)
inptr = start;
-
+
if (!flush && inend > inptr)
camel_mime_filter_backup (filter, inptr, inend - inptr);
else if (!start)
inptr = inend;
-
+
*out = in;
*outlen = inptr - in;
*outprespace = prespace;
@@ -150,7 +150,7 @@ static void
filter_reset (CamelMimeFilter *filter)
{
EMStripSigFilter *stripsig = (EMStripSigFilter *) filter;
-
+
stripsig->midline = FALSE;
}
diff --git a/mail/em-stripsig-filter.h b/mail/em-stripsig-filter.h
index cdc3550b06..9e3f42bd85 100644
--- a/mail/em-stripsig-filter.h
+++ b/mail/em-stripsig-filter.h
@@ -43,13 +43,13 @@ typedef struct _EMStripSigFilterClass EMStripSigFilterClass;
struct _EMStripSigFilter {
CamelMimeFilter parent_object;
-
+
guint32 midline:1;
};
struct _EMStripSigFilterClass {
CamelMimeFilterClass parent_class;
-
+
};
diff --git a/mail/em-subscribe-editor.c b/mail/em-subscribe-editor.c
index 53f3e0fdca..28fc79bfde 100644
--- a/mail/em-subscribe-editor.c
+++ b/mail/em-subscribe-editor.c
@@ -104,7 +104,7 @@ struct _EMSubscribe {
/* pending LISTs, EMSubscribeNode's */
int pending_id;
EDList pending;
-
+
/* queue of pending UN/SUBSCRIBEs, EMsg's */
int subscribe_id;
EDList subscribe;
@@ -181,7 +181,7 @@ struct _zsubscribe_msg {
char *path;
};
-static void
+static void
sub_folder_subscribe (struct _mail_msg *mm)
{
struct _zsubscribe_msg *m = (struct _zsubscribe_msg *) mm;
@@ -234,7 +234,7 @@ sub_folder_subscribed (struct _mail_msg *mm)
}
}
-static void
+static void
sub_folder_free (struct _mail_msg *mm)
{
struct _zsubscribe_msg *m = (struct _zsubscribe_msg *) mm;
@@ -306,7 +306,7 @@ sub_fill_level(EMSubscribe *sub, CamelFolderInfo *info, GtkTreeIter *parent, in
gtk_tree_model_get_iter(gtk_tree_view_get_model(sub->tree), &iter, node->path);
}
- d(printf("flags & CAMEL_FOLDER_NOCHILDREN=%d, f & CAMEL_FOLDER_NOINFERIORS=%d\t fi->full_name=[%s], node->path=%p\n",
+ d(printf("flags & CAMEL_FOLDER_NOCHILDREN=%d, f & CAMEL_FOLDER_NOINFERIORS=%d\t fi->full_name=[%s], node->path=%p\n",
fi->flags & CAMEL_FOLDER_NOCHILDREN, fi->flags & CAMEL_FOLDER_NOINFERIORS, fi->full_name,
node->path));
@@ -317,11 +317,11 @@ sub_fill_level(EMSubscribe *sub, CamelFolderInfo *info, GtkTreeIter *parent, in
d(printf("scanning child '%s'\n", fi->child->full_name));
sub_fill_level(sub, fi->child, &iter, FALSE);
} else if (!(fi->flags & CAMEL_FOLDER_NOCHILDREN)) {
- GtkTreeIter new_iter;
+ GtkTreeIter new_iter;
d(printf("flags: CAMEL_FOLDER_NOCHILDREN is not set '%s'\n", fi->full_name));
gtk_tree_store_append(treestore, &new_iter, &iter);
gtk_tree_store_set(treestore, &new_iter, 0, 0, 1, "Loading...", 2, NULL, -1);
- }
+ }
else {
if (pending)
e_dlist_addtail(&sub->pending, (EDListNode *)node);
@@ -404,8 +404,8 @@ sub_folderinfo_free(struct _mail_msg *mm)
if (!m->sub->cancel)
sub_editor_busy(m->sub->editor, -1);
- /* Now we just load the children on demand, so set the
- expand state to true if m->node is not NULL
+ /* Now we just load the children on demand, so set the
+ expand state to true if m->node is not NULL
*/
if (m->node)
gtk_tree_view_expand_row(m->sub->tree, m->node->path, FALSE);
@@ -501,7 +501,7 @@ sub_selection_changed(GtkTreeSelection *selection, EMSubscribe *sub)
}
/* double-clicking causes a node item to be evaluated directly */
-static void sub_row_activated(GtkTreeView *tree, GtkTreePath *path, GtkTreeViewColumn *col, EMSubscribe *sub)
+static void sub_row_activated(GtkTreeView *tree, GtkTreePath *path, GtkTreeViewColumn *col, EMSubscribe *sub)
{
if (!gtk_tree_view_row_expanded(tree, path))
gtk_tree_view_expand_row(tree, path, FALSE);
@@ -548,7 +548,7 @@ sub_row_expanded(GtkTreeView *tree, GtkTreeIter *iter, GtkTreePath *path, EMSubs
return;
}
}
-
+
e_dlist_addhead(&sub->pending, (EDListNode *)node);
if (sub->pending_id == -1
@@ -617,12 +617,12 @@ subscribe_set_store(EMSubscribe *sub, CamelStore *store)
g_str_hash, g_str_equal,
(GDestroyNotify) NULL,
(GDestroyNotify) sub_node_free);
-
+
model = gtk_tree_store_new (3, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_POINTER);
sub->tree = (GtkTreeView *) gtk_tree_view_new_with_model ((GtkTreeModel *) model);
g_object_unref (model);
gtk_widget_show ((GtkWidget *)sub->tree);
-
+
sub->widget = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sub->widget), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sub->widget), GTK_SHADOW_IN);
@@ -633,11 +633,11 @@ subscribe_set_store(EMSubscribe *sub, CamelStore *store)
g_object_set(renderer, "activatable", TRUE, NULL);
gtk_tree_view_insert_column_with_attributes (sub->tree, -1, _("Subscribed"), renderer, "active", 0, NULL);
g_signal_connect(renderer, "toggled", G_CALLBACK(sub_subscribe_toggled), sub);
-
+
renderer = gtk_cell_renderer_text_new ();
gtk_tree_view_insert_column_with_attributes (sub->tree, -1, _("Folder"), renderer, "text", 1, NULL);
gtk_tree_view_set_expander_column(sub->tree, gtk_tree_view_get_column(sub->tree, 1));
-
+
selection = gtk_tree_view_get_selection (sub->tree);
gtk_tree_selection_set_mode (selection, GTK_SELECTION_MULTIPLE);
gtk_tree_view_set_headers_visible (sub->tree, FALSE);
@@ -794,10 +794,10 @@ static void
window_size_allocate (GtkWidget *widget, GtkAllocation *allocation)
{
GConfClient *gconf;
-
+
/* save to in-memory variable for current session access */
window_size = *allocation;
-
+
/* save the setting across sessions */
gconf = gconf_client_get_default ();
gconf_client_set_int (gconf, "/apps/evolution/mail/subscribe_window/width", window_size.width, NULL);
@@ -829,7 +829,7 @@ GtkDialog *em_subscribe_editor_new(void)
}
se->dialog = (GtkDialog *)glade_xml_get_widget (xml, "subscribe_dialog");
g_signal_connect(se->dialog, "destroy", G_CALLBACK(sub_editor_destroy), se);
-
+
gtk_widget_ensure_style ((GtkWidget *)se->dialog);
gtk_container_set_border_width ((GtkContainer *) ((GtkDialog *)se->dialog)->action_area, 12);
gtk_container_set_border_width ((GtkContainer *) ((GtkDialog *)se->dialog)->vbox, 0);
@@ -867,7 +867,7 @@ GtkDialog *em_subscribe_editor_new(void)
e_iterator_is_valid (iter);
e_iterator_next (iter)) {
EAccount *account = (EAccount *) e_iterator_get (iter);
-
+
/* setup url table, and store table? */
if (account->enabled && account->source->url) {
d(printf("adding account '%s'\n", account->name));
@@ -883,31 +883,31 @@ GtkDialog *em_subscribe_editor_new(void)
gtk_option_menu_set_menu((GtkOptionMenu *)se->optionmenu, menu);
g_signal_connect(se->optionmenu, "changed", G_CALLBACK(sub_editor_menu_changed), se);
-
+
if (window_size.width == 0) {
/* initialize @window_size with the previous session's size */
GConfClient *gconf;
GError *err = NULL;
-
+
gconf = gconf_client_get_default ();
-
+
window_size.width = gconf_client_get_int (gconf, "/apps/evolution/mail/subscribe_window/width", &err);
if (err != NULL) {
window_size.width = DEFAULT_WIDTH;
g_clear_error (&err);
}
-
+
window_size.height = gconf_client_get_int (gconf, "/apps/evolution/mail/subscribe_window/height", &err);
if (err != NULL) {
window_size.height = DEFAULT_HEIGHT;
g_clear_error (&err);
}
-
+
g_object_unref (gconf);
}
-
+
gtk_window_set_default_size ((GtkWindow *) se->dialog, window_size.width, window_size.height);
g_signal_connect (se->dialog, "size-allocate", G_CALLBACK (window_size_allocate), NULL);
-
+
return se->dialog;
}
diff --git a/mail/em-sync-stream.c b/mail/em-sync-stream.c
index 5648efc83e..1224e468bd 100644
--- a/mail/em-sync-stream.c
+++ b/mail/em-sync-stream.c
@@ -36,7 +36,7 @@
#define LOG_STREAM
-#define d(x)
+#define d(x)
#define EMSS_CLASS(x) ((EMSyncStreamClass *)(((CamelObject *)(x))->klass))
@@ -90,7 +90,7 @@ CamelType
em_sync_stream_get_type (void)
{
static CamelType type = CAMEL_INVALID_TYPE;
-
+
if (type == CAMEL_INVALID_TYPE) {
#ifdef LOG_STREAM
dolog = getenv("EVOLUTION_MAIL_LOG_HTML") != NULL;
@@ -104,7 +104,7 @@ em_sync_stream_get_type (void)
(CamelObjectInitFunc) em_sync_stream_init,
(CamelObjectFinalizeFunc) em_sync_stream_finalize);
}
-
+
return type;
}
@@ -112,9 +112,9 @@ static void
em_sync_stream_class_init (EMSyncStreamClass *klass)
{
CamelStreamClass *stream_class = CAMEL_STREAM_CLASS (klass);
-
+
parent_class = (CamelStreamClass *) CAMEL_STREAM_TYPE;
-
+
/* virtual method overload */
stream_class->write = stream_write;
stream_class->flush = stream_flush;
@@ -170,7 +170,7 @@ emcs_gui_received(GIOChannel *source, GIOCondition cond, void *data)
#endif
break;
}
-
+
e_msgport_reply((EMsg *)msg);
d(printf("%p: gui sync op jobs done\n", emss));
diff --git a/mail/em-sync-stream.h b/mail/em-sync-stream.h
index b48afcc68a..0cb79a468d 100644
--- a/mail/em-sync-stream.h
+++ b/mail/em-sync-stream.h
@@ -56,7 +56,7 @@ typedef struct {
ssize_t (*sync_write) (CamelStream *stream, const char *buffer, size_t n);
int (*sync_close) (CamelStream *stream);
int (*sync_flush) (CamelStream *stream);
-
+
} EMSyncStreamClass;
CamelType em_sync_stream_get_type (void);
diff --git a/mail/em-utils.c b/mail/em-utils.c
index 894f547c32..498b3cd5a1 100644
--- a/mail/em-utils.c
+++ b/mail/em-utils.c
@@ -122,13 +122,13 @@ em_utils_prompt_user(GtkWindow *parent, const char *promptkey, const char *tag,
gtk_box_pack_start ((GtkBox *)((GtkDialog *) mbox)->vbox, check, TRUE, TRUE, 0);
gtk_widget_show (check);
}
-
+
button = gtk_dialog_run ((GtkDialog *) mbox);
if (promptkey)
gconf_client_set_bool(gconf, promptkey, !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(check)), NULL);
gtk_widget_destroy(mbox);
-
+
return button == GTK_RESPONSE_YES;
}
@@ -147,13 +147,13 @@ em_utils_uids_copy (GPtrArray *uids)
{
GPtrArray *copy;
int i;
-
+
copy = g_ptr_array_new ();
g_ptr_array_set_size (copy, uids->len);
-
+
for (i = 0; i < uids->len; i++)
copy->pdata[i] = g_strdup (uids->pdata[i]);
-
+
return copy;
}
@@ -167,10 +167,10 @@ void
em_utils_uids_free (GPtrArray *uids)
{
int i;
-
+
for (i = 0; i < uids->len; i++)
g_free (uids->pdata[i]);
-
+
g_ptr_array_free (uids, TRUE);
}
@@ -204,7 +204,7 @@ em_utils_configure_account (GtkWidget *parent)
gtk_widget_show(emae->editor);
gtk_grab_add(emae->editor);
gtk_main();
-
+
return mail_config_is_configured();
}
@@ -225,19 +225,19 @@ gboolean
em_utils_check_user_can_send_mail (GtkWidget *parent)
{
EAccount *account;
-
+
if (!mail_config_is_configured ()) {
if (!em_utils_configure_account (parent))
return FALSE;
}
-
+
if (!(account = mail_config_get_default_account ()))
return FALSE;
-
+
/* Check for a transport */
if (!account->transport->url)
return FALSE;
-
+
return TRUE;
}
@@ -249,19 +249,19 @@ static void
em_filter_editor_response (GtkWidget *dialog, int button, gpointer user_data)
{
EMFilterContext *fc;
-
+
if (button == GTK_RESPONSE_OK) {
char *user;
-
+
fc = g_object_get_data ((GObject *) dialog, "context");
user = g_strdup_printf ("%s/mail/filters.xml",
mail_component_peek_base_directory (mail_component_peek ()));
rule_context_save ((RuleContext *) fc, user);
g_free (user);
}
-
+
gtk_widget_destroy (dialog);
-
+
filter_editor = NULL;
}
@@ -285,19 +285,19 @@ em_utils_edit_filters (GtkWidget *parent)
const char *base_directory = mail_component_peek_base_directory (mail_component_peek ());
char *user, *system;
EMFilterContext *fc;
-
+
if (filter_editor) {
gdk_window_raise (GTK_WIDGET (filter_editor)->window);
return;
}
-
+
fc = em_filter_context_new ();
user = g_strdup_printf ("%s/mail/filters.xml", base_directory);
system = g_build_filename (EVOLUTION_PRIVDATADIR, "filtertypes.xml", NULL);
rule_context_load ((RuleContext *) fc, system, user);
g_free (user);
g_free (system);
-
+
if (((RuleContext *) fc)->error) {
e_error_run((GtkWindow *)parent, "mail:filter-load-error", ((RuleContext *)fc)->error, NULL);
return;
@@ -311,15 +311,15 @@ em_utils_edit_filters (GtkWidget *parent)
filter_editor = (GtkWidget *) em_filter_editor_new (fc, em_filter_source_element_names);
if (parent != NULL)
e_dialog_set_transient_for ((GtkWindow *) filter_editor, parent);
-
+
gtk_window_set_title (GTK_WINDOW (filter_editor), _("Message Filters"));
g_object_set_data_full ((GObject *) filter_editor, "context", fc, (GtkDestroyNotify) g_object_unref);
g_signal_connect (filter_editor, "response", G_CALLBACK (em_filter_editor_response), NULL);
gtk_widget_show (GTK_WIDGET (filter_editor));
}
-/*
- * Picked this from e-d-s/libedataserver/e-data.
+/*
+ * Picked this from e-d-s/libedataserver/e-data.
* But it allows more characters to occur in filenames, especially when saving attachment.
*/
void
@@ -331,8 +331,8 @@ em_filename_make_safe (gchar *string)
const char *unsafe_chars = "/\":*?<>|\\#";
#else
const char *unsafe_chars = "/#";
-#endif
-
+#endif
+
g_return_if_fail (string != NULL);
p = string;
@@ -345,7 +345,7 @@ em_filename_make_safe (gchar *string)
* written?
*/
if (!g_unichar_isprint(c) || ( c < 0xff && strchr (unsafe_chars, c&0xff ))) {
- while (ts<p)
+ while (ts<p)
*ts++ = '_';
}
}
@@ -468,22 +468,22 @@ exit:
* @parent: parent window
* @filename: filename to save to
* @part: part to save
- *
+ *
* Save a part's content to a specific file
* Creates all needed directories and overwrites without prompting
*
* Returns %TRUE if saving succeeded, %FALSE otherwise
**/
gboolean
-em_utils_save_part_to_file(GtkWidget *parent, const char *filename, CamelMimePart *part)
+em_utils_save_part_to_file(GtkWidget *parent, const char *filename, CamelMimePart *part)
{
int done;
char *dirname;
struct stat st;
-
+
if (filename[0] == 0)
return FALSE;
-
+
dirname = g_path_get_dirname(filename);
if (g_mkdir_with_parents(dirname, 0777) == -1) {
e_error_run((GtkWindow *)parent, "mail:no-create-path", filename, g_strerror(errno), NULL);
@@ -498,15 +498,15 @@ em_utils_save_part_to_file(GtkWidget *parent, const char *filename, CamelMimePar
return FALSE;
}
}
-
+
if (g_stat(filename, &st) != -1 && !S_ISREG(st.st_mode)) {
e_error_run((GtkWindow *)parent, "mail:no-write-path-notfile", filename, NULL);
return FALSE;
}
-
+
/* FIXME: This doesn't handle default charsets */
mail_msg_wait(mail_save_part(part, filename, emu_save_part_done, &done, FALSE));
-
+
return done;
}
@@ -519,7 +519,7 @@ static void
emu_save_messages_response(GtkWidget *filesel, int response, struct _save_messages_data *data)
{
char *uri;
-
+
if (response == GTK_RESPONSE_OK) {
uri = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (filesel));
@@ -562,7 +562,7 @@ em_utils_save_messages (GtkWidget *parent, CamelFolder *folder, GPtrArray *uids)
filesel = e_file_get_save_filesel(parent, _("Save Message..."), NULL, GTK_FILE_CHOOSER_ACTION_SAVE);
camel_object_ref(folder);
-
+
data = g_malloc(sizeof(struct _save_messages_data));
data->folder = folder;
data->uids = uids;
@@ -577,18 +577,18 @@ static void
emu_add_address_cb(BonoboListener *listener, const char *name, const CORBA_any *any, CORBA_Environment *ev, void *data)
{
char *type = bonobo_event_subtype(name);
-
+
if (!strcmp(type, "Destroy"))
gtk_widget_destroy((GtkWidget *)data);
-
+
g_free(type);
}
/**
* em_utils_add_address:
- * @parent:
- * @email:
- *
+ * @parent:
+ * @email:
+ *
* Add address @email to the addressbook.
**/
void em_utils_add_address(struct _GtkWidget *parent, const char *email)
@@ -598,16 +598,16 @@ void em_utils_add_address(struct _GtkWidget *parent, const char *email)
GtkWidget *control;
/*GtkWidget *socket;*/
char *buf;
-
+
cia = camel_internet_address_new ();
if (camel_address_decode ((CamelAddress *) cia, email) == -1) {
camel_object_unref (cia);
return;
}
-
+
buf = camel_address_format ((CamelAddress *) cia);
camel_object_unref (cia);
-
+
win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title((GtkWindow *)win, _("Add address"));
gtk_window_set_transient_for((GtkWindow *)win, ((GtkWindow *)parent));
@@ -617,9 +617,9 @@ void em_utils_add_address(struct _GtkWidget *parent, const char *email)
control = bonobo_widget_new_control("OAFIID:GNOME_Evolution_Addressbook_AddressPopup:" BASE_VERSION, CORBA_OBJECT_NIL);
bonobo_widget_set_property((BonoboWidget *)control, "email", TC_CORBA_string, buf, NULL);
g_free (buf);
-
+
bonobo_event_source_client_add_listener(bonobo_widget_get_objref((BonoboWidget *)control), emu_add_address_cb, NULL, NULL, win);
-
+
/*socket = find_socket (GTK_CONTAINER (control));
g_object_weak_ref ((GObject *) socket, (GWeakNotify) gtk_widget_destroy, win);*/
@@ -653,11 +653,11 @@ tag_editor_response (GtkWidget *dialog, int button, struct ted_t *ted)
CamelTag *tags, *t;
GPtrArray *uids;
int i;
-
+
if (button == GTK_RESPONSE_OK && (tags = message_tag_editor_get_tag_list (ted->editor))) {
folder = ted->folder;
uids = ted->uids;
-
+
camel_folder_freeze (folder);
for (i = 0; i < uids->len; i++) {
CamelMessageInfo *mi = camel_folder_get_message_info(folder, uids->pdata[i]);
@@ -669,14 +669,14 @@ tag_editor_response (GtkWidget *dialog, int button, struct ted_t *ted)
camel_message_info_free(mi);
}
}
-
+
camel_folder_thaw (folder);
camel_tag_list_free (&tags);
if (ted->emfv->preview)
em_format_redraw(ted->emfv->preview);
}
-
+
gtk_widget_destroy (dialog);
}
@@ -695,26 +695,26 @@ em_utils_flag_for_followup (GtkWidget *parent, CamelFolder *folder, GPtrArray *u
GtkWidget *editor;
struct ted_t *ted;
int i;
-
+
g_return_if_fail (CAMEL_IS_FOLDER (folder));
g_return_if_fail (uids != NULL);
-
+
editor = (GtkWidget *) message_tag_followup_new ();
-
+
if (parent != NULL)
e_dialog_set_transient_for ((GtkWindow *) editor, parent);
-
+
camel_object_ref (folder);
-
+
ted = g_new (struct ted_t, 1);
ted->emfv = (EMFolderView *) parent;
ted->editor = MESSAGE_TAG_EDITOR (editor);
ted->folder = folder;
ted->uids = uids;
-
+
for (i = 0; i < uids->len; i++) {
CamelMessageInfo *info;
-
+
info = camel_folder_get_message_info (folder, uids->pdata[i]);
if (info) {
message_tag_followup_append_message (MESSAGE_TAG_FOLLOWUP (editor),
@@ -723,11 +723,11 @@ em_utils_flag_for_followup (GtkWidget *parent, CamelFolder *folder, GPtrArray *u
camel_message_info_free(info);
}
}
-
+
/* special-case... */
if (uids->len == 1) {
CamelMessageInfo *info;
-
+
info = camel_folder_get_message_info (folder, uids->pdata[0]);
if (info) {
const CamelTag *tags = camel_message_info_user_tags(info);
@@ -737,10 +737,10 @@ em_utils_flag_for_followup (GtkWidget *parent, CamelFolder *folder, GPtrArray *u
camel_message_info_free(info);
}
}
-
+
g_signal_connect (editor, "response", G_CALLBACK (tag_editor_response), ted);
g_object_weak_ref ((GObject *) editor, (GWeakNotify) ted_free, ted);
-
+
gtk_widget_show (editor);
}
@@ -757,10 +757,10 @@ void
em_utils_flag_for_followup_clear (GtkWidget *parent, CamelFolder *folder, GPtrArray *uids)
{
int i;
-
+
g_return_if_fail (CAMEL_IS_FOLDER (folder));
g_return_if_fail (uids != NULL);
-
+
camel_folder_freeze (folder);
for (i = 0; i < uids->len; i++) {
CamelMessageInfo *mi = camel_folder_get_message_info(folder, uids->pdata[i]);
@@ -773,7 +773,7 @@ em_utils_flag_for_followup_clear (GtkWidget *parent, CamelFolder *folder, GPtrAr
}
}
camel_folder_thaw (folder);
-
+
em_utils_uids_free (uids);
}
@@ -792,12 +792,12 @@ em_utils_flag_for_followup_completed (GtkWidget *parent, CamelFolder *folder, GP
{
char *now;
int i;
-
+
g_return_if_fail (CAMEL_IS_FOLDER (folder));
g_return_if_fail (uids != NULL);
-
+
now = camel_header_format_date (time (NULL), 0);
-
+
camel_folder_freeze (folder);
for (i = 0; i < uids->len; i++) {
const char *tag;
@@ -811,9 +811,9 @@ em_utils_flag_for_followup_completed (GtkWidget *parent, CamelFolder *folder, GP
}
}
camel_folder_thaw (folder);
-
+
g_free (now);
-
+
em_utils_uids_free (uids);
}
@@ -834,7 +834,7 @@ em_utils_write_messages_to_stream(CamelFolder *folder, GPtrArray *uids, CamelStr
filtered_stream = camel_stream_filter_new_with_stream(stream);
camel_stream_filter_add(filtered_stream, (CamelMimeFilter *)from_filter);
camel_object_unref(from_filter);
-
+
for (i=0; i<uids->len; i++) {
CamelMimeMessage *message;
char *from;
@@ -853,7 +853,7 @@ em_utils_write_messages_to_stream(CamelFolder *folder, GPtrArray *uids, CamelStr
|| camel_data_wrapper_write_to_stream((CamelDataWrapper *)message, (CamelStream *)filtered_stream) == -1
|| camel_stream_flush((CamelStream *)filtered_stream) == -1)
res = -1;
-
+
g_free(from);
camel_object_unref(message);
@@ -887,16 +887,16 @@ em_utils_read_messages_from_stream(CamelFolder *folder, CamelStream *stream)
camel_object_unref(msg);
break;
}
-
+
camel_folder_append_message(folder, msg, NULL, NULL, ex);
camel_object_unref(msg);
-
+
if (camel_exception_is_set (ex))
break;
-
+
camel_mime_parser_step(mp, NULL, NULL);
}
-
+
camel_object_unref(mp);
if (!camel_exception_is_set(ex))
res = 0;
@@ -910,7 +910,7 @@ em_utils_read_messages_from_stream(CamelFolder *folder, CamelStream *stream)
* @data: selection data
* @folder: folder containign messages to copy into the selection
* @uids: uids of the messages to copy into the selection
- *
+ *
* Creates a mailbox-format selection.
* Warning: Could be BIG!
* Warning: This could block the ui for an extended period.
@@ -932,8 +932,8 @@ em_utils_selection_set_mailbox(GtkSelectionData *data, CamelFolder *folder, GPtr
/**
* em_utils_selection_get_mailbox:
* @data: selection data
- * @folder:
- *
+ * @folder:
+ *
* Receive a mailbox selection/dnd
* Warning: Could be BIG!
* Warning: This could block the ui for an extended period.
@@ -956,9 +956,9 @@ em_utils_selection_get_mailbox(GtkSelectionData *data, CamelFolder *folder)
/**
* em_utils_selection_get_message:
- * @data:
- * @folder:
- *
+ * @data:
+ * @folder:
+ *
* get a message/rfc822 data.
**/
void
@@ -985,8 +985,8 @@ em_utils_selection_get_message(GtkSelectionData *data, CamelFolder *folder)
* em_utils_selection_set_uidlist:
* @data: selection data
* @uri:
- * @uids:
- *
+ * @uids:
+ *
* Sets a "x-uid-list" format selection data.
*
* FIXME: be nice if this could take a folder argument rather than uri
@@ -998,12 +998,12 @@ em_utils_selection_set_uidlist(GtkSelectionData *data, const char *uri, GPtrArra
int i;
/* format: "uri\0uid1\0uid2\0uid3\0...\0uidn\0" */
-
+
g_byte_array_append(array, (unsigned char *)uri, strlen(uri)+1);
for (i=0; i<uids->len; i++)
g_byte_array_append(array, uids->pdata[i], strlen(uids->pdata[i])+1);
-
+
gtk_selection_data_set(data, data->target, 8, array->data, array->len);
g_byte_array_free(array, TRUE);
}
@@ -1012,9 +1012,9 @@ em_utils_selection_set_uidlist(GtkSelectionData *data, const char *uri, GPtrArra
* em_utils_selection_get_uidlist:
* @data: selection data
* @move: do we delete the messages.
- *
+ *
* Convert a uid list into a copy/move operation.
- *
+ *
* Warning: Could take some time to run.
**/
void
@@ -1027,7 +1027,7 @@ em_utils_selection_get_uidlist(GtkSelectionData *data, CamelFolder *dest, int mo
if (data == NULL || data->data == NULL || data->length == -1)
return;
-
+
uids = g_ptr_array_new();
inptr = (char *)data->data;
@@ -1060,10 +1060,10 @@ em_utils_selection_get_uidlist(GtkSelectionData *data, CamelFolder *dest, int mo
/**
* em_utils_selection_set_urilist:
- * @data:
- * @folder:
- * @uids:
- *
+ * @data:
+ * @folder:
+ * @uids:
+ *
* Set the selection data @data to a uri which points to a file, which is
* a berkely mailbox format mailbox. The file is automatically cleaned
* up when the application quits.
@@ -1101,7 +1101,7 @@ em_utils_selection_set_urilist(GtkSelectionData *data, CamelFolder *folder, GPtr
tmpfile = g_build_filename(tmpdir, file, NULL);
g_free(tmpdir);
g_free(file);
-
+
fd = g_open(tmpfile, O_WRONLY | O_CREAT | O_EXCL | O_BINARY, 0666);
if (fd == -1) {
g_free(tmpfile);
@@ -1129,10 +1129,10 @@ em_utils_selection_set_urilist(GtkSelectionData *data, CamelFolder *folder, GPtr
/**
* em_utils_selection_set_urilist:
- * @data:
- * @folder:
- * @uids:
- *
+ * @data:
+ * @folder:
+ * @uids:
+ *
* Get the selection data @data from a uri list which points to a
* file, which is a berkely mailbox format mailbox. The file is
* automatically cleaned up when the application quits.
@@ -1182,13 +1182,13 @@ emu_save_part_done(CamelMimePart *part, char *name, int done, void *data)
/**
* em_utils_temp_save_part:
- * @parent:
- * @part:
+ * @parent:
+ * @part:
* @mode: readonly or not.
- *
+ *
* Save a part's content to a temporary file, and return the
* filename.
- *
+ *
* Return value: NULL if anything failed.
**/
char *
@@ -1219,7 +1219,7 @@ em_utils_temp_save_part(GtkWidget *parent, CamelMimePart *part, gboolean mode)
path = g_build_filename(tmpdir, filename, NULL);
g_free(tmpdir);
g_free(mfilename);
-
+
/* FIXME: This doesn't handle default charsets */
if (mode)
mail_msg_wait(mail_save_part(part, path, emu_save_part_done, &done, TRUE));
@@ -1241,7 +1241,7 @@ em_utils_temp_save_part(GtkWidget *parent, CamelMimePart *part, gboolean mode)
* @uri: uri for this folder, if known
*
* Decides if @folder is a Drafts folder.
- *
+ *
* Returns %TRUE if this is a Drafts folder or %FALSE otherwise.
**/
gboolean
@@ -1252,18 +1252,18 @@ em_utils_folder_is_drafts(CamelFolder *folder, const char *uri)
EIterator *iter;
int is = FALSE;
char *drafts_uri;
-
+
if (folder == mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_DRAFTS))
return TRUE;
if (uri == NULL)
return FALSE;
-
+
accounts = mail_config_get_accounts();
iter = e_list_get_iterator((EList *)accounts);
while (e_iterator_is_valid(iter)) {
account = (EAccount *)e_iterator_get(iter);
-
+
if (account->drafts_folder_uri) {
drafts_uri = em_uri_to_camel (account->drafts_folder_uri);
if (camel_store_folder_uri_equal (folder->parent_store, drafts_uri, uri)) {
@@ -1273,12 +1273,12 @@ em_utils_folder_is_drafts(CamelFolder *folder, const char *uri)
}
g_free (drafts_uri);
}
-
+
e_iterator_next(iter);
}
-
+
g_object_unref(iter);
-
+
return is;
}
@@ -1288,7 +1288,7 @@ em_utils_folder_is_drafts(CamelFolder *folder, const char *uri)
* @uri: uri for this folder, if known
*
* Decides if @folder is a Sent folder
- *
+ *
* Returns %TRUE if this is a Sent folder or %FALSE otherwise.
**/
gboolean
@@ -1299,18 +1299,18 @@ em_utils_folder_is_sent(CamelFolder *folder, const char *uri)
EIterator *iter;
int is = FALSE;
char *sent_uri;
-
+
if (folder == mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_SENT))
return TRUE;
-
+
if (uri == NULL)
return FALSE;
-
+
accounts = mail_config_get_accounts();
iter = e_list_get_iterator((EList *)accounts);
while (e_iterator_is_valid(iter)) {
account = (EAccount *)e_iterator_get(iter);
-
+
if (account->sent_folder_uri) {
sent_uri = em_uri_to_camel (account->sent_folder_uri);
if (camel_store_folder_uri_equal (folder->parent_store, sent_uri, uri)) {
@@ -1320,12 +1320,12 @@ em_utils_folder_is_sent(CamelFolder *folder, const char *uri)
}
g_free (sent_uri);
}
-
+
e_iterator_next(iter);
}
-
+
g_object_unref(iter);
-
+
return is;
}
@@ -1335,7 +1335,7 @@ em_utils_folder_is_sent(CamelFolder *folder, const char *uri)
* @uri: uri for this folder, if known
*
* Decides if @folder is an Outbox folder
- *
+ *
* Returns %TRUE if this is an Outbox folder or %FALSE otherwise.
**/
gboolean
@@ -1347,9 +1347,9 @@ em_utils_folder_is_outbox(CamelFolder *folder, const char *uri)
/**
* em_utils_adjustment_page:
- * @adj:
- * @down:
- *
+ * @adj:
+ * @down:
+ *
* Move an adjustment up/down forward/back one page.
**/
void
@@ -1437,9 +1437,9 @@ emu_proxy_setup(void *data)
/**
* em_utils_get_proxy_uri:
- *
+ *
* Get the system proxy uri.
- *
+ *
* Return value: Must be freed when finished with.
**/
char *
@@ -1469,7 +1469,7 @@ em_utils_get_proxy_uri(void)
* then it will be used as an attribution string, and the
* content will be cited. Otherwise no citation or attribution
* will be performed.
- *
+ *
* Return Value: The part in displayable html format.
**/
char *
@@ -1479,11 +1479,11 @@ em_utils_part_to_html(CamelMimePart *part, ssize_t *len, EMFormat *source)
CamelStreamMem *mem;
GByteArray *buf;
char *text;
-
+
buf = g_byte_array_new ();
mem = (CamelStreamMem *) camel_stream_mem_new ();
camel_stream_mem_set_byte_array (mem, buf);
-
+
emfq = em_format_quote_new(NULL, (CamelStream *)mem, 0);
((EMFormat *) emfq)->composer = TRUE;
em_format_set_session((EMFormat *)emfq, session);
@@ -1511,14 +1511,14 @@ em_utils_part_to_html(CamelMimePart *part, ssize_t *len, EMFormat *source)
/**
* em_utils_message_to_html:
* @message:
- * @credits:
+ * @credits:
* @flags: EMFormatQuote flags
* @len:
* @source:
*
* Convert a message to html, quoting if the @credits attribution
* string is given.
- *
+ *
* Return value: The html version.
**/
char *
@@ -1534,13 +1534,13 @@ em_utils_message_to_html(CamelMimeMessage *message, const char *credits, guint32
camel_stream_mem_set_byte_array (mem, buf);
emfq = em_format_quote_new(credits, (CamelStream *)mem, flags);
- ((EMFormat *) emfq)->composer = TRUE;
+ ((EMFormat *) emfq)->composer = TRUE;
em_format_set_session((EMFormat *)emfq, session);
-
+
if (!source) {
GConfClient *gconf;
char *charset;
-
+
/* FIXME: we should be getting this from the current view, not the global setting. */
gconf = gconf_client_get_default ();
charset = gconf_client_get_string (gconf, "/apps/evolution/mail/display/charset", NULL);
@@ -1548,7 +1548,7 @@ em_utils_message_to_html(CamelMimeMessage *message, const char *credits, guint32
g_object_unref (gconf);
g_free (charset);
}
-
+
em_format_format_clone((EMFormat *)emfq, NULL, NULL, message, source);
g_object_unref (emfq);
@@ -1581,7 +1581,7 @@ em_utils_expunge_folder (GtkWidget *parent, CamelFolder *folder)
if (!em_utils_prompt_user ((GtkWindow *) parent, "/apps/evolution/mail/prompts/expunge", "mail:ask-expunge", name, NULL))
return;
-
+
mail_expunge_folder(folder, NULL, NULL);
}
@@ -1599,18 +1599,18 @@ em_utils_empty_trash (GtkWidget *parent)
EAccount *account;
EIterator *iter;
CamelException ex;
-
+
if (!em_utils_prompt_user((GtkWindow *) parent, "/apps/evolution/mail/prompts/empty_trash", "mail:ask-empty-trash", NULL))
return;
-
+
camel_exception_init (&ex);
-
+
/* expunge all remote stores */
accounts = mail_config_get_accounts ();
iter = e_list_get_iterator ((EList *) accounts);
while (e_iterator_is_valid (iter)) {
account = (EAccount *) e_iterator_get (iter);
-
+
/* make sure this is a valid source */
if (account->enabled && account->source->url) {
provider = camel_provider_get(account->source->url, &ex);
@@ -1621,16 +1621,16 @@ em_utils_empty_trash (GtkWidget *parent)
mail_empty_trash (account, NULL, NULL);
}
}
-
+
/* clear the exception for the next round */
camel_exception_clear (&ex);
}
-
+
e_iterator_next (iter);
}
-
+
g_object_unref (iter);
-
+
/* Now empty the local trash folder */
mail_empty_trash (NULL, NULL, NULL);
}
@@ -1640,23 +1640,23 @@ em_utils_folder_name_from_uri (const char *uri)
{
CamelURL *url;
char *folder_name = NULL;
-
+
if (uri == NULL || (url = camel_url_new (uri, NULL)) == NULL)
return NULL;
-
+
if (url->fragment)
folder_name = url->fragment;
else if (url->path)
folder_name = url->path + 1;
-
+
if (folder_name == NULL) {
camel_url_free (url);
return NULL;
}
-
+
folder_name = g_strdup (folder_name);
camel_url_free (url);
-
+
return folder_name;
}
@@ -1711,7 +1711,7 @@ char *em_uri_from_camel(const char *curi)
} else {
euri = g_strdup_printf("email://%s/", uid);
}
-
+
d(printf("em uri from camel '%s' -> '%s'\n", curi, euri));
camel_url_free(curl);
@@ -1788,7 +1788,7 @@ char *em_uri_to_camel(const char *euri)
service = account->source;
if (!(provider = camel_provider_get (service->url, NULL)))
return g_strdup (euri);
-
+
curl = camel_url_new(service->url, NULL);
if (provider->url_flags & CAMEL_URL_FRAGMENT_IS_PATH)
camel_url_set_fragment(curl, eurl->path[0]=='/'?eurl->path+1:eurl->path);
@@ -2030,7 +2030,7 @@ em_utils_contact_photo (struct _CamelInternetAddress *cia, gboolean local)
photo = e_contact_get (contact, E_CONTACT_LOGO);
g_list_foreach (contacts, (GFunc)g_object_unref, NULL);
g_list_free (contacts);
- }
+ }
g_object_unref (source); /* Is it? */
g_object_unref(book);
}
@@ -2048,8 +2048,8 @@ em_utils_contact_photo (struct _CamelInternetAddress *cia, gboolean local)
/* Form a mime part out of the photo */
part = camel_mime_part_new();
- camel_mime_part_set_content(part,
- (const char *) photo->data.inlined.data,
+ camel_mime_part_set_content(part,
+ (const char *) photo->data.inlined.data,
photo->data.inlined.length, "image/jpeg");
e_contact_photo_free (photo);
@@ -2059,10 +2059,10 @@ em_utils_contact_photo (struct _CamelInternetAddress *cia, gboolean local)
/**
* em_utils_snoop_type:
- * @part:
- *
+ * @part:
+ *
* Tries to snoop the mime type of a part.
- *
+ *
* Return value: NULL if unknown (more likely application/octet-stream).
**/
const char *
@@ -2070,16 +2070,16 @@ em_utils_snoop_type(CamelMimePart *part)
{
const char *filename, *name_type = NULL, *magic_type = NULL;
CamelDataWrapper *dw;
-
+
filename = camel_mime_part_get_filename (part);
if (filename) {
/* GNOME-VFS will misidentify TNEF attachments as MPEG */
if (!strcmp (filename, "winmail.dat"))
return "application/vnd.ms-tnef";
-
+
name_type = gnome_vfs_mime_type_from_name(filename);
}
-
+
dw = camel_medium_get_content_object((CamelMedium *)part);
if (!camel_data_wrapper_is_offline(dw)) {
CamelStreamMem *mem = (CamelStreamMem *)camel_stream_mem_new();
@@ -2097,7 +2097,7 @@ em_utils_snoop_type(CamelMimePart *part)
* that instead and if it returns "application/octet-stream"
* try to do better with the filename check.
*/
-
+
if (magic_type) {
if (name_type
&& (!strcmp(magic_type, "text/plain")
diff --git a/mail/em-vfolder-context.c b/mail/em-vfolder-context.c
index fda942869c..36ef03cf57 100644
--- a/mail/em-vfolder-context.c
+++ b/mail/em-vfolder-context.c
@@ -45,7 +45,7 @@ static void
em_vfolder_context_class_init(EMVFolderContextClass *klass)
{
parent_class = g_type_class_ref(RULE_TYPE_CONTEXT);
-
+
((GObjectClass *)klass)->finalize = em_vfolder_context_finalise;
((RuleContextClass *)klass)->new_element = vfolder_new_element;
}
@@ -55,7 +55,7 @@ em_vfolder_context_init(EMVFolderContext *vc)
{
rule_context_add_part_set((RuleContext *) vc, "partset", filter_part_get_type(),
rule_context_add_part, rule_context_next_part);
-
+
rule_context_add_rule_set((RuleContext *) vc, "ruleset", em_vfolder_rule_get_type(),
rule_context_add_rule, rule_context_next_rule);
@@ -66,7 +66,7 @@ GType
em_vfolder_context_get_type(void)
{
static GType type = 0;
-
+
if (!type) {
static const GTypeInfo info = {
sizeof(EMVFolderContextClass),
@@ -79,10 +79,10 @@ em_vfolder_context_get_type(void)
0, /* n_preallocs */
(GInstanceInitFunc) em_vfolder_context_init,
};
-
+
type = g_type_register_static(RULE_TYPE_CONTEXT, "EMVFolderContext", &info, 0);
}
-
+
return type;
}
@@ -90,7 +90,7 @@ em_vfolder_context_get_type(void)
* em_vfolder_context_new:
*
* Create a new EMVFolderContext object.
- *
+ *
* Return value: A new #EMVFolderContext object.
**/
EMVFolderContext *
diff --git a/mail/em-vfolder-context.h b/mail/em-vfolder-context.h
index 2330179a4c..d47730f41f 100644
--- a/mail/em-vfolder-context.h
+++ b/mail/em-vfolder-context.h
@@ -36,7 +36,7 @@ typedef struct _EMVFolderContextClass EMVFolderContextClass;
struct _EMVFolderContext {
RuleContext parent_object;
-
+
};
struct _EMVFolderContextClass {
diff --git a/mail/em-vfolder-editor.c b/mail/em-vfolder-editor.c
index 05ee9cc13e..d077170824 100644
--- a/mail/em-vfolder-editor.c
+++ b/mail/em-vfolder-editor.c
@@ -50,11 +50,11 @@ em_vfolder_editor_class_init (EMVFolderEditorClass *klass)
{
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
RuleEditorClass *re_class = (RuleEditorClass *) klass;
-
+
parent_class = g_type_class_ref (rule_editor_get_type ());
-
+
gobject_class->finalize = em_vfolder_editor_finalise;
-
+
/* override methods */
re_class->create_rule = create_rule;
}
@@ -69,7 +69,7 @@ GtkType
em_vfolder_editor_get_type (void)
{
static GtkType type = 0;
-
+
if (!type) {
static const GTypeInfo info = {
sizeof (EMVFolderEditorClass),
@@ -82,10 +82,10 @@ em_vfolder_editor_get_type (void)
0, /* n_preallocs */
(GInstanceInitFunc) em_vfolder_editor_init,
};
-
+
type = g_type_register_static (RULE_TYPE_EDITOR, "EMVFolderEditor", &info, 0);
}
-
+
return type;
}
@@ -93,7 +93,7 @@ em_vfolder_editor_get_type (void)
* em_vfolder_editor_new:
*
* Create a new EMVFolderEditor object.
- *
+ *
* Return value: A new #EMVFolderEditor object.
**/
EMVFolderEditor *
@@ -102,7 +102,7 @@ em_vfolder_editor_new (EMVFolderContext *vc)
EMVFolderEditor *ve = (EMVFolderEditor *) g_object_new (em_vfolder_editor_get_type(), NULL);
GladeXML *gui;
char *gladefile;
-
+
gladefile = g_build_filename (EVOLUTION_GLADEDIR,
"filter.glade",
NULL);
@@ -112,7 +112,7 @@ em_vfolder_editor_new (EMVFolderContext *vc)
rule_editor_construct ((RuleEditor *) ve, (RuleContext *) vc, gui, "incoming", _("Search _Folders"));
gtk_widget_hide(glade_xml_get_widget (gui, "filter_source"));
g_object_unref (gui);
-
+
return ve;
}
@@ -121,11 +121,11 @@ create_rule (RuleEditor *re)
{
FilterRule *rule = filter_rule_new ();
FilterPart *part;
-
+
/* create a rule with 1 part in it */
rule = (FilterRule *) em_vfolder_rule_new ();
part = rule_context_next_part (re->context, NULL);
filter_rule_add_part (rule, filter_part_clone (part));
-
+
return rule;
}
diff --git a/mail/em-vfolder-editor.h b/mail/em-vfolder-editor.h
index 25497f4c9c..65500ba374 100644
--- a/mail/em-vfolder-editor.h
+++ b/mail/em-vfolder-editor.h
@@ -37,7 +37,7 @@ typedef struct _EMVFolderEditorClass EMVFolderEditorClass;
struct _EMVFolderEditor {
RuleEditor parent_object;
-
+
};
struct _EMVFolderEditorClass {
diff --git a/mail/em-vfolder-rule.c b/mail/em-vfolder-rule.c
index 15b93f24b0..d3b3ecc0e8 100644
--- a/mail/em-vfolder-rule.c
+++ b/mail/em-vfolder-rule.c
@@ -68,7 +68,7 @@ GType
em_vfolder_rule_get_type(void)
{
static GType type = 0;
-
+
if (!type) {
static const GTypeInfo info = {
sizeof(EMVFolderRuleClass),
@@ -81,10 +81,10 @@ em_vfolder_rule_get_type(void)
0, /* n_preallocs */
(GInstanceInitFunc)em_vfolder_rule_init,
};
-
+
type = g_type_register_static(FILTER_TYPE_RULE, "EMVFolderRule", &info, 0);
}
-
+
return type;
}
@@ -93,11 +93,11 @@ em_vfolder_rule_class_init(EMVFolderRuleClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS(klass);
FilterRuleClass *fr_class =(FilterRuleClass *)klass;
-
+
parent_class = g_type_class_ref(FILTER_TYPE_RULE);
-
+
object_class->finalize = em_vfolder_rule_finalise;
-
+
/* override methods */
fr_class->validate = validate;
fr_class->eq = vfolder_eq;
@@ -119,10 +119,10 @@ static void
em_vfolder_rule_finalise(GObject *obj)
{
EMVFolderRule *vr =(EMVFolderRule *)obj;
-
+
g_list_foreach(vr->sources, (GFunc)g_free, NULL);
g_list_free(vr->sources);
-
+
G_OBJECT_CLASS(parent_class)->finalize(obj);
}
@@ -130,7 +130,7 @@ em_vfolder_rule_finalise(GObject *obj)
* em_vfolder_rule_new:
*
* Create a new EMVFolderRule object.
- *
+ *
* Return value: A new #EMVFolderRule object.
**/
EMVFolderRule *
@@ -144,9 +144,9 @@ em_vfolder_rule_add_source(EMVFolderRule *vr, const char *uri)
{
g_return_if_fail (EM_IS_VFOLDER_RULE(vr));
g_return_if_fail (uri);
-
+
vr->sources = g_list_append(vr->sources, g_strdup(uri));
-
+
filter_rule_emit_changed((FilterRule *)vr);
}
@@ -154,9 +154,9 @@ const char *
em_vfolder_rule_find_source(EMVFolderRule *vr, const char *uri)
{
GList *l;
-
+
g_return_val_if_fail (EM_IS_VFOLDER_RULE(vr), NULL);
-
+
/* only does a simple string or address comparison, should
probably do a decoded url comparison */
l = vr->sources;
@@ -165,7 +165,7 @@ em_vfolder_rule_find_source(EMVFolderRule *vr, const char *uri)
return l->data;
l = l->next;
}
-
+
return NULL;
}
@@ -173,9 +173,9 @@ void
em_vfolder_rule_remove_source(EMVFolderRule *vr, const char *uri)
{
char *found;
-
+
g_return_if_fail (EM_IS_VFOLDER_RULE(vr));
-
+
found =(char *)em_vfolder_rule_find_source(vr, uri);
if (found) {
vr->sources = g_list_remove(vr->sources, found);
@@ -188,7 +188,7 @@ const char *
em_vfolder_rule_next_source(EMVFolderRule *vr, const char *last)
{
GList *node;
-
+
if (last == NULL) {
node = vr->sources;
} else {
@@ -198,10 +198,10 @@ em_vfolder_rule_next_source(EMVFolderRule *vr, const char *last)
else
node = g_list_next(node);
}
-
+
if (node)
return (const char *)node->data;
-
+
return NULL;
}
@@ -209,13 +209,13 @@ static int
validate(FilterRule *fr)
{
g_return_val_if_fail(fr != NULL, 0);
-
+
if (!fr->name || !*fr->name) {
/* FIXME: set a parent window? */
e_error_run(NULL, "mail:no-name-vfolder", NULL);
return 0;
}
-
+
/* We have to have at least one source set in the "specific" case.
Do not translate this string! */
if (((EMVFolderRule *)fr)->with == EM_VFOLDER_RULE_WITH_SPECIFIC && ((EMVFolderRule *)fr)->sources == NULL) {
@@ -223,7 +223,7 @@ validate(FilterRule *fr)
e_error_run(NULL, "mail:vfolder-no-source", NULL);
return 0;
}
-
+
return FILTER_RULE_CLASS(parent_class)->validate(fr);
}
@@ -231,15 +231,15 @@ static int
list_eq(GList *al, GList *bl)
{
int truth = TRUE;
-
+
while (truth && al && bl) {
char *a = al->data, *b = bl->data;
-
+
truth = strcmp(a, b)== 0;
al = al->next;
bl = bl->next;
}
-
+
return truth && al == NULL && bl == NULL;
}
@@ -271,7 +271,7 @@ xml_encode(FilterRule *fr)
xmlAddChild(set, work);
l = l->next;
}
-
+
return node;
}
@@ -297,11 +297,11 @@ xml_decode(FilterRule *fr, xmlNodePtr node, struct _RuleContext *f)
int result;
EMVFolderRule *vr =(EMVFolderRule *)fr;
char *tmp;
-
+
result = FILTER_RULE_CLASS(parent_class)->xml_decode(fr, node, f);
if (result != 0)
return result;
-
+
/* handle old format file, vfolder source is in filterrule */
if (strcmp(fr->source, "incoming")!= 0) {
set_with(vr, fr->source);
@@ -339,20 +339,20 @@ rule_copy(FilterRule *dest, FilterRule *src)
{
EMVFolderRule *vdest, *vsrc;
GList *node;
-
+
vdest =(EMVFolderRule *)dest;
vsrc =(EMVFolderRule *)src;
-
+
if (vdest->sources) {
g_list_foreach(vdest->sources, (GFunc)g_free, NULL);
g_list_free(vdest->sources);
vdest->sources = NULL;
}
-
+
node = vsrc->sources;
while (node) {
char *uri = node->data;
-
+
vdest->sources = g_list_append(vdest->sources, g_strdup(uri));
node = node->next;
}
@@ -402,13 +402,13 @@ select_source(GtkWidget *list, struct _source_data *data)
GtkTreeViewColumn *column;
GtkTreePath *path;
GtkTreeIter iter;
-
+
gtk_tree_view_get_cursor(data->list, &path, &column);
gtk_tree_model_get_iter(GTK_TREE_MODEL(data->model), &iter, path);
gtk_tree_path_free(path);
-
+
gtk_tree_model_get(GTK_TREE_MODEL(data->model), &iter, 0, &data->current, -1);
-
+
set_sensitive(data);
}
@@ -417,7 +417,7 @@ select_source_with_changed(GtkWidget *widget, struct _source_data *data)
{
em_vfolder_rule_with_t with = 0;
GSList *group = NULL;
- gint i = 0;
+ gint i = 0;
if ( !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)) )
return;
@@ -425,7 +425,7 @@ select_source_with_changed(GtkWidget *widget, struct _source_data *data)
group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (widget));
for (i=0; i< g_slist_length(group); i++) {
- if ( g_slist_nth_data (group, with = i) == widget )
+ if ( g_slist_nth_data (group, with = i) == widget )
break;
}
@@ -481,11 +481,11 @@ vfr_folder_response(GtkWidget *dialog, gint button, struct _source_data *data)
char *urinice, *euri;
GtkTreeSelection *selection;
GtkTreeIter iter;
-
+
euri = em_uri_from_camel(uri);
data->vr->sources = g_list_append(data->vr->sources, euri);
-
+
gtk_list_store_append(data->model, &iter);
urinice = format_source(euri);
gtk_list_store_set(data->model, &iter, 0, urinice, 1, euri, -1);
@@ -505,10 +505,10 @@ source_add(GtkWidget *widget, struct _source_data *data)
{
EMFolderTree *emft;
GtkWidget *dialog;
-
+
emft =(EMFolderTree *)em_folder_tree_new_with_model(mail_component_peek_tree_model(mail_component_peek()));
em_folder_tree_set_excluded(emft, EMFT_EXCLUDE_NOSELECT);
-
+
dialog = em_folder_selector_new(emft, EM_FOLDER_SELECTOR_CAN_CREATE, _("Select Folder"), NULL, _("_Add"));
gtk_window_set_transient_for((GtkWindow *)dialog, (GtkWindow *)gtk_widget_get_toplevel(widget));
gtk_window_set_modal((GtkWindow *)dialog, TRUE);
@@ -525,44 +525,44 @@ source_remove(GtkWidget *widget, struct _source_data *data)
GtkTreeIter iter;
int index = 0;
int n;
-
+
selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->list));
-
+
source = NULL;
while ((source = em_vfolder_rule_next_source(data->vr, source))) {
path = gtk_tree_path_new();
gtk_tree_path_append_index(path, index);
-
+
if (gtk_tree_selection_path_is_selected(selection, path)) {
gtk_tree_model_get_iter(GTK_TREE_MODEL(data->model), &iter, path);
-
+
em_vfolder_rule_remove_source(data->vr, source);
gtk_list_store_remove(data->model, &iter);
gtk_tree_path_free(path);
-
+
/* now select the next rule */
n = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(data->model), NULL);
index = index >= n ? n - 1 : index;
-
+
if (index >= 0) {
path = gtk_tree_path_new();
gtk_tree_path_append_index(path, index);
gtk_tree_model_get_iter(GTK_TREE_MODEL(data->model), &iter, path);
gtk_tree_path_free(path);
-
+
gtk_tree_selection_select_iter(selection, &iter);
gtk_tree_model_get(GTK_TREE_MODEL(data->model), &iter, 0, &data->current, -1);
} else {
data->current = NULL;
}
-
+
break;
}
-
+
index++;
gtk_tree_path_free(path);
}
-
+
set_sensitive(data);
}
@@ -577,32 +577,32 @@ em_vfolder_editor_sourcelist_new(char *widget_name, char *string1, char *string2
GtkTreeSelection *selection;
GtkCellRenderer *renderer;
GtkListStore *model;
-
+
scrolled = gtk_scrolled_window_new(NULL, NULL);
gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled), GTK_SHADOW_IN);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled),
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
-
+
model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_POINTER);
table = gtk_tree_view_new_with_model((GtkTreeModel *)model);
gtk_tree_view_set_headers_visible((GtkTreeView *)table, FALSE);
-
+
renderer = gtk_cell_renderer_text_new();
gtk_tree_view_insert_column_with_attributes((GtkTreeView *)table, -1,
_("Search Folder source"), renderer,
"text", 0, NULL);
-
+
selection = gtk_tree_view_get_selection((GtkTreeView *)table);
gtk_tree_selection_set_mode(selection, GTK_SELECTION_SINGLE);
-
+
gtk_container_add(GTK_CONTAINER(scrolled), table);
-
+
g_object_set_data((GObject *)scrolled, "table", table);
g_object_set_data((GObject *)scrolled, "model", model);
-
+
gtk_widget_show(scrolled);
gtk_widget_show(table);
-
+
g_object_unref (model);
return scrolled;
@@ -620,13 +620,13 @@ get_widget(FilterRule *fr, RuleContext *rc)
GladeXML *gui;
int i;
char *gladefile;
-
+
widget = FILTER_RULE_CLASS(parent_class)->get_widget(fr, rc);
-
+
data = g_malloc0(sizeof(*data));
data->rc = rc;
data->vr = vr;
-
+
gladefile = g_build_filename (EVOLUTION_GLADEDIR,
"mail-dialogs.glade",
NULL);
@@ -634,18 +634,18 @@ get_widget(FilterRule *fr, RuleContext *rc)
g_free (gladefile);
frame = glade_xml_get_widget(gui, "vfolder_source_frame");
-
+
g_object_set_data_full((GObject *)frame, "data", data, g_free);
-
+
for(i = 0; i < BUTTON_LAST; i++) {
data->buttons[i] =(GtkButton *)glade_xml_get_widget(gui, edit_buttons[i].name);
g_signal_connect(data->buttons[i], "clicked", edit_buttons[i].func, data);
}
-
+
list = glade_xml_get_widget(gui, "source_list");
data->list =(GtkTreeView *)g_object_get_data((GObject *)list, "table");
data->model =(GtkListStore *)g_object_get_data((GObject *)list, "model");
-
+
source = NULL;
while ((source = em_vfolder_rule_next_source(vr, source))) {
char *nice = format_source(source);
@@ -654,9 +654,9 @@ get_widget(FilterRule *fr, RuleContext *rc)
gtk_list_store_set(data->model, &iter, 0, nice, 1, source, -1);
g_free(nice);
}
-
+
g_signal_connect(data->list, "cursor-changed", G_CALLBACK(select_source), data);
-
+
rb = (GtkRadioButton *)glade_xml_get_widget (gui, "local_rb");
g_signal_connect (GTK_WIDGET(rb), "toggled", G_CALLBACK(select_source_with_changed), data);
@@ -674,12 +674,12 @@ get_widget(FilterRule *fr, RuleContext *rc)
rb = g_slist_nth_data(gtk_radio_button_get_group (rb), vr->with);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (rb), TRUE);
gtk_signal_emit_by_name (GTK_OBJECT (rb), "toggled");
-
+
set_sensitive(data);
-
+
g_object_unref(gui);
gtk_box_pack_start(GTK_BOX(widget), frame, TRUE, TRUE, 3);
-
+
return widget;
}
diff --git a/mail/em-vfolder-rule.h b/mail/em-vfolder-rule.h
index 67721605ce..e9e7f6d537 100644
--- a/mail/em-vfolder-rule.h
+++ b/mail/em-vfolder-rule.h
@@ -46,7 +46,7 @@ typedef enum _em_vfolder_rule_with_t em_vfolder_rule_with_t;
struct _EMVFolderRule {
FilterRule rule;
-
+
em_vfolder_rule_with_t with;
GList *sources; /* uri's of the source folders */
};
diff --git a/mail/em-vfs-stream.c b/mail/em-vfs-stream.c
index 6b528772f0..290ea86a4d 100644
--- a/mail/em-vfs-stream.c
+++ b/mail/em-vfs-stream.c
@@ -42,7 +42,7 @@
#define LOG_STREAM
-#define d(x)
+#define d(x)
#define EMVS_CLASS(x) ((EMVFSStreamClass *)(((CamelObject *)(x))->klass))
@@ -293,7 +293,7 @@ CamelType
em_vfs_stream_get_type (void)
{
static CamelType type = CAMEL_INVALID_TYPE;
-
+
if (type == CAMEL_INVALID_TYPE) {
parent_class = (CamelStreamClass *)camel_seekable_stream_get_type();
type = camel_type_register ((CamelType)parent_class,
@@ -305,17 +305,17 @@ em_vfs_stream_get_type (void)
(CamelObjectInitFunc) em_vfs_stream_init,
(CamelObjectFinalizeFunc) em_vfs_stream_finalize);
}
-
+
return type;
}
/**
* emvfs_stream_new:
- * @handle:
- *
+ * @handle:
+ *
* Create a new camel stream from a GnomeVFS handle. The camel stream
* will own the handle from now on.
- *
+ *
* Return value: A CamelStream that will talk to @handle. This function cannot fail.
**/
EMVFSStream *
diff --git a/mail/importers/elm-importer.c b/mail/importers/elm-importer.c
index 35fd28c5b5..1fafedc0a2 100644
--- a/mail/importers/elm-importer.c
+++ b/mail/importers/elm-importer.c
@@ -1,20 +1,20 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/* elm-importer.c
- *
+ *
* Authors: Iain Holmes <iain@ximian.com>
* Michael Zucchi <notzed@ximian.com>
*
* Copyright 2001 Ximian, Inc. (www.ximian.com)
*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
* License as published by the Free Software Foundation.
*
* 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
@@ -303,7 +303,7 @@ mail_importer_elm_import(EImport *ei, EImportTarget *target)
m->status = camel_operation_new(elm_status, m);
id = m->msg.seq;
-
+
e_thread_put(mail_thread_queued, (EMsg *)m);
return id;
diff --git a/mail/importers/evolution-mbox-importer.c b/mail/importers/evolution-mbox-importer.c
index b12ecca3a2..1ad64b91e3 100644
--- a/mail/importers/evolution-mbox-importer.c
+++ b/mail/importers/evolution-mbox-importer.c
@@ -77,7 +77,7 @@ static GtkWidget *
mbox_getwidget(EImport *ei, EImportTarget *target, EImportImporter *im)
{
GtkWidget *hbox, *w;
-
+
hbox = gtk_hbox_new(FALSE, 0);
w = gtk_label_new(_("Destination folder:"));
@@ -124,7 +124,7 @@ mbox_supported(EImport *ei, EImportTarget *target, EImportImporter *im)
close(fd);
}
- return ret;
+ return ret;
}
static void
diff --git a/mail/importers/mail-importer.c b/mail/importers/mail-importer.c
index 4e36ebd7fa..5905080735 100644
--- a/mail/importers/mail-importer.c
+++ b/mail/importers/mail-importer.c
@@ -56,10 +56,10 @@
/**
* mail_importer_make_local_folder:
- * @folderpath:
- *
+ * @folderpath:
+ *
* Check a local folder exists at path @folderpath, and if not, create it.
- *
+ *
* Return value: The physical uri of the folder, or NULL if the folder did
* not exist and could not be created.
**/
@@ -86,12 +86,12 @@ mail_importer_add_line (MailImporter *importer,
CamelMimeMessage *msg;
CamelMessageInfo *info;
CamelException *ex;
-
+
if (importer->mstream == NULL)
importer->mstream = CAMEL_STREAM_MEM (camel_stream_mem_new ());
camel_stream_write (CAMEL_STREAM (importer->mstream), str, strlen (str));
-
+
if (finished == FALSE)
return;
@@ -102,7 +102,7 @@ mail_importer_add_line (MailImporter *importer,
msg = camel_mime_message_new ();
camel_data_wrapper_construct_from_stream (CAMEL_DATA_WRAPPER (msg),
CAMEL_STREAM (importer->mstream));
-
+
camel_object_unref (importer->mstream);
importer->mstream = NULL;
@@ -133,7 +133,7 @@ struct _BonoboObject *mail_importer_factory_cb(struct _BonoboGenericFactory *fac
struct _import_mbox_msg {
struct _mail_msg msg;
-
+
char *path;
char *uri;
CamelOperation *cancel;
@@ -298,7 +298,7 @@ static void
import_mbox_free (struct _mail_msg *mm)
{
struct _import_mbox_msg *m = (struct _import_mbox_msg *)mm;
-
+
if (m->cancel)
camel_operation_unref(m->cancel);
g_free(m->uri);
@@ -436,11 +436,11 @@ import_folders_rec(struct _import_folders_data *m, const char *filepath, const c
/**
* mail_importer_import_folders_sync:
- * @filepath:
- * @:
- * @flags:
- * @cancel:
- *
+ * @filepath:
+ * @:
+ * @flags:
+ * @cancel:
+ *
* import from a base path @filepath into the root local folder tree,
* scanning all sub-folders.
*
diff --git a/mail/importers/pine-importer.c b/mail/importers/pine-importer.c
index 4487d51f0e..97f3349e66 100644
--- a/mail/importers/pine-importer.c
+++ b/mail/importers/pine-importer.c
@@ -1,22 +1,22 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/* pine-importer.c
- *
- * Authors:
+ *
+ * Authors:
* Iain Holmes <iain@ximian.com>
* Michael Zucchi <notzed@ximian.com>
*
* Copyright 2001 Ximian, Inc. (www.ximian.com)
* Copyright 2004 Novell, Inc.
*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
* License as published by the Free Software Foundation.
*
* 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
@@ -177,7 +177,7 @@ import_contacts(void)
printf("importing pine addressbook\n");
if (!e_book_get_addressbooks(&source_list, NULL))
- return;
+ return;
name = g_build_filename(g_get_home_dir(), ".addressbook", NULL);
fp = fopen(name, "r");
@@ -192,7 +192,7 @@ import_contacts(void)
g_warning ("Could not create EBook.");
return;
}
-
+
e_book_open(book, TRUE, NULL);
g_object_unref(primary);
g_object_unref(source_list);
@@ -349,7 +349,7 @@ mail_importer_pine_import(EImport *ei, EImportTarget *target)
m->status = camel_operation_new(pine_status, m);
id = m->msg.seq;
-
+
e_thread_put(mail_thread_queued, (EMsg *)m);
return id;
diff --git a/mail/mail-autofilter.c b/mail/mail-autofilter.c
index ce43d1ac76..675dbcc9bc 100644
--- a/mail/mail-autofilter.c
+++ b/mail/mail-autofilter.c
@@ -66,7 +66,7 @@ rule_match_recipients (RuleContext *context, FilterRule *rule, CamelInternetAddr
int i;
const char *real, *addr;
char *namestr;
-
+
/* address types etc should handle multiple values */
for (i = 0; camel_internet_address_get (iaddr, i, &real, &addr); i++) {
part = rule_context_create_part (context, "to");
@@ -75,7 +75,7 @@ rule_match_recipients (RuleContext *context, FilterRule *rule, CamelInternetAddr
filter_option_set_current ((FilterOption *)element, "contains");
element = filter_part_find_element (part, "recipient");
filter_input_set_value ((FilterInput *)element, addr);
-
+
namestr = g_strdup_printf (_("Mail to %s"), real && real[0] ? real : addr);
filter_rule_set_name (rule, namestr);
g_free (namestr);
@@ -88,9 +88,9 @@ static const char *
strip_re (const char *subject)
{
const unsigned char *s, *p;
-
+
s = (unsigned char *) subject;
-
+
while (*s) {
while (isspace (*s))
s++;
@@ -108,7 +108,7 @@ strip_re (const char *subject)
} else
break;
}
-
+
return (char *) s;
}
@@ -135,7 +135,7 @@ rule_add_subject (RuleContext *context, FilterRule *rule, const char *text)
{
FilterPart *part;
FilterElement *element;
-
+
/* dont match on empty strings ever */
if (*text == 0)
return;
@@ -152,7 +152,7 @@ rule_add_sender (RuleContext *context, FilterRule *rule, const char *text)
{
FilterPart *part;
FilterElement *element;
-
+
/* dont match on empty strings ever */
if (*text == 0)
return;
@@ -172,12 +172,12 @@ rule_match_subject (RuleContext *context, FilterRule *rule, const char *subject)
const char *s;
const char *s1, *s2;
char *tmp;
-
+
s = strip_re (subject);
/* dont match on empty subject */
if (*s == 0)
return;
-
+
/* [blahblah] is probably a mailing list, match on it separately */
s1 = strchr (s, '[');
s2 = strchr (s, ']');
@@ -200,7 +200,7 @@ rule_match_subject (RuleContext *context, FilterRule *rule, const char *subject)
rule_add_subject (context, rule, tmp);
s = s1+1;
}
-
+
/* just lump the rest together */
tmp = g_alloca (strlen (s) + 1);
strcpy (tmp, s);
@@ -213,16 +213,16 @@ rule_match_mlist(RuleContext *context, FilterRule *rule, const char *mlist)
{
FilterPart *part;
FilterElement *element;
-
+
if (mlist[0] == 0)
return;
-
+
part = rule_context_create_part(context, "mlist");
filter_rule_add_part(rule, part);
-
+
element = filter_part_find_element(part, "mlist-type");
filter_option_set_current((FilterOption *)element, "is");
-
+
element = filter_part_find_element (part, "mlist");
filter_input_set_value((FilterInput *)element, mlist);
}
@@ -235,7 +235,7 @@ rule_from_address (FilterRule *rule, RuleContext *context, CamelInternetAddress*
if (flags & AUTO_FROM) {
const char *name, *address;
char *namestr;
-
+
camel_internet_address_get (addr, 0, &name, &address);
rule_add_sender (context, rule, address);
if (name == NULL || name[0] == '\0')
@@ -254,15 +254,15 @@ static void
rule_from_message (FilterRule *rule, RuleContext *context, CamelMimeMessage *msg, int flags)
{
CamelInternetAddress *addr;
-
+
rule->grouping = FILTER_GROUP_ANY;
-
+
if (flags & AUTO_SUBJECT) {
const char *subject = msg->subject ? msg->subject : "";
char *namestr;
-
+
rule_match_subject (context, rule, subject);
-
+
namestr = g_strdup_printf (_("Subject is %s"), strip_re (subject));
filter_rule_set_name (rule, namestr);
g_free (namestr);
@@ -273,7 +273,7 @@ rule_from_message (FilterRule *rule, RuleContext *context, CamelMimeMessage *msg
int i;
const char *name, *address;
char *namestr;
-
+
from = camel_mime_message_get_from (msg);
for (i = 0; from && camel_internet_address_get (from, i, &name, &address); i++) {
rule_add_sender(context, rule, address);
@@ -294,7 +294,7 @@ rule_from_message (FilterRule *rule, RuleContext *context, CamelMimeMessage *msg
}
if (flags & AUTO_MLIST) {
char *name, *mlist;
-
+
mlist = camel_header_raw_check_mailing_list (&((CamelMimePart *)msg)->headers);
if (mlist) {
rule_match_mlist(context, rule, mlist);
@@ -339,13 +339,13 @@ filter_rule_from_message (EMFilterContext *context, CamelMimeMessage *msg, int f
{
EMFilterRule *rule;
FilterPart *part;
-
+
rule = em_filter_rule_new ();
rule_from_message ((FilterRule *)rule, (RuleContext *)context, msg, flags);
-
+
part = em_filter_context_next_action (context, NULL);
em_filter_rule_add_action (rule, filter_part_clone (part));
-
+
return (FilterRule *)rule;
}
@@ -355,9 +355,9 @@ filter_gui_add_from_message (CamelMimeMessage *msg, const char *source, int flag
EMFilterContext *fc;
char *user, *system;
FilterRule *rule;
-
+
g_return_if_fail (msg != NULL);
-
+
fc = em_filter_context_new ();
user = g_strdup_printf ("%s/mail/filters.xml",
mail_component_peek_base_directory (mail_component_peek ()));
@@ -366,9 +366,9 @@ filter_gui_add_from_message (CamelMimeMessage *msg, const char *source, int flag
g_free (system);
rule = filter_rule_from_message (fc, msg, flags);
-
+
filter_rule_set_source (rule, source);
-
+
rule_context_add_rule_gui ((RuleContext *)fc, rule, _("Add Filter Rule"), user);
g_free (user);
g_object_unref (fc);
@@ -390,7 +390,7 @@ mail_filter_rename_uri(CamelStore *store, const char *olduri, const char *newuri
system = g_build_filename (EVOLUTION_PRIVDATADIR, "filtertypes.xml", NULL);
rule_context_load ((RuleContext *)fc, system, user);
g_free (system);
-
+
changed = rule_context_rename_uri((RuleContext *)fc, eolduri, enewuri, g_str_equal);
if (changed) {
d(printf("Folder rename '%s' -> '%s' changed filters, resaving\n", olduri, newuri));
@@ -398,7 +398,7 @@ mail_filter_rename_uri(CamelStore *store, const char *olduri, const char *newuri
g_warning("Could not write out changed filter rules\n");
rule_context_free_uri_list((RuleContext *)fc, changed);
}
-
+
g_free(user);
g_object_unref(fc);
@@ -421,13 +421,13 @@ mail_filter_delete_uri(CamelStore *store, const char *uri)
system = g_build_filename (EVOLUTION_PRIVDATADIR, "filtertypes.xml", NULL);
rule_context_load ((RuleContext *)fc, system, user);
g_free (system);
-
+
deleted = rule_context_delete_uri ((RuleContext *) fc, euri, g_str_equal);
if (deleted) {
GtkWidget *dialog;
GString *s;
GList *l;
-
+
s = g_string_new("");
l = deleted;
while (l) {
@@ -439,13 +439,13 @@ mail_filter_delete_uri(CamelStore *store, const char *uri)
g_signal_connect_swapped (dialog, "response", G_CALLBACK (gtk_widget_destroy), dialog);
g_string_free(s, TRUE);
gtk_widget_show(dialog);
-
+
d(printf("Folder delete/rename '%s' changed filters, resaving\n", euri));
if (rule_context_save ((RuleContext *) fc, user) == -1)
g_warning ("Could not write out changed filter rules\n");
rule_context_free_uri_list ((RuleContext *) fc, deleted);
}
-
+
g_free(user);
g_object_unref(fc);
g_free(euri);
diff --git a/mail/mail-component-factory.c b/mail/mail-component-factory.c
index 9c38cfd473..31373e56da 100644
--- a/mail/mail-component-factory.c
+++ b/mail/mail-component-factory.c
@@ -100,12 +100,12 @@ make_factory (PortableServer_POA poa, const char *iid, gpointer impl_ptr, CORBA_
e_plugin_hook_register_type(em_popup_hook_get_type());
e_plugin_hook_register_type(em_menu_hook_get_type());
e_plugin_hook_register_type(em_config_hook_get_type());
-
+
em_format_hook_register_type(em_format_get_type());
em_format_hook_register_type(em_format_html_get_type());
em_format_hook_register_type(em_format_html_display_get_type());
em_junk_hook_register_type(emj_get_type());
-
+
e_plugin_hook_register_type(em_format_hook_get_type());
e_plugin_hook_register_type(em_event_hook_get_type());
e_plugin_hook_register_type(em_junk_hook_get_type());
diff --git a/mail/mail-component.c b/mail/mail-component.c
index 9237a1793d..9c2fd80524 100644
--- a/mail/mail-component.c
+++ b/mail/mail-component.c
@@ -88,7 +88,7 @@
#include <bonobo/bonobo-control.h>
#include <bonobo/bonobo-widget.h>
-#define d(x)
+#define d(x)
static void create_local_item_cb(EUserCreatableItemsHandler *handler, const char *item_type_name, void *data);
static void view_changed_timeout_remove (EComponentView *component_view);
@@ -101,7 +101,7 @@ static BonoboObjectClass *parent_class = NULL;
#define OFFLINE 0
#define ONLINE 1
-struct _store_info {
+struct _store_info {
CamelStore *store;
char *name;
@@ -126,18 +126,18 @@ struct _MailComponentPrivate {
int quit_expunge; /* expunge on quit this time around? */
char *base_directory;
-
+
EMFolderTreeModel *model;
EActivityHandler *activity_handler;
-
+
MailAsyncEvent *async_event;
GHashTable *store_hash; /* stores store_info objects by store */
-
+
RuleContext *search_context;
-
+
char *context_path; /* current path for right-click menu */
-
+
CamelStore *local_store;
EComponentView *component_view;
@@ -227,7 +227,7 @@ static void
mc_add_store(MailComponent *component, CamelStore *store, const char *name, void (*done)(CamelStore *store, CamelFolderInfo *info, void *data))
{
struct _store_info *si;
-
+
MAIL_COMPONENT_DEFAULT(component);
si = store_info_new(store, name);
@@ -320,13 +320,13 @@ load_accounts (MailComponent *component, EAccountList *accounts)
* see if this belongs in the shell's folder list. If so, add
* it.
*/
-
+
iter = e_list_get_iterator ((EList *) accounts);
while (e_iterator_is_valid (iter)) {
EAccountService *service;
EAccount *account;
const char *name;
-
+
account = (EAccount *) e_iterator_get (iter);
service = account->source;
name = account->name;
@@ -338,10 +338,10 @@ load_accounts (MailComponent *component, EAccountList *accounts)
&& service->url[0]
&& strncmp(service->url, "mbox:", 5) != 0)
mail_component_load_store_by_uri (component, service->url, name);
-
+
e_iterator_next (iter);
}
-
+
g_object_unref (iter);
}
@@ -353,7 +353,7 @@ setup_search_context (MailComponent *component)
if (priv->search_context == NULL) {
char *user = g_build_filename(component->priv->base_directory, "mail/searches.xml", NULL);
char *system = g_build_filename (EVOLUTION_PRIVDATADIR, "searchtypes.xml", NULL);
-
+
priv->search_context = (RuleContext *)em_search_context_new ();
g_object_set_data_full (G_OBJECT (priv->search_context), "user", user, g_free);
g_object_set_data_full (G_OBJECT (priv->search_context), "system", system, g_free);
@@ -379,14 +379,14 @@ static void
folder_selected_cb (EMFolderTree *emft, const char *path, const char *uri, guint32 flags, EMFolderView *view)
{
EMFolderTreeModel *model;
-
+
if ((flags & CAMEL_FOLDER_NOSELECT) || !path) {
em_folder_view_set_folder (view, NULL, NULL);
} else {
model = em_folder_tree_get_model (emft);
em_folder_tree_model_set_selected (model, uri);
em_folder_tree_model_save_state (model);
-
+
em_folder_view_set_folder_uri (view, uri);
}
}
@@ -407,17 +407,17 @@ view_control_activate_cb (BonoboControl *control, gboolean activate, EMFolderVie
uic = bonobo_control_get_ui_component (control);
g_return_if_fail (uic != NULL);
-
+
if (activate) {
Bonobo_UIContainer container;
-
+
container = bonobo_control_get_remote_ui_container (control, NULL);
bonobo_ui_component_set_container (uic, container, NULL);
bonobo_object_release_unref (container, NULL);
-
+
g_return_if_fail (container == bonobo_ui_component_get_container(uic));
g_return_if_fail (container != CORBA_OBJECT_NIL);
-
+
em_folder_view_activate (view, uic, activate);
e_user_creatable_items_handler_activate(g_object_get_data((GObject *)view, "e-creatable-items-handler"), uic);
} else {
@@ -452,7 +452,7 @@ impl_dispose (GObject *object)
g_object_unref (priv->search_context);
priv->search_context = NULL;
}
-
+
if (priv->local_store != NULL) {
camel_object_unref (priv->local_store);
priv->local_store = NULL;
@@ -469,20 +469,20 @@ impl_finalize (GObject *object)
MailComponentPrivate *priv = MAIL_COMPONENT (object)->priv;
g_free (priv->base_directory);
-
+
mail_async_event_destroy (priv->async_event);
-
+
g_hash_table_destroy (priv->store_hash);
-
+
if (mail_async_event_destroy (priv->async_event) == -1) {
g_warning("Cannot destroy async event: would deadlock");
g_warning(" system may be unstable at exit");
}
-
+
g_free (priv->context_path);
g_mutex_free(priv->lock);
g_free (priv);
-
+
(* G_OBJECT_CLASS (parent_class)->finalize) (object);
}
@@ -490,7 +490,7 @@ static void
view_on_url (GObject *emitter, const char *url, const char *nice_url, MailComponent *mail_component)
{
MailComponentPrivate *priv = mail_component->priv;
-
+
e_activity_handler_set_message (priv->activity_handler, nice_url);
}
@@ -576,7 +576,7 @@ view_changed_timeout_remove (EComponentView *component_view)
if (v) {
g_source_remove(GPOINTER_TO_INT(v));
g_object_set_data((GObject *)component_view, "view-changed-timeout", NULL);
-
+
el = g_object_get_data((GObject *)component_view, "info-label");
emfv = g_object_get_data((GObject *)el, "folderview");
g_object_unref(el);
@@ -587,7 +587,7 @@ view_changed_timeout_remove (EComponentView *component_view)
static int
view_changed_timeout(void *d)
{
- EComponentView *component_view = d;
+ EComponentView *component_view = d;
EInfoLabel *el = g_object_get_data((GObject *)component_view, "info-label");
EMFolderView *emfv = g_object_get_data((GObject *)el, "folderview");
@@ -609,17 +609,17 @@ view_changed_cb(EMFolderView *emfv, EComponentView *component_view)
EInfoLabel *el = g_object_get_data((GObject *)component_view, "info-label");
v = g_object_get_data((GObject *)component_view, "view-changed-timeout");
-
+
if (mc->priv->quit_state != -1) {
if (v) {
- g_source_remove(GPOINTER_TO_INT(v));
+ g_source_remove(GPOINTER_TO_INT(v));
g_object_set_data((GObject *)component_view, "view-changed-timeout", NULL);
g_object_unref (emfv);
g_object_unref (el);
}
return;
-
+
}
/* This can get called 3 times every cursor move, so
we don't need to/want to run it immediately */
@@ -635,13 +635,13 @@ view_changed_cb(EMFolderView *emfv, EComponentView *component_view)
g_object_set_data((GObject *)component_view, "view-changed-timeout", GINT_TO_POINTER(g_timeout_add(250, view_changed_timeout, component_view)));
}
-static void
+static void
disable_folder_tree (gpointer *emfb, GtkWidget *widget)
{
gtk_widget_set_sensitive (widget, FALSE);
}
-static void
+static void
enable_folder_tree (GtkWidget *emfb, GtkWidget *emft)
{
EMFolderView *emfv = (EMFolderView *) emfb;
@@ -688,16 +688,16 @@ impl_createView (PortableServer_Servant servant,
GtkWidget *view_widget;
GtkWidget *statusbar_widget;
char *uri;
-
+
mail_session_set_interactive(TRUE);
mc_startup(mail_component);
view_widget = em_folder_browser_new ();
-
+
tree_widget = (GtkWidget *) em_folder_tree_new_with_model (priv->model);
em_folder_tree_set_excluded ((EMFolderTree *) tree_widget, 0);
em_folder_tree_enable_drag_and_drop ((EMFolderTree *) tree_widget);
-
+
if ((uri = em_folder_tree_model_get_selected (priv->model))) {
gboolean expanded;
@@ -710,12 +710,12 @@ impl_createView (PortableServer_Servant servant,
g_free (uri);
}
-
+
em_format_set_session ((EMFormat *) ((EMFolderView *) view_widget)->preview, session);
-
+
g_signal_connect (view_widget, "on-url", G_CALLBACK (view_on_url), mail_component);
em_folder_view_set_statusbar ((EMFolderView*)view_widget, FALSE);
-
+
statusbar_widget = e_task_bar_new ();
e_activity_handler_attach_task_bar (priv->activity_handler, E_TASK_BAR (statusbar_widget));
@@ -748,7 +748,7 @@ impl_createView (PortableServer_Servant servant,
g_signal_connect(((EMFolderBrowser *)view_widget), "account_search_activated", G_CALLBACK (disable_folder_tree), tree_widget);
g_signal_connect(view_widget, "changed", G_CALLBACK(view_changed_cb), component_view);
g_signal_connect(view_widget, "loaded", G_CALLBACK(view_changed_cb), component_view);
-
+
g_object_set_data((GObject*)info, "folderview", view_widget);
g_object_set_data((GObject*)view_widget, "foldertree", tree_widget);
@@ -766,7 +766,7 @@ impl_requestQuit(PortableServer_Servant servant, CORBA_Environment *ev)
if (!e_msg_composer_request_close_all())
return FALSE;
-
+
folder = mc_default_folders[MAIL_COMPONENT_FOLDER_OUTBOX].folder;
if (folder != NULL
&& camel_session_is_online(session)
@@ -802,7 +802,7 @@ mc_quit_delete (CamelStore *store, struct _store_info *si, MailComponent *mc)
GPtrArray *uids;
int i;
- uids = camel_folder_get_uids (folder);
+ uids = camel_folder_get_uids (folder);
camel_folder_freeze(folder);
for (i=0;i<uids->len;i++)
camel_folder_set_message_flags(folder, uids->pdata[i], CAMEL_MESSAGE_DELETED|CAMEL_MESSAGE_SEEN, CAMEL_MESSAGE_DELETED|CAMEL_MESSAGE_SEEN);
@@ -818,13 +818,13 @@ impl_quit(PortableServer_Servant servant, CORBA_Environment *ev)
if (mc->priv->quit_state == -1)
mc->priv->quit_state = MC_QUIT_START;
-
+
mail_config_prune_proxies ();
switch (mc->priv->quit_state) {
case MC_QUIT_START: {
int now = time(NULL)/60/60/24, days;
gboolean empty_junk;
-
+
GConfClient *gconf = mail_config_get_gconf_client();
mail_vfolder_shutdown();
@@ -841,7 +841,7 @@ impl_quit(PortableServer_Servant servant, CORBA_Environment *ev)
g_hash_table_foreach(mc->priv->store_hash, (GHFunc)mc_quit_delete, mc);
gconf_client_set_int(gconf, "/apps/evolution/mail/junk/empty_date", now, NULL);
}
-
+
g_hash_table_foreach(mc->priv->store_hash, (GHFunc)mc_quit_sync, mc);
if (mc->priv->quit_expunge)
@@ -902,7 +902,7 @@ create_item(const char *type, EMFolderTreeModel *model, const char *uri, gpointe
if (strcmp(type, "message") == 0) {
if (!em_utils_check_user_can_send_mail(NULL))
return 0;
-
+
em_utils_compose_new_message(uri);
} else if (strcmp(type, "folder") == 0) {
em_folder_utils_create_folder(NULL, tree);
@@ -917,7 +917,7 @@ create_local_item_cb(EUserCreatableItemsHandler *handler, const char *item_type_
{
EMFolderTree *tree = data;
char *uri = em_folder_tree_get_selected_uri(tree);
-
+
create_item(item_type_name, em_folder_tree_get_model(tree), uri, (gpointer) tree);
g_free(uri);
}
@@ -961,13 +961,13 @@ handleuri_got_folder(char *uri, CamelFolder *folder, void *data)
const char* uid;
uid = camel_url_get_param(url, "uid");
- if (uid == NULL)
+ if (uid == NULL)
g_warning("Could not forward the message. UID is NULL.");
else {
uids = g_ptr_array_new();
g_ptr_array_add(uids, g_strdup(uid));
- if (!strcmp(forward, "attached"))
+ if (!strcmp(forward, "attached"))
em_utils_forward_attached(folder, uids, uri);
else if (!strcmp(forward, "inline"))
em_utils_forward_inline(folder, uids, uri);
@@ -1029,7 +1029,7 @@ impl_upgradeFromVersion (PortableServer_Servant servant, const short major, cons
CamelException ex;
component = mail_component_peek ();
-
+
camel_exception_init (&ex);
if (em_migrate (component->priv->base_directory, major, minor, revision, &ex) == -1) {
GNOME_Evolution_Component_UpgradeFailed *failedex;
@@ -1083,7 +1083,7 @@ setline_check(void *key, void *value, void *data)
}
}
-int
+int
status_check (GNOME_Evolution_ShellState shell_state)
{
int status = 0;
@@ -1094,7 +1094,7 @@ status_check (GNOME_Evolution_ShellState shell_state)
status = OFFLINE;
if (em_utils_prompt_user (NULL, "/apps/evolution/mail/prompts/quick_offline", "mail:ask-quick-offline", NULL))
break;
- case GNOME_Evolution_FORCED_OFFLINE:
+ case GNOME_Evolution_FORCED_OFFLINE:
/*Network is down so change network state on the camel session*/
status = OFFLINE;
/* Cancel all operations as they wont happen anyway cos Network is down*/
@@ -1104,7 +1104,7 @@ status_check (GNOME_Evolution_ShellState shell_state)
case GNOME_Evolution_USER_ONLINE:
camel_session_set_network_state (session, TRUE);
status = ONLINE;
- }
+ }
return status;
}
@@ -1156,12 +1156,12 @@ mail_component_class_init (MailComponentClass *class)
POA_GNOME_Evolution_Component__epv *epv = &((EvolutionComponentClass *)class)->epv;
POA_GNOME_Evolution_MailComponent__epv *mepv = &class->epv;
GObjectClass *object_class = G_OBJECT_CLASS (class);
-
+
parent_class = g_type_class_peek_parent (class);
-
+
object_class->dispose = impl_dispose;
object_class->finalize = impl_finalize;
-
+
epv->createView = impl_createView;
epv->requestQuit = impl_requestQuit;
epv->quit = impl_quit;
@@ -1186,10 +1186,10 @@ static void
mail_component_init (MailComponent *component)
{
MailComponentPrivate *priv;
-
+
priv = g_new0 (MailComponentPrivate, 1);
component->priv = priv;
-
+
priv->lock = g_mutex_new();
priv->quit_state = -1;
@@ -1203,19 +1203,19 @@ mail_component_init (MailComponent *component)
#endif
if (g_mkdir_with_parents (priv->base_directory, 0777) == -1 && errno != EEXIST)
abort ();
-
+
priv->model = em_folder_tree_model_new (priv->base_directory);
-
+
priv->activity_handler = e_activity_handler_new ();
-
+
mail_session_init (priv->base_directory);
-
+
priv->async_event = mail_async_event_new();
priv->store_hash = g_hash_table_new_full (
NULL, NULL,
(GDestroyNotify) NULL,
(GDestroyNotify) store_hash_free);
-
+
mail_autoreceive_init();
}
@@ -1275,7 +1275,7 @@ mail_component_add_store (MailComponent *component, CamelStore *store, const cha
* @component: mail component
* @uri: uri of store
* @name: name of store (used for display purposes)
- *
+ *
* Return value: Pointer to the newly added CamelStore. The caller is supposed
* to ref the object if it wants to store it.
**/
@@ -1287,14 +1287,14 @@ mail_component_load_store_by_uri (MailComponent *component, const char *uri, con
CamelProvider *prov;
MAIL_COMPONENT_DEFAULT(component);
-
+
camel_exception_init (&ex);
-
+
/* Load the service (don't connect!). Check its provider and
* see if this belongs in the shell's folder list. If so, add
* it.
*/
-
+
prov = camel_provider_get(uri, &ex);
if (prov == NULL) {
/* EPFIXME: real error dialog */
@@ -1303,10 +1303,10 @@ mail_component_load_store_by_uri (MailComponent *component, const char *uri, con
camel_exception_clear (&ex);
return NULL;
}
-
+
if (!(prov->flags & CAMEL_PROVIDER_IS_STORAGE))
return NULL;
-
+
store = (CamelStore *) camel_session_get_service (session, uri, CAMEL_PROVIDER_STORE, &ex);
if (store == NULL) {
/* EPFIXME: real error dialog */
@@ -1318,7 +1318,7 @@ mail_component_load_store_by_uri (MailComponent *component, const char *uri, con
mail_component_add_store(component, store, name);
camel_object_unref (store);
-
+
return store;
}
@@ -1343,19 +1343,19 @@ mail_component_remove_store (MailComponent *component, CamelStore *store)
* any call to camel_session_get_{service,store} with the same
* URL will always return the same object. So this works.
*/
-
+
if (g_hash_table_lookup (priv->store_hash, store) == NULL)
return;
-
+
camel_object_ref (store);
g_hash_table_remove (priv->store_hash, store);
-
+
/* so i guess potentially we could have a race, add a store while one
being removed. ?? */
mail_note_store_remove (store);
-
+
em_folder_tree_model_remove_store (priv->model, store);
-
+
mail_async_event_emit (priv->async_event, MAIL_ASYNC_THREAD, (MailAsyncFunc) store_disconnect, store, NULL, NULL);
}
@@ -1366,13 +1366,13 @@ mail_component_remove_store_by_uri (MailComponent *component, const char *uri)
CamelStore *store;
MAIL_COMPONENT_DEFAULT(component);
-
+
if (!(prov = camel_provider_get(uri, NULL)))
return;
-
+
if (!(prov->flags & CAMEL_PROVIDER_IS_STORAGE))
return;
-
+
store = (CamelStore *) camel_session_get_service (session, uri, CAMEL_PROVIDER_STORE, NULL);
if (store != NULL) {
mail_component_remove_store (component, store);
@@ -1431,18 +1431,18 @@ mail_component_peek_local_store (MailComponent *mc)
{
MAIL_COMPONENT_DEFAULT (mc);
mc_setup_local_store (mc);
-
+
return mc->priv->local_store;
}
/**
* mail_component_get_folder:
- * @mc:
- * @id:
- *
+ * @mc:
+ * @id:
+ *
* Get a standard/default folder by id. This call is thread-safe.
- *
- * Return value:
+ *
+ * Return value:
**/
struct _CamelFolder *
mail_component_get_folder(MailComponent *mc, enum _mail_component_folder_t id)
@@ -1457,12 +1457,12 @@ mail_component_get_folder(MailComponent *mc, enum _mail_component_folder_t id)
/**
* mail_component_get_folder_uri:
- * @mc:
- * @id:
- *
+ * @mc:
+ * @id:
+ *
* Get a standard/default folder's uri. This call is thread-safe.
- *
- * Return value:
+ *
+ * Return value:
**/
const char *
mail_component_get_folder_uri(MailComponent *mc, enum _mail_component_folder_t id)
diff --git a/mail/mail-component.h b/mail/mail-component.h
index 901e612a21..e5c5a29e6f 100644
--- a/mail/mail-component.h
+++ b/mail/mail-component.h
@@ -52,13 +52,13 @@ enum _mail_component_folder_t {
struct _MailComponent {
EvolutionComponent parent;
-
+
MailComponentPrivate *priv;
};
struct _MailComponentClass {
EvolutionComponentClass parent_class;
-
+
POA_GNOME_Evolution_MailComponent__epv epv;
};
diff --git a/mail/mail-config-factory.c b/mail/mail-config-factory.c
index abd63021f1..27ed15e0d9 100644
--- a/mail/mail-config-factory.c
+++ b/mail/mail-config-factory.c
@@ -41,7 +41,7 @@ mail_config_control_factory_cb (BonoboGenericFactory *factory, const char *compo
GNOME_Evolution_Shell shell = (GNOME_Evolution_Shell) user_data;
EvolutionConfigControl *control;
GtkWidget *prefs = NULL;
-
+
if (!strcmp (component_id, EM_ACCOUNT_PREFS_CONTROL_ID)) {
prefs = em_account_prefs_new (shell);
} else if (!strcmp (component_id, EM_MAILER_PREFS_CONTROL_ID)) {
@@ -51,10 +51,10 @@ mail_config_control_factory_cb (BonoboGenericFactory *factory, const char *compo
} else {
g_return_val_if_reached(NULL);
}
-
+
gtk_widget_show_all (prefs);
-
+
control = evolution_config_control_new (prefs);
-
+
return BONOBO_OBJECT (control);
}
diff --git a/mail/mail-config.c b/mail/mail-config.c
index ef16f521a6..eda95c7982 100644
--- a/mail/mail-config.c
+++ b/mail/mail-config.c
@@ -87,31 +87,31 @@ MailConfigLabel label_defaults[5] = {
typedef struct {
GConfClient *gconf;
-
+
gboolean corrupt;
-
+
char *gtkrc;
-
+
EAccountList *accounts;
ESignatureList *signatures;
-
+
GSList *labels;
guint label_notify_id;
-
+
guint font_notify_id;
guint spell_notify_id;
guint mark_citations__notify_id;
guint citation_colour_notify_id;
guint address_count_notify_id;
- guint address_compress_notify_id;
- gboolean address_compress;
+ guint address_compress_notify_id;
+ gboolean address_compress;
gint address_count;
guint mlimit_size_notify_id;
- guint mlimit_notify_id;
- gboolean mlimit;
+ guint mlimit_notify_id;
+ gboolean mlimit;
gint mlimit_size;
-
-
+
+
GPtrArray *mime_types;
guint mime_types_notify_id;
} MailConfig;
@@ -138,7 +138,7 @@ config_clear_labels (void)
{
MailConfigLabel *label;
GSList *list, *n;
-
+
list = config->labels;
while (list != NULL) {
label = list->data;
@@ -146,12 +146,12 @@ config_clear_labels (void)
g_free (label->name);
g_free (label->colour);
g_free (label);
-
+
n = list->next;
g_slist_free_1 (list);
list = n;
}
-
+
config->labels = NULL;
}
@@ -162,70 +162,70 @@ config_cache_labels (void)
MailConfigLabel *label;
char *buf, *colour;
int num = 0;
-
+
tail = labels = NULL;
-
+
list = gconf_client_get_list (config->gconf, "/apps/evolution/mail/labels", GCONF_VALUE_STRING, NULL);
-
+
while (list != NULL) {
buf = list->data;
-
+
if (num < 5 && (colour = strrchr (buf, ':'))) {
label = g_new (MailConfigLabel, 1);
-
+
*colour++ = '\0';
label->tag = g_strdup(label_defaults[num].tag);
- /* Don't translate an empty string */
+ /* Don't translate an empty string */
if (buf == NULL || buf[0] == '\0')
label->name = g_strdup (_("Unnamed"));
else
label->name = g_strdup (_(buf));
label->colour = g_strdup (colour);
-
+
n = g_slist_alloc ();
n->next = NULL;
n->data = label;
-
+
if (tail == NULL)
labels = n;
else
tail->next = n;
-
+
tail = n;
-
+
num++;
}
-
+
g_free (buf);
-
+
n = list->next;
g_slist_free_1 (list);
list = n;
}
-
+
while (num < 5) {
/* complete the list with defaults */
label = g_new (MailConfigLabel, 1);
label->tag = g_strdup (label_defaults[num].tag);
label->name = g_strdup (_(label_defaults[num].name));
label->colour = g_strdup (label_defaults[num].colour);
-
+
n = g_slist_alloc ();
n->next = NULL;
n->data = label;
-
+
if (tail == NULL)
labels = n;
else
tail->next = n;
-
+
tail = n;
-
+
num++;
}
-
+
config->labels = labels;
}
@@ -233,10 +233,10 @@ static void
config_clear_mime_types (void)
{
int i;
-
+
for (i = 0; i < config->mime_types->len; i++)
g_free (config->mime_types->pdata[i]);
-
+
g_ptr_array_set_size (config->mime_types, 0);
}
@@ -244,7 +244,7 @@ static void
config_cache_mime_types (void)
{
GSList *n, *nn;
-
+
n = gconf_client_get_list (config->gconf, "/apps/evolution/mail/display/mime_types", GCONF_VALUE_STRING, NULL);
while (n != NULL) {
nn = n->next;
@@ -252,7 +252,7 @@ config_cache_mime_types (void)
g_slist_free_1 (n);
n = nn;
}
-
+
g_ptr_array_add (config->mime_types, NULL);
}
@@ -271,12 +271,12 @@ config_write_style (void)
char *var_font;
char *citation_color;
FILE *rc;
-
+
if (!(rc = g_fopen (config->gtkrc, "wt"))) {
g_warning ("unable to open %s", config->gtkrc);
return;
}
-
+
custom = gconf_client_get_bool (config->gconf, "/apps/evolution/mail/display/fonts/use_custom", NULL);
var_font = gconf_client_get_string (config->gconf, "/apps/evolution/mail/display/fonts/variable", NULL);
fix_font = gconf_client_get_string (config->gconf, "/apps/evolution/mail/display/fonts/monospace", NULL);
@@ -298,13 +298,13 @@ config_write_style (void)
fprintf (rc,
" GtkHTML::fixed_font_name = \"%s\"\n"
" font_name = \"%s\"\n",
- fix_font, var_font);
+ fix_font, var_font);
}
g_free (fix_font);
g_free (var_font);
fprintf (rc, "}\n\n");
-
+
fprintf (rc, "widget \"*.EMFolderView.*.GtkHTML\" style \"evolution-mail-custom-fonts\"\n");
fprintf (rc, "widget \"*.EMFolderBrowser.*.GtkHTML\" style \"evolution-mail-custom-fonts\"\n");
fprintf (rc, "widget \"*.EMMessageBrowser.*.GtkHTML\" style \"evolution-mail-custom-fonts\"\n");
@@ -312,7 +312,7 @@ config_write_style (void)
fprintf (rc, "widget \"*.EvolutionMailPrintHTMLWidget\" style \"evolution-mail-custom-fonts\"\n");
fflush (rc);
fclose (rc);
-
+
gtk_rc_reparse_all ();
}
@@ -373,16 +373,16 @@ mail_config_init (void)
{
if (config)
return;
-
+
config = g_new0 (MailConfig, 1);
config->gconf = gconf_client_get_default ();
config->mime_types = g_ptr_array_new ();
config->gtkrc = g_build_filename (g_get_home_dir (), ".evolution", "mail", "config", "gtkrc-mail-fonts", NULL);
-
+
mail_config_clear ();
-
+
gtk_rc_parse (config->gtkrc);
-
+
gconf_client_add_dir (config->gconf, "/apps/evolution/mail/display",
GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
gconf_client_add_dir (config->gconf, "/apps/evolution/mail/display/fonts",
@@ -392,32 +392,32 @@ mail_config_init (void)
config->font_notify_id = gconf_client_notify_add (config->gconf, "/apps/evolution/mail/display/fonts",
gconf_style_changed, NULL, NULL, NULL);
config->font_notify_id = gconf_client_notify_add (config->gconf, "/apps/evolution/mail/display/address_compress",
- gconf_address_compress_changed, NULL, NULL, NULL);
+ gconf_address_compress_changed, NULL, NULL, NULL);
config->font_notify_id = gconf_client_notify_add (config->gconf, "/apps/evolution/mail/display/address_count",
gconf_address_count_changed, NULL, NULL, NULL);
config->mlimit_notify_id = gconf_client_notify_add (config->gconf, "/apps/evolution/mail/display/force_message_limit",
- gconf_mlimit_changed, NULL, NULL, NULL);
+ gconf_mlimit_changed, NULL, NULL, NULL);
config->mlimit_size_notify_id = gconf_client_notify_add (config->gconf, "/apps/evolution/mail/display/message_text_part_limit",
- gconf_mlimit_size_changed, NULL, NULL, NULL);
+ gconf_mlimit_size_changed, NULL, NULL, NULL);
config->spell_notify_id = gconf_client_notify_add (config->gconf, "/GNOME/Spell",
gconf_style_changed, NULL, NULL, NULL);
config->mark_citations__notify_id = gconf_client_notify_add (config->gconf, "/apps/evolution/mail/display/mark_citations",
gconf_style_changed, NULL, NULL, NULL);
config->citation_colour_notify_id = gconf_client_notify_add (config->gconf, "/apps/evolution/mail/display/citation_colour",
gconf_style_changed, NULL, NULL, NULL);
-
+
gconf_client_add_dir (config->gconf, "/apps/evolution/mail/labels",
GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
config->label_notify_id =
gconf_client_notify_add (config->gconf, "/apps/evolution/mail/labels",
gconf_labels_changed, NULL, NULL, NULL);
-
+
gconf_client_add_dir (config->gconf, "/apps/evolution/mail/mime_types",
GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
config->mime_types_notify_id =
gconf_client_notify_add (config->gconf, "/apps/evolution/mail/mime_types",
gconf_mime_types_changed, NULL, NULL, NULL);
-
+
config_cache_labels ();
config_cache_mime_types ();
config->address_compress = gconf_client_get_bool (config->gconf, "/apps/evolution/mail/display/address_compress", NULL);
@@ -434,17 +434,17 @@ mail_config_clear (void)
{
if (!config)
return;
-
+
if (config->accounts) {
g_object_unref (config->accounts);
config->accounts = NULL;
}
-
+
if (config->signatures) {
g_object_unref (config->signatures);
config->signatures = NULL;
}
-
+
config_clear_labels ();
config_clear_mime_types ();
}
@@ -455,10 +455,10 @@ mail_config_write (void)
{
if (!config)
return;
-
+
e_account_list_save (config->accounts);
e_signature_list_save (config->signatures);
-
+
gconf_client_suggest_sync (config->gconf, NULL);
}
@@ -467,67 +467,67 @@ mail_config_write_on_exit (void)
{
EAccount *account;
EIterator *iter;
-
+
if (config_write_timeout) {
g_source_remove (config_write_timeout);
config_write_timeout = 0;
mail_config_write ();
}
-
+
/* Passwords */
-
+
/* then we make sure the ones we want to remember are in the
session cache */
iter = e_list_get_iterator ((EList *) config->accounts);
while (e_iterator_is_valid (iter)) {
char *passwd;
-
+
account = (EAccount *) e_iterator_get (iter);
-
+
if (account->source->save_passwd && account->source->url && account->source->url[0]) {
passwd = mail_session_get_password (account->source->url);
mail_session_forget_password (account->source->url);
mail_session_add_password (account->source->url, passwd);
g_free (passwd);
}
-
+
if (account->transport->save_passwd && account->transport->url && account->transport->url[0]) {
passwd = mail_session_get_password (account->transport->url);
mail_session_forget_password (account->transport->url);
mail_session_add_password (account->transport->url, passwd);
g_free (passwd);
}
-
+
e_iterator_next (iter);
}
-
+
g_object_unref (iter);
-
+
/* then we clear out our component passwords */
e_passwords_clear_passwords ("Mail");
-
+
/* then we remember them */
iter = e_list_get_iterator ((EList *) config->accounts);
while (e_iterator_is_valid (iter)) {
account = (EAccount *) e_iterator_get (iter);
-
+
if (account->source->save_passwd && account->source->url && account->source->url[0])
mail_session_remember_password (account->source->url);
-
+
if (account->transport->save_passwd && account->transport->url && account->transport->url[0])
mail_session_remember_password (account->transport->url);
-
+
e_iterator_next (iter);
}
-
+
/* now do cleanup */
mail_config_clear ();
-
+
g_object_unref (config->gconf);
g_ptr_array_free (config->mime_types, TRUE);
-
+
g_free (config->gtkrc);
-
+
g_free (config);
}
@@ -558,7 +558,7 @@ mail_config_get_labels (void)
int
mail_config_get_address_count (void)
-{
+{
if (!config->address_compress)
return -1;
@@ -571,7 +571,7 @@ mail_config_get_message_limit (void)
if (!config->mlimit)
return -1;
- return config->mlimit_size;
+ return config->mlimit_size;
}
const char *
@@ -579,7 +579,7 @@ mail_config_get_label_color_by_name (const char *name)
{
MailConfigLabel *label;
GSList *node;
-
+
node = config->labels;
while (node != NULL) {
label = node->data;
@@ -587,7 +587,7 @@ mail_config_get_label_color_by_name (const char *name)
return label->colour;
node = node->next;
}
-
+
return NULL;
}
@@ -595,12 +595,12 @@ const char *
mail_config_get_label_color_by_index (int index)
{
MailConfigLabel *label;
-
+
label = g_slist_nth_data (config->labels, index);
-
+
if (label)
return label->colour;
-
+
return NULL;
}
@@ -615,7 +615,7 @@ mail_config_find_account (EAccount *account)
{
EAccount *acnt;
EIterator *iter;
-
+
iter = e_list_get_iterator ((EList *) config->accounts);
while (e_iterator_is_valid (iter)) {
acnt = (EAccount *) e_iterator_get (iter);
@@ -623,12 +623,12 @@ mail_config_find_account (EAccount *account)
g_object_unref (iter);
return TRUE;
}
-
+
e_iterator_next (iter);
}
-
+
g_object_unref (iter);
-
+
return FALSE;
}
@@ -637,7 +637,7 @@ mail_config_get_default_account (void)
{
if (config == NULL)
mail_config_init ();
-
+
if (!config->accounts)
return NULL;
@@ -664,44 +664,44 @@ mail_config_get_account_by_source_url (const char *source_url)
EAccount *account;
CamelURL *source;
EIterator *iter;
-
+
g_return_val_if_fail (source_url != NULL, NULL);
-
+
provider = camel_provider_get(source_url, NULL);
if (!provider)
return NULL;
-
+
source = camel_url_new (source_url, NULL);
if (!source)
return NULL;
-
+
iter = e_list_get_iterator ((EList *) config->accounts);
while (e_iterator_is_valid (iter)) {
account = (EAccount *) e_iterator_get (iter);
-
+
if (account->source && account->source->url && account->source->url[0]) {
CamelURL *url;
-
+
url = camel_url_new (account->source->url, NULL);
if (url && provider->url_equal (url, source)) {
camel_url_free (url);
camel_url_free (source);
g_object_unref (iter);
-
+
return account;
}
-
+
if (url)
camel_url_free (url);
}
-
+
e_iterator_next (iter);
}
-
+
g_object_unref (iter);
-
+
camel_url_free (source);
-
+
return NULL;
}
@@ -712,44 +712,44 @@ mail_config_get_account_by_transport_url (const char *transport_url)
CamelURL *transport;
EAccount *account;
EIterator *iter;
-
+
g_return_val_if_fail (transport_url != NULL, NULL);
-
+
provider = camel_provider_get(transport_url, NULL);
if (!provider)
return NULL;
-
+
transport = camel_url_new (transport_url, NULL);
if (!transport)
return NULL;
-
+
iter = e_list_get_iterator ((EList *) config->accounts);
while (e_iterator_is_valid (iter)) {
account = (EAccount *) e_iterator_get (iter);
-
+
if (account->transport && account->transport->url && account->transport->url[0]) {
CamelURL *url;
-
+
url = camel_url_new (account->transport->url, NULL);
if (url && provider->url_equal (url, transport)) {
camel_url_free (url);
camel_url_free (transport);
g_object_unref (iter);
-
+
return account;
}
-
+
if (url)
camel_url_free (url);
}
-
+
e_iterator_next (iter);
}
-
+
g_object_unref (iter);
-
+
camel_url_free (transport);
-
+
return NULL;
}
@@ -775,8 +775,8 @@ EAccountList *
mail_config_get_accounts (void)
{
if (config == NULL)
- mail_config_init ();
-
+ mail_config_init ();
+
return config->accounts;
}
@@ -804,7 +804,7 @@ EAccountIdentity *
mail_config_get_default_identity (void)
{
EAccount *account;
-
+
account = mail_config_get_default_account ();
if (account)
return account->id;
@@ -817,27 +817,27 @@ mail_config_get_default_transport (void)
{
EAccount *account;
EIterator *iter;
-
+
account = mail_config_get_default_account ();
if (account && account->enabled && account->transport && account->transport->url && account->transport->url[0])
return account->transport;
-
+
/* return the first account with a transport? */
iter = e_list_get_iterator ((EList *) config->accounts);
while (e_iterator_is_valid (iter)) {
account = (EAccount *) e_iterator_get (iter);
-
+
if (account->enabled && account->transport && account->transport->url && account->transport->url[0]) {
g_object_unref (iter);
-
+
return account->transport;
}
-
+
e_iterator_next (iter);
}
-
+
g_object_unref (iter);
-
+
return NULL;
}
@@ -847,7 +847,7 @@ uri_to_evname (const char *uri, const char *prefix)
const char *base_directory = mail_component_peek_base_directory (mail_component_peek ());
char *safe;
char *tmp;
-
+
safe = g_strdup (uri);
e_filename_make_safe (safe);
/* blah, easiest thing to do */
@@ -866,37 +866,37 @@ mail_config_uri_renamed (GCompareFunc uri_cmp, const char *old, const char *new)
EIterator *iter;
int i, work = 0;
char *oldname, *newname;
- char *cachenames[] = { "config/hidestate-",
- "config/et-expanded-",
- "config/et-header-",
+ char *cachenames[] = { "config/hidestate-",
+ "config/et-expanded-",
+ "config/et-header-",
"*views/current_view-",
"*views/custom_view-",
NULL };
-
+
iter = e_list_get_iterator ((EList *) config->accounts);
while (e_iterator_is_valid (iter)) {
account = (EAccount *) e_iterator_get (iter);
-
+
if (account->sent_folder_uri && uri_cmp (account->sent_folder_uri, old)) {
g_free (account->sent_folder_uri);
account->sent_folder_uri = g_strdup (new);
work = 1;
}
-
+
if (account->drafts_folder_uri && uri_cmp (account->drafts_folder_uri, old)) {
g_free (account->drafts_folder_uri);
account->drafts_folder_uri = g_strdup (new);
work = 1;
}
-
+
e_iterator_next (iter);
}
-
+
g_object_unref (iter);
-
+
/* ignore return values or if the files exist or
* not, doesn't matter */
-
+
for (i = 0; cachenames[i]; i++) {
oldname = uri_to_evname (old, cachenames[i]);
newname = uri_to_evname (new, cachenames[i]);
@@ -905,7 +905,7 @@ mail_config_uri_renamed (GCompareFunc uri_cmp, const char *old, const char *new)
g_free (oldname);
g_free (newname);
}
-
+
/* nasty ... */
if (work)
mail_config_write ();
@@ -920,32 +920,32 @@ mail_config_uri_deleted (GCompareFunc uri_cmp, const char *uri)
/* assumes these can't be removed ... */
const char *default_sent_folder_uri = mail_component_get_folder_uri(NULL, MAIL_COMPONENT_FOLDER_SENT);
const char *default_drafts_folder_uri = mail_component_get_folder_uri(NULL, MAIL_COMPONENT_FOLDER_DRAFTS);
-
+
iter = e_list_get_iterator ((EList *) config->accounts);
while (e_iterator_is_valid (iter)) {
account = (EAccount *) e_iterator_get (iter);
-
+
if (account->sent_folder_uri && uri_cmp (account->sent_folder_uri, uri)) {
g_free (account->sent_folder_uri);
account->sent_folder_uri = g_strdup (default_sent_folder_uri);
work = 1;
}
-
+
if (account->drafts_folder_uri && uri_cmp (account->drafts_folder_uri, uri)) {
g_free (account->drafts_folder_uri);
account->drafts_folder_uri = g_strdup (default_drafts_folder_uri);
work = 1;
}
-
+
e_iterator_next (iter);
}
-
+
/* nasty again */
if (work)
mail_config_write ();
}
-void
+void
mail_config_service_set_save_passwd (EAccountService *service, gboolean save_passwd)
{
service->save_passwd = save_passwd;
@@ -955,10 +955,10 @@ char *
mail_config_folder_to_safe_url (CamelFolder *folder)
{
char *url;
-
+
url = mail_tools_folder_to_url (folder);
e_filename_make_safe (url);
-
+
return url;
}
@@ -967,15 +967,15 @@ mail_config_folder_to_cachename (CamelFolder *folder, const char *prefix)
{
char *url, *basename, *filename;
const char *evolution_dir;
-
+
evolution_dir = mail_component_peek_base_directory (mail_component_peek ());
-
+
url = mail_config_folder_to_safe_url (folder);
basename = g_strdup_printf ("%s%s", prefix, url);
filename = g_build_filename (evolution_dir, "mail", "config", basename, NULL);
g_free (basename);
g_free (url);
-
+
return filename;
}
@@ -1003,16 +1003,16 @@ get_new_signature_filename (void)
g_warning ("Fatal problem with %s directory.", filename);
}
g_free (filename);
-
+
filename = g_malloc (strlen (base_directory) + sizeof ("/signatures/signature-") + 12);
id = g_stpcpy (filename, base_directory);
id = g_stpcpy (id, "/signatures/signature-");
-
+
for (i = 0; i < (INT_MAX - 1); i++) {
sprintf (id, "%d", i);
if (g_lstat (filename, &st) == -1 && errno == ENOENT) {
int fd;
-
+
fd = g_creat (filename, 0600);
if (fd >= 0) {
close (fd);
@@ -1020,9 +1020,9 @@ get_new_signature_filename (void)
}
}
}
-
+
g_free (filename);
-
+
return NULL;
}
@@ -1031,17 +1031,17 @@ ESignature *
mail_config_signature_new (const char *filename, gboolean script, gboolean html)
{
ESignature *sig;
-
+
sig = e_signature_new ();
sig->name = g_strdup (_("Unnamed"));
sig->script = script;
sig->html = html;
-
+
if (filename == NULL)
sig->filename = get_new_signature_filename ();
else
sig->filename = g_strdup (filename);
-
+
return sig;
}
@@ -1069,7 +1069,7 @@ mail_config_remove_signature (ESignature *signature)
{
if (signature->filename && !signature->script)
g_unlink (signature->filename);
-
+
e_signature_list_remove (config->signatures, signature);
mail_config_save_signatures ();
}
@@ -1086,24 +1086,24 @@ mail_config_signature_run_script (const char *script)
g_warning ("Failed to create pipe to '%s': %s", script, g_strerror (errno));
return NULL;
}
-
+
if (!(pid = fork ())) {
/* child process */
int maxfd, i;
-
+
close (in_fds [0]);
if (dup2 (in_fds[1], STDOUT_FILENO) < 0)
_exit (255);
close (in_fds [1]);
-
+
setsid ();
-
+
maxfd = sysconf (_SC_OPEN_MAX);
for (i = 3; i < maxfd; i++) {
if (i != STDIN_FILENO && i != STDOUT_FILENO && i != STDERR_FILENO)
fcntl (i, F_SETFD, FD_CLOEXEC);
}
-
+
execlp("/bin/sh", "/bin/sh", "-c", script, NULL);
g_warning ("Could not execute %s: %s\n", script, g_strerror (errno));
_exit (255);
@@ -1120,19 +1120,19 @@ mail_config_signature_run_script (const char *script)
GByteArray *buffer;
char *charset;
char *content;
-
+
/* parent process */
close (in_fds[1]);
-
+
stream = camel_stream_fs_new_with_fd (in_fds[0]);
-
+
memstream = (CamelStreamMem *) camel_stream_mem_new ();
buffer = g_byte_array_new ();
camel_stream_mem_set_byte_array (memstream, buffer);
-
+
camel_stream_write_to_stream (stream, (CamelStream *) memstream);
camel_object_unref (stream);
-
+
/* signature scripts are supposed to generate UTF-8 content, but because users
are known to not ever read the manual... we try to do our best if the
content isn't valid UTF-8 by assuming that the content is in the user's
@@ -1141,10 +1141,10 @@ mail_config_signature_run_script (const char *script)
stream = (CamelStream *) memstream;
memstream = (CamelStreamMem *) camel_stream_mem_new ();
camel_stream_mem_set_byte_array (memstream, g_byte_array_new ());
-
+
filtered_stream = camel_stream_filter_new_with_stream (stream);
camel_object_unref (stream);
-
+
charset = gconf_client_get_string (config->gconf, "/apps/evolution/mail/composer/charset", NULL);
if (charset && *charset) {
if ((charenc = (CamelMimeFilter *) camel_mime_filter_charset_new_convert (charset, "utf-8"))) {
@@ -1153,23 +1153,23 @@ mail_config_signature_run_script (const char *script)
}
}
g_free (charset);
-
+
camel_stream_write_to_stream ((CamelStream *) filtered_stream, (CamelStream *) memstream);
camel_object_unref (filtered_stream);
g_byte_array_free (buffer, TRUE);
-
+
buffer = memstream->buffer;
}
-
+
camel_object_unref (memstream);
-
+
g_byte_array_append (buffer, (const unsigned char *)"", 1);
content = (char *)buffer->data;
g_byte_array_free (buffer, FALSE);
-
+
/* wait for the script process to terminate */
result = waitpid (pid, &status, 0);
-
+
if (result == -1 && errno == EINTR) {
/* child process is hanging... */
kill (pid, SIGTERM);
@@ -1182,7 +1182,7 @@ mail_config_signature_run_script (const char *script)
result = waitpid (pid, &status, WNOHANG);
}
}
-
+
return content;
}
#else
diff --git a/mail/mail-crypto.c b/mail/mail-crypto.c
index a23c9f64b5..324f0c3743 100644
--- a/mail/mail-crypto.c
+++ b/mail/mail-crypto.c
@@ -44,10 +44,10 @@ CamelCipherContext *
mail_crypto_get_pgp_cipher_context (EAccount *account)
{
CamelCipherContext *cipher;
-
+
cipher = camel_gpg_context_new (session);
if (account)
camel_gpg_context_set_always_trust ((CamelGpgContext *) cipher, account->pgp_always_trust);
-
+
return cipher;
}
diff --git a/mail/mail-folder-cache.c b/mail/mail-folder-cache.c
index 46e9446566..5433616a1b 100644
--- a/mail/mail-folder-cache.c
+++ b/mail/mail-folder-cache.c
@@ -1,12 +1,12 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
+ *
* Authors: Peter Williams <peterw@ximian.com>
* Michael Zucchi <notzed@ximian.com>
*
* Copyright 2000,2001 Ximian, Inc. (www.ximian.com)
*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
* License as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
@@ -80,9 +80,9 @@ struct _folder_info {
char *full_name; /* full name of folder/folderinfo */
char *uri; /* uri of folder */
-
+
guint32 flags;
-
+
CamelFolder *folder; /* if known */
};
@@ -160,9 +160,9 @@ notify_idle_cb (gpointer user_data)
{
GConfClient *gconf;
char *filename;
-
+
gconf = mail_config_get_gconf_client ();
-
+
switch (notify_type) {
case MAIL_CONFIG_NOTIFY_PLAY_SOUND:
filename = gconf_client_get_string (gconf, "/apps/evolution/mail/notify/sound", NULL);
@@ -177,11 +177,11 @@ notify_idle_cb (gpointer user_data)
default:
break;
}
-
+
time (&last_notify);
-
+
notify_idle_id = 0;
-
+
return FALSE;
}
@@ -198,10 +198,10 @@ real_flush_updates(void *o, void *event_data, void *data)
struct _MailComponent *component;
struct _EMFolderTreeModel *model;
struct _folder_update *up;
-
+
component = mail_component_peek ();
model = mail_component_peek_tree_model (component);
-
+
LOCK(info_lock);
while ((up = (struct _folder_update *)e_dlist_remhead(&updates))) {
UNLOCK(info_lock);
@@ -223,18 +223,18 @@ real_flush_updates(void *o, void *event_data, void *data)
mail_config_uri_renamed(CAMEL_STORE_CLASS(CAMEL_OBJECT_GET_CLASS(up->store))->compare_folder_name,
up->olduri, up->uri);
}
-
+
if (!up->olduri && up->add)
mail_vfolder_add_uri(up->store, up->uri, FALSE);
}
-
+
/* update unread counts */
em_folder_tree_model_set_unread_count (model, up->store, up->full_name, up->unread);
/* new mail notification */
if (notify_type == -1) {
/* need to track the user's new-mail-notification settings... */
GConfClient *gconf;
-
+
gconf = mail_config_get_gconf_client ();
gconf_client_add_dir (gconf, "/apps/evolution/mail/notify",
GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
@@ -242,10 +242,10 @@ real_flush_updates(void *o, void *event_data, void *data)
notify_type_changed, NULL, NULL, NULL);
notify_type = gconf_client_get_int (gconf, "/apps/evolution/mail/notify/type", NULL);
}
-
+
if (notify_type != 0 && up->new && notify_idle_id == 0 && (last_newmail - last_notify >= NOTIFY_THROTTLE))
notify_idle_id = g_idle_add_full (G_PRIORITY_LOW, notify_idle_cb, NULL, NULL);
-
+
if (up->uri) {
EMEvent *e = em_event_peek();
EMEventTargetFolder *t = em_event_target_new_folder(e, up->uri, up->new);
@@ -258,7 +258,7 @@ real_flush_updates(void *o, void *event_data, void *data)
/** @Event: folder.changed
* @Title: Folder changed
* @Target: EMEventTargetFolder
- *
+ *
* folder.changed is emitted whenever a folder changes. There is no detail on how the folder has changed.
* UPDATE: We tell the number of new UIDs added rather than the new mails received
*/
@@ -266,7 +266,7 @@ real_flush_updates(void *o, void *event_data, void *data)
}
free_update(up);
-
+
LOCK(info_lock);
}
update_id = -1;
@@ -348,7 +348,7 @@ update_1folder(struct _folder_info *mfi, int new, CamelFolderInfo *info)
CamelFolder *folder;
int unread = -1;
int deleted;
-
+
folder = mfi->folder;
if (folder) {
d(printf("update 1 folder '%s'\n", folder->full_name));
@@ -358,7 +358,7 @@ update_1folder(struct _folder_info *mfi, int new, CamelFolderInfo *info)
|| (count_sent && folder == mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_SENT))) {
d(printf(" total count\n"));
unread = camel_folder_get_message_count (folder);
- if (folder == mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_OUTBOX)
+ if (folder == mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_OUTBOX)
|| folder == mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_DRAFTS)) {
guint32 junked = 0;
@@ -368,7 +368,7 @@ update_1folder(struct _folder_info *mfi, int new, CamelFolderInfo *info)
camel_object_get (folder, NULL, CAMEL_FOLDER_JUNKED, &junked, NULL);
if (junked > 0)
unread -= junked;
-
+
}
} else {
d(printf(" unread count\n"));
@@ -412,7 +412,7 @@ setup_folder(CamelFolderInfo *fi, struct _store_info *si)
mfi->uri = g_strdup(fi->uri);
mfi->store_info = si;
mfi->flags = fi->flags;
-
+
g_hash_table_insert(si->folders, mfi->full_name, mfi);
g_hash_table_insert(si->folders_uri, mfi->uri, mfi);
@@ -422,7 +422,7 @@ setup_folder(CamelFolderInfo *fi, struct _store_info *si)
up->unread = fi->unread;
up->store = si->store;
camel_object_ref(up->store);
-
+
if ((fi->flags & CAMEL_FOLDER_NOSELECT) == 0)
up->add = TRUE;
@@ -458,7 +458,7 @@ folder_changed (CamelObject *o, gpointer event_data, gpointer user_data)
int new = 0;
int i;
guint32 flags;
-
+
d(printf("folder '%s' changed\n", folder->full_name));
if (!CAMEL_IS_VEE_FOLDER(folder)
@@ -480,10 +480,10 @@ folder_changed (CamelObject *o, gpointer event_data, gpointer user_data)
}
}
}
-
+
if (new > 0)
time (&last_newmail);
-
+
LOCK(info_lock);
if (stores != NULL
&& (si = g_hash_table_lookup(stores, store)) != NULL
@@ -671,7 +671,7 @@ rename_folders(struct _store_info *si, const char *oldbase, const char *newbase,
mfi->full_name = g_strdup(fi->full_name);
mfi->uri = g_strdup(fi->uri);
mfi->flags = fi->flags;
-
+
g_hash_table_insert(si->folders, mfi->full_name, mfi);
g_hash_table_insert(si->folders_uri, mfi->uri, mfi);
} else {
@@ -682,7 +682,7 @@ rename_folders(struct _store_info *si, const char *oldbase, const char *newbase,
mfi->uri = g_strdup(fi->uri);
mfi->store_info = si;
mfi->flags = fi->flags;
-
+
g_hash_table_insert(si->folders, mfi->full_name, mfi);
g_hash_table_insert(si->folders_uri, mfi->uri, mfi);
}
@@ -692,7 +692,7 @@ rename_folders(struct _store_info *si, const char *oldbase, const char *newbase,
up->unread = fi->unread==-1?0:fi->unread;
up->store = si->store;
camel_object_ref(up->store);
-
+
if ((fi->flags & CAMEL_FOLDER_NOSELECT) == 0)
up->add = TRUE;
@@ -783,7 +783,7 @@ store_folder_renamed(CamelObject *o, void *event_data, void *data)
struct _update_data {
struct _update_data *next;
struct _update_data *prev;
-
+
int id; /* id for cancellation */
guint cancel:1; /* also tells us we're cancelled */
@@ -835,7 +835,7 @@ mail_note_store_remove(CamelStore *store)
ud->cancel = 1;
ud = ud->next;
}
-
+
camel_object_unref(si->store);
g_hash_table_foreach(si->folders, (GHFunc)free_folder_info_hash, NULL);
g_hash_table_destroy(si->folders);
@@ -874,7 +874,7 @@ update_folders(CamelStore *store, CamelFolderInfo *fi, void *data)
struct _ping_store_msg {
struct _mail_msg msg;
-
+
CamelStore *store;
};
@@ -884,10 +884,10 @@ ping_store_desc (struct _mail_msg *mm, int done)
struct _ping_store_msg *m = (struct _ping_store_msg *) mm;
char *service_name = camel_service_get_name (CAMEL_SERVICE (m->store), TRUE);
char *msg;
-
+
msg = g_strdup_printf (_("Pinging %s"), service_name);
g_free (service_name);
-
+
return msg;
}
@@ -896,12 +896,12 @@ ping_store_ping (struct _mail_msg *mm)
{
gboolean online = FALSE;
struct _ping_store_msg *m = (struct _ping_store_msg *) mm;
-
+
if (CAMEL_SERVICE (m->store)->status == CAMEL_SERVICE_CONNECTED) {
if (CAMEL_IS_DISCO_STORE (m->store) &&
camel_disco_store_status (CAMEL_DISCO_STORE (m->store)) != CAMEL_DISCO_STORE_OFFLINE)
online = TRUE;
- else if (CAMEL_IS_OFFLINE_STORE (m->store) &&
+ else if (CAMEL_IS_OFFLINE_STORE (m->store) &&
CAMEL_OFFLINE_STORE (m->store)->state != CAMEL_OFFLINE_STORE_NETWORK_UNAVAIL)
online = TRUE;
}
@@ -913,7 +913,7 @@ static void
ping_store_free (struct _mail_msg *mm)
{
struct _ping_store_msg *m = (struct _ping_store_msg *) mm;
-
+
camel_object_unref (m->store);
}
@@ -929,14 +929,14 @@ ping_store (gpointer key, gpointer val, gpointer user_data)
{
CamelStore *store = (CamelStore *) key;
struct _ping_store_msg *m;
-
+
if (CAMEL_SERVICE (store)->status != CAMEL_SERVICE_CONNECTED)
return;
-
+
m = mail_msg_new (&ping_store_op, NULL, sizeof (struct _ping_store_msg));
m->store = store;
camel_object_ref (store);
-
+
e_thread_put (mail_thread_queued_slow, (EMsg *) m);
}
@@ -944,11 +944,11 @@ static gboolean
ping_cb (gpointer user_data)
{
LOCK (info_lock);
-
+
g_hash_table_foreach (stores, ping_store, NULL);
-
+
UNLOCK (info_lock);
-
+
return TRUE;
}
@@ -980,7 +980,7 @@ mail_note_store(CamelStore *store, CamelOperation *op,
const char *buf;
guint timeout;
int hook = 0;
-
+
g_return_if_fail (CAMEL_IS_STORE(store));
g_return_if_fail (pthread_equal(pthread_self(), mail_gui_thread));
@@ -1009,12 +1009,12 @@ mail_note_store(CamelStore *store, CamelOperation *op,
e_dlist_init(&si->folderinfo_updates);
hook = TRUE;
}
-
+
ud = g_malloc(sizeof(*ud));
ud->done = done;
ud->data = data;
ud->cancel = 0;
-
+
/* We might get a race when setting up a store, such that it is still left in offline mode,
after we've gone online. This catches and fixes it up when the shell opens us */
if (CAMEL_IS_DISCO_STORE (store)) {
@@ -1036,9 +1036,9 @@ mail_note_store(CamelStore *store, CamelOperation *op,
normal_setup:
ud->id = mail_get_folderinfo (store, op, update_folders, ud);
}
-
+
e_dlist_addtail (&si->folderinfo_updates, (EDListNode *) ud);
-
+
UNLOCK(info_lock);
/* there is potential for race here, but it is safe as we check for the store anyway */
diff --git a/mail/mail-folder-cache.h b/mail/mail-folder-cache.h
index 0b79a335e2..f4c1e1b4db 100644
--- a/mail/mail-folder-cache.h
+++ b/mail/mail-folder-cache.h
@@ -1,14 +1,14 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/* mail-folder-cache.h: Stores information about open folders */
-/*
+/*
* Authors: Peter Williams <peterw@ximian.com>
* Michael Zucchi <notzed@ximian.com>
*
* Copyright 2000,2001 Ximian, Inc. (www.ximian.com)
*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
* License as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
diff --git a/mail/mail-mt.c b/mail/mail-mt.c
index 598b6af425..9572d3cd3f 100644
--- a/mail/mail-mt.c
+++ b/mail/mail-mt.c
@@ -1,5 +1,5 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
+/*
* This program is free software; you can redistribute it and/or
* modify it under the terms of version 2 of the GNU General Public
* License as published by the Free Software Foundation.
@@ -49,7 +49,7 @@
/*#define MALLOC_CHECK*/
#define LOG_OPS
#define LOG_LOCKS
-#define d(x)
+#define d(x)
static void set_stop(int sensitive);
static void mail_operation_status(struct _CamelOperation *op, const char *what, int pc, void *data);
@@ -249,17 +249,17 @@ void mail_msg_check_error(void *msg)
struct _mail_msg *m = msg;
char *what;
GtkDialog *gd;
-
+
#ifdef MALLOC_CHECK
checkmem(m);
checkmem(m->cancel);
checkmem(m->priv);
#endif
-
+
/* don't report any errors if we are not in interactive mode */
if (!mail_session_get_interactive ())
return;
-
+
if (!camel_exception_is_set(&m->ex)
|| m->ex.id == CAMEL_EXCEPTION_USER_CANCEL
|| m->ex.id == CAMEL_EXCEPTION_FOLDER_INVALID_UID)
@@ -336,7 +336,7 @@ int mail_msg_active(unsigned int msgid)
int active;
MAIL_MT_LOCK(mail_msg_lock);
- if (msgid == (unsigned int)-1)
+ if (msgid == (unsigned int)-1)
active = g_hash_table_size(mail_msg_active_table) > 0;
else
active = g_hash_table_lookup(mail_msg_active_table, GINT_TO_POINTER(msgid)) != NULL;
@@ -542,7 +542,7 @@ mail_msg_destroy(EThread *e, EMsg *msg, void *data)
checkmem(m);
checkmem(m->cancel);
checkmem(m->priv);
-#endif
+#endif
mail_msg_free(m);
}
@@ -734,7 +734,7 @@ int mail_async_event_emit(MailAsyncEvent *ea, mail_async_event_t type, MailAsync
m->ea = ea;
m->type = type;
m->have_thread = FALSE;
-
+
id = m->msg.seq;
g_mutex_lock(ea->lock);
ea->tasks = g_slist_prepend(ea->tasks, m);
@@ -881,7 +881,7 @@ void *mail_call_main(mail_call_t type, MailMainFunc func, ...)
ret = m->ret;
mail_msg_free(m);
-
+
return ret;
}
@@ -946,20 +946,20 @@ static void do_op_status(struct _mail_msg *mm)
struct _mail_msg_priv *data;
char *out, *p, *o, c;
int pc;
-
+
g_return_if_fail (pthread_equal(mail_gui_thread, pthread_self ()));
-
+
MAIL_MT_LOCK (mail_msg_lock);
-
+
msg = g_hash_table_lookup (mail_msg_active_table, m->data);
if (msg == NULL) {
MAIL_MT_UNLOCK (mail_msg_lock);
return;
}
-
+
data = msg->priv;
-
+
out = alloca (strlen (m->what) * 2 + 1);
o = out;
p = m->what;
@@ -969,22 +969,22 @@ static void do_op_status(struct _mail_msg *mm)
*o++ = c;
}
*o = 0;
-
+
pc = m->pc;
-
+
if (data->activity_id == 0) {
char *what;
-
+
/* its being created/removed? well leave it be */
if (data->activity_state == 1 || data->activity_state == 3) {
MAIL_MT_UNLOCK (mail_msg_lock);
return;
} else {
data->activity_state = 1;
-
+
if (progress_icon == NULL)
progress_icon = e_icon_factory_get_icon ("mail-unread", E_ICON_SIZE_MENU);
-
+
MAIL_MT_UNLOCK (mail_msg_lock);
if (msg->ops->describe_msg)
what = msg->ops->describe_msg (msg, FALSE);
@@ -993,11 +993,11 @@ static void do_op_status(struct _mail_msg *mm)
/* uncommenting because message is not very useful for a user, see bug 271734*/
else {
what = g_strdup("");
- }
-
+ }
+
data->activity_id = e_activity_handler_operation_started (activity_handler, "evolution-mail", progress_icon, what, TRUE);
-
+
g_free (what);
MAIL_MT_LOCK (mail_msg_lock);
if (data->activity_state == 3) {
@@ -1011,7 +1011,7 @@ static void do_op_status(struct _mail_msg *mm)
camel_exception_clear (&msg->ex);
g_free (msg->priv);
g_free (msg);
-
+
if (activity_id != 0)
mail_async_event_emit (mail_async_event, MAIL_ASYNC_GUI, (MailAsyncFunc) end_event_callback,
NULL, GINT_TO_POINTER (activity_id), NULL);
@@ -1048,7 +1048,7 @@ static void
mail_operation_status (struct _CamelOperation *op, const char *what, int pc, void *data)
{
struct _op_status_msg *m;
-
+
d(printf("got operation statys: %s %d%%\n", what, pc));
m = mail_msg_new(&op_status_op, NULL, sizeof(*m));
@@ -1073,10 +1073,10 @@ static void
set_stop (int sensitive)
{
static int last = FALSE;
-
+
if (last == sensitive)
return;
-
+
/*bonobo_ui_component_set_prop (uic, "/commands/MailStop", "sensitive", sensitive ? "1" : "0", NULL);*/
last = sensitive;
}
diff --git a/mail/mail-ops.c b/mail/mail-ops.c
index f322c02e03..6d02a3108d 100644
--- a/mail/mail-ops.c
+++ b/mail/mail-ops.c
@@ -1,7 +1,7 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/* mail-ops.c: callbacks for the mail toolbar/menus */
-/*
+/*
* Authors: Dan Winship <danw@ximian.com>
* Jeffrey Stedfast <fejj@ximian.com>
* Peter Williams <peterw@ximian.com>
@@ -9,8 +9,8 @@
*
* Copyright 2000,2001 Ximian, Inc. (www.ximian.com)
*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
* License as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
@@ -70,13 +70,13 @@
#include "mail-vfolder.h"
#define w(x)
-#define d(x)
+#define d(x)
/* used for both just filtering a folder + uid's, and for filtering a whole folder */
/* used both for fetching mail, and for filtering mail */
struct _filter_mail_msg {
struct _mail_msg msg;
-
+
CamelFolder *source_folder; /* where they come from */
GPtrArray *source_uids; /* uids to copy, or NULL == copy all */
CamelUIDCache *cache; /* UID cache if we are to cache the uids, NULL otherwise */
@@ -113,41 +113,41 @@ em_filter_folder_element_filter (struct _mail_msg *mm)
struct _filter_mail_msg *m = (struct _filter_mail_msg *)mm;
CamelFolder *folder;
GPtrArray *uids, *folder_uids = NULL;
-
+
if (m->cancel)
camel_operation_register (m->cancel);
-
+
folder = m->source_folder;
-
+
if (folder == NULL || camel_folder_get_message_count (folder) == 0) {
if (m->cancel)
camel_operation_unregister (m->cancel);
return;
}
-
+
if (m->destination) {
camel_folder_freeze (m->destination);
camel_filter_driver_set_default_folder (m->driver, m->destination);
}
-
+
camel_folder_freeze (folder);
-
+
if (m->source_uids)
uids = m->source_uids;
else
folder_uids = uids = camel_folder_get_uids (folder);
-
+
camel_filter_driver_filter_folder (m->driver, folder, m->cache, uids, m->delete, &mm->ex);
camel_filter_driver_flush (m->driver, &mm->ex);
-
+
if (folder_uids)
camel_folder_free_uids (folder, folder_uids);
-
+
/* sync our source folder */
if (!m->cache)
camel_folder_sync (folder, FALSE, camel_exception_is_set (&mm->ex) ? NULL : &mm->ex);
camel_folder_thaw (folder);
-
+
if (m->destination)
camel_folder_thaw (m->destination);
@@ -155,7 +155,7 @@ em_filter_folder_element_filter (struct _mail_msg *mm)
see also fetch_mail_fetch() below */
camel_object_unref(m->driver);
m->driver = NULL;
-
+
if (m->cancel)
camel_operation_unregister (m->cancel);
}
@@ -169,22 +169,22 @@ static void
em_filter_folder_element_free (struct _mail_msg *mm)
{
struct _filter_mail_msg *m = (struct _filter_mail_msg *)mm;
-
+
if (m->source_folder)
camel_object_unref (m->source_folder);
-
+
if (m->source_uids)
em_utils_uids_free (m->source_uids);
-
+
if (m->cancel)
camel_operation_unref (m->cancel);
-
+
if (m->destination)
camel_object_unref (m->destination);
-
+
if (m->driver)
camel_object_unref (m->driver);
-
+
mail_session_flush_filter_log ();
}
@@ -201,7 +201,7 @@ mail_filter_folder (CamelFolder *source_folder, GPtrArray *uids,
CamelOperation *cancel)
{
struct _filter_mail_msg *m;
-
+
m = mail_msg_new (&em_filter_folder_element_op, NULL, sizeof (*m));
m->source_folder = source_folder;
camel_object_ref (source_folder);
@@ -212,15 +212,15 @@ mail_filter_folder (CamelFolder *source_folder, GPtrArray *uids,
m->cancel = cancel;
camel_operation_ref (cancel);
}
-
+
m->driver = camel_session_get_filter_driver (session, type, NULL);
-
+
if (!notify) {
/* FIXME: have a #define NOTIFY_FILTER_NAME macro? */
/* the filter name has to stay in sync with mail-session::get_filter_driver */
camel_filter_driver_remove_rule_by_name (m->driver, "new-mail-notification");
}
-
+
e_thread_put (mail_thread_new, (EMsg *)m);
}
@@ -246,17 +246,17 @@ uid_cachename_hack (CamelStore *store)
CamelURL *url = CAMEL_SERVICE (store)->url;
char *encoded_url, *filename;
const char *evolution_dir;
-
+
encoded_url = g_strdup_printf ("%s%s%s@%s", url->user,
url->authmech ? ";auth=" : "",
url->authmech ? url->authmech : "",
url->host);
e_filename_make_safe (encoded_url);
-
+
evolution_dir = mail_component_peek_base_directory (mail_component_peek ());
filename = g_build_filename (evolution_dir, "mail", "pop", encoded_url, "uid-cache", NULL);
g_free (encoded_url);
-
+
return filename;
}
@@ -275,7 +275,7 @@ fetch_mail_fetch (struct _mail_msg *mm)
if (m->cancel)
camel_operation_register (m->cancel);
-
+
if ((fm->destination = mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_LOCAL_INBOX)) == NULL)
goto fail;
camel_object_ref(fm->destination);
@@ -284,33 +284,33 @@ fetch_mail_fetch (struct _mail_msg *mm)
access thingy, right? problem is matching raw messages to uid's etc. */
if (!strncmp (m->source_uri, "mbox:", 5)) {
char *path = mail_tool_do_movemail (m->source_uri, &mm->ex);
-
+
if (path && !camel_exception_is_set (&mm->ex)) {
camel_folder_freeze (fm->destination);
camel_filter_driver_set_default_folder (fm->driver, fm->destination);
camel_filter_driver_filter_mbox (fm->driver, path, m->source_uri, &mm->ex);
camel_folder_thaw (fm->destination);
-
+
if (!camel_exception_is_set (&mm->ex))
g_unlink (path);
}
g_free (path);
} else {
CamelFolder *folder = fm->source_folder = mail_tool_get_inbox (m->source_uri, &mm->ex);
-
+
if (folder) {
/* this handles 'keep on server' stuff, if we have any new uid's to copy
across, we need to copy them to a new array 'cause of the way fetch_mail_free works */
CamelUIDCache *cache = NULL;
char *cachename;
-
+
cachename = uid_cachename_hack (folder->parent_store);
cache = camel_uid_cache_new (cachename);
g_free (cachename);
-
+
if (cache) {
GPtrArray *folder_uids, *cache_uids, *uids;
-
+
folder_uids = camel_folder_get_uids (folder);
cache_uids = camel_uid_cache_get_new_uids (cache, folder_uids);
if (cache_uids) {
@@ -320,10 +320,10 @@ fetch_mail_fetch (struct _mail_msg *mm)
for (i = 0; i < cache_uids->len; i++)
uids->pdata[i] = g_strdup (cache_uids->pdata[i]);
camel_uid_cache_free_uids (cache_uids);
-
+
fm->cache = cache;
em_filter_folder_element_filter (mm);
-
+
/* need to uncancel so writes/etc. don't fail */
if (mm->ex.id == CAMEL_EXCEPTION_USER_CANCEL)
camel_operation_uncancel(NULL);
@@ -350,7 +350,7 @@ fetch_mail_fetch (struct _mail_msg *mm)
} else {
em_filter_folder_element_filter (mm);
}
-
+
/* we unref the source folder here since we
may now block in finalize (we try to
disconnect cleanly) */
@@ -358,10 +358,10 @@ fetch_mail_fetch (struct _mail_msg *mm)
fm->source_folder = NULL;
}
}
-fail:
+fail:
if (m->cancel)
camel_operation_unregister (m->cancel);
-
+
/* we unref this here as it may have more work to do (syncing
folders and whatnot) before we are really done */
/* should this be cancellable too? (i.e. above unregister above) */
@@ -384,7 +384,7 @@ static void
fetch_mail_free (struct _mail_msg *mm)
{
struct _fetch_mail_msg *m = (struct _fetch_mail_msg *)mm;
-
+
g_free (m->source_uri);
if (m->cancel)
camel_operation_unref (m->cancel);
@@ -408,7 +408,7 @@ mail_fetch_mail (const char *source, int keep, const char *type, CamelOperation
{
struct _fetch_mail_msg *m;
struct _filter_mail_msg *fm;
-
+
m = mail_msg_new (&fetch_mail_op, NULL, sizeof (*m));
fm = (struct _filter_mail_msg *)m;
m->source_uri = g_strdup (source);
@@ -425,7 +425,7 @@ mail_fetch_mail (const char *source, int keep, const char *type, CamelOperation
camel_filter_driver_set_folder_func (fm->driver, get_folder, get_data);
if (status)
camel_filter_driver_set_status_func (fm->driver, status, status_data);
-
+
e_thread_put (mail_thread_new, (EMsg *)m);
}
@@ -475,19 +475,19 @@ mail_send_message(CamelFolder *queue, const char *uid, const char *destination,
tmp = camel_header_raw_find(&xev, "X-Evolution-Account", NULL);
if (tmp) {
char *name;
-
+
name = g_strstrip(g_strdup(tmp));
if ((account = mail_config_get_account_by_uid(name))
/* 'old' x-evolution-account stored the name, how silly */
|| (account = mail_config_get_account_by_name(name))) {
if (account->transport && account->transport->url)
transport_url = g_strdup (account->transport->url);
-
+
sent_folder_uri = g_strdup (account->sent_folder_uri);
}
g_free(name);
}
-
+
if (!account) {
/* default back to these headers */
tmp = camel_header_raw_find(&xev, "X-Evolution-Transport", NULL);
@@ -508,11 +508,11 @@ mail_send_message(CamelFolder *queue, const char *uid, const char *destination,
iaddr = camel_mime_message_get_from (message);
camel_address_copy (from, CAMEL_ADDRESS (iaddr));
}
-
+
recipients = (CamelAddress *) camel_internet_address_new ();
for (i = 0; i < 3; i++) {
const char *type;
-
+
type = resent_from ? resent_recipients[i] : normal_recipients[i];
iaddr = camel_mime_message_get_recipients (message, type);
camel_address_cat (recipients, CAMEL_ADDRESS (iaddr));
@@ -553,25 +553,25 @@ mail_send_message(CamelFolder *queue, const char *uid, const char *destination,
/* post process */
mail_tool_restore_xevolution_headers (message, xev);
-
+
if (driver) {
camel_filter_driver_filter_message (driver, message, info,
NULL, NULL, NULL, "", ex);
-
+
if (camel_exception_is_set (ex)) {
if (camel_exception_get_id (ex) == CAMEL_EXCEPTION_USER_CANCEL)
goto exit;
-
+
/* sending mail, filtering failed */
g_string_append_printf (err, _("Failed to apply outgoing filters: %s"),
camel_exception_get_description (ex));
}
}
-
+
camel_exception_clear (ex);
if (xport == NULL
- || !( ((CamelService *)xport)->provider->flags & CAMEL_PROVIDER_DISABLE_SENT_FOLDER)) {
+ || !( ((CamelService *)xport)->provider->flags & CAMEL_PROVIDER_DISABLE_SENT_FOLDER)) {
if (sent_folder_uri) {
folder = mail_tool_uri_to_folder (sent_folder_uri, 0, ex);
if (camel_exception_is_set(ex)) {
@@ -583,7 +583,7 @@ mail_send_message(CamelFolder *queue, const char *uid, const char *destination,
}
if (!folder) {
- folder = mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_SENT);
+ folder = mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_SENT);
camel_object_ref(folder);
}
@@ -633,7 +633,7 @@ mail_send_message(CamelFolder *queue, const char *uid, const char *destination,
/* set the culmulative exception report */
camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM, err->str);
}
-
+
exit:
if (folder) {
camel_folder_sync(folder, FALSE, NULL);
@@ -678,7 +678,7 @@ report_status (struct _send_queue_msg *m, enum camel_filter_status_t status, int
{
va_list ap;
char *str;
-
+
if (m->status) {
va_start (ap, desc);
str = g_strdup_vprintf (desc, ap);
@@ -696,16 +696,16 @@ send_queue_send(struct _mail_msg *mm)
GPtrArray *uids, *send_uids = NULL;
CamelException ex;
int i, j;
-
+
d(printf("sending queue\n"));
-
+
if (!(uids = camel_folder_get_uids (m->queue)))
return;
send_uids = g_ptr_array_sized_new (uids->len);
for (i = 0, j = 0; i < uids->len; i++) {
CamelMessageInfo *info;
-
+
info = camel_folder_get_message_info (m->queue, uids->pdata[i]);
if (info) {
if ((camel_message_info_flags(info) & CAMEL_MESSAGE_DELETED) == 0)
@@ -713,7 +713,7 @@ send_queue_send(struct _mail_msg *mm)
camel_folder_free_message_info(m->queue, info);
}
}
-
+
send_uids->len = j;
if (send_uids->len == 0) {
/* nothing to send */
@@ -721,10 +721,10 @@ send_queue_send(struct _mail_msg *mm)
g_ptr_array_free (send_uids, TRUE);
return;
}
-
+
if (m->cancel)
camel_operation_register (m->cancel);
-
+
camel_exception_init (&ex);
/* NB: This code somewhat abuses the 'exception' stuff. Apart from fatal problems, it is also
@@ -732,9 +732,9 @@ send_queue_send(struct _mail_msg *mm)
for (i = 0, j = 0; i < send_uids->len; i++) {
int pc = (100 * i) / send_uids->len;
-
+
report_status (m, CAMEL_FILTER_STATUS_START, pc, _("Sending message %d of %d"), i+1, send_uids->len);
-
+
mail_send_message (m->queue, send_uids->pdata[i], m->destination, m->driver, &ex);
if (camel_exception_is_set (&ex)) {
if (ex.id != CAMEL_EXCEPTION_USER_CANCEL) {
@@ -744,7 +744,7 @@ send_queue_send(struct _mail_msg *mm)
else
camel_exception_xfer (&mm->ex, &ex);
camel_exception_clear (&ex);
-
+
/* keep track of the number of failures */
j++;
} else {
@@ -754,16 +754,16 @@ send_queue_send(struct _mail_msg *mm)
}
}
}
-
+
j += (send_uids->len - i);
-
+
if (j > 0)
report_status (m, CAMEL_FILTER_STATUS_END, 100, _("Failed to send %d of %d messages"), j, send_uids->len);
else if (mm->ex.id == CAMEL_EXCEPTION_USER_CANCEL)
report_status (m, CAMEL_FILTER_STATUS_END, 100, _("Canceled."));
else
report_status (m, CAMEL_FILTER_STATUS_END, 100, _("Complete."));
-
+
if (m->driver) {
camel_object_unref (m->driver);
m->driver = NULL;
@@ -774,12 +774,12 @@ send_queue_send(struct _mail_msg *mm)
camel_folder_sync (m->queue, TRUE, &ex);
camel_exception_clear (&ex);
-
+
if (sent_folder) {
camel_folder_sync (sent_folder, FALSE, &ex);
camel_exception_clear (&ex);
}
-
+
if (m->cancel)
camel_operation_unregister (m->cancel);
}
@@ -797,7 +797,7 @@ static void
send_queue_free(struct _mail_msg *mm)
{
struct _send_queue_msg *m = (struct _send_queue_msg *)mm;
-
+
if (m->driver)
camel_object_unref(m->driver);
camel_object_unref(m->queue);
@@ -903,10 +903,10 @@ mail_append_mail (CamelFolder *folder, CamelMimeMessage *message, CamelMessageIn
void *data)
{
struct _append_msg *m;
-
+
g_return_if_fail (CAMEL_IS_FOLDER (folder));
g_return_if_fail (CAMEL_IS_MIME_MESSAGE (message));
-
+
if (!camel_medium_get_header (CAMEL_MEDIUM (message), "X-Mailer"))
camel_medium_set_header (CAMEL_MEDIUM (message), "X-Mailer",
"Evolution " VERSION SUB_VERSION " " VERSION_COMMENT);
@@ -917,10 +917,10 @@ mail_append_mail (CamelFolder *folder, CamelMimeMessage *message, CamelMessageIn
m->message = message;
camel_object_ref(message);
m->info = info;
-
+
m->done = done;
m->data = data;
-
+
e_thread_put (mail_thread_new, (EMsg *)m);
}
@@ -934,7 +934,7 @@ struct _transfer_msg {
gboolean delete;
char *dest_uri;
guint32 dest_flags;
-
+
void (*done)(gboolean ok, void *data);
void *data;
};
@@ -946,7 +946,7 @@ transfer_messages_desc (struct _mail_msg *mm, int done)
return g_strdup_printf(m->delete?_("Moving messages to %s"):_("Copying messages to %s"),
m->dest_uri);
-
+
}
static void
@@ -976,7 +976,7 @@ transfer_messages_transfer (struct _mail_msg *mm)
int i;
for (i = 0; i < m->uids->len; i++)
- camel_folder_set_message_flags (m->source, m->uids->pdata[i],
+ camel_folder_set_message_flags (m->source, m->uids->pdata[i],
CAMEL_MESSAGE_SEEN, CAMEL_MESSAGE_SEEN);
}
@@ -990,7 +990,7 @@ static void
transfer_messages_transferred (struct _mail_msg *mm)
{
struct _transfer_msg *m = (struct _transfer_msg *)mm;
-
+
if (m->done)
m->done (!camel_exception_is_set (&mm->ex), m->data);
}
@@ -999,7 +999,7 @@ static void
transfer_messages_free (struct _mail_msg *mm)
{
struct _transfer_msg *m = (struct _transfer_msg *)mm;
-
+
camel_object_unref (m->source);
g_free (m->dest_uri);
em_utils_uids_free (m->uids);
@@ -1021,11 +1021,11 @@ mail_transfer_messages (CamelFolder *source, GPtrArray *uids,
void *data)
{
struct _transfer_msg *m;
-
+
g_return_if_fail (CAMEL_IS_FOLDER (source));
g_return_if_fail (uids != NULL);
g_return_if_fail (dest_uri != NULL);
-
+
m = mail_msg_new(&transfer_messages_op, NULL, sizeof(*m));
m->source = source;
camel_object_ref (source);
@@ -1035,7 +1035,7 @@ mail_transfer_messages (CamelFolder *source, GPtrArray *uids,
m->dest_flags = dest_flags;
m->done = done;
m->data = data;
-
+
e_thread_put(mail_thread_queued_slow, (EMsg *)m);
}
@@ -1067,7 +1067,7 @@ get_folderinfo_get (struct _mail_msg *mm)
{
struct _get_folderinfo_msg *m = (struct _get_folderinfo_msg *)mm;
guint32 flags = CAMEL_STORE_FOLDER_INFO_RECURSIVE|CAMEL_STORE_FOLDER_INFO_FAST | CAMEL_STORE_FOLDER_INFO_SUBSCRIBED;
-
+
m->info = camel_store_get_folder_info (m->store, NULL, flags, &mm->ex);
}
@@ -1075,16 +1075,16 @@ static void
get_folderinfo_got (struct _mail_msg *mm)
{
struct _get_folderinfo_msg *m = (struct _get_folderinfo_msg *)mm;
-
+
if (!m->info && camel_exception_is_set (&mm->ex)) {
char *url;
-
+
url = camel_service_get_url (CAMEL_SERVICE (m->store));
w(g_warning ("Error getting folder info from store at %s: %s",
url, camel_exception_get_description (&mm->ex)));
g_free (url);
}
-
+
if (m->done)
m->done (m->store, m->info, m->data);
}
@@ -1197,7 +1197,7 @@ mail_build_attachment(CamelFolder *folder, GPtrArray *uids,
struct _get_folder_msg {
struct _mail_msg msg;
-
+
char *uri;
guint32 flags;
CamelFolder *folder;
@@ -1209,7 +1209,7 @@ static char *
get_folder_desc (struct _mail_msg *mm, int done)
{
struct _get_folder_msg *m = (struct _get_folder_msg *)mm;
-
+
return g_strdup_printf(_("Opening folder %s"), m->uri);
}
@@ -1217,7 +1217,7 @@ static void
get_folder_get (struct _mail_msg *mm)
{
struct _get_folder_msg *m = (struct _get_folder_msg *)mm;
-
+
m->folder = mail_tool_uri_to_folder (m->uri, m->flags, &mm->ex);
}
@@ -1225,7 +1225,7 @@ static void
get_folder_got (struct _mail_msg *mm)
{
struct _get_folder_msg *m = (struct _get_folder_msg *)mm;
-
+
if (m->done)
m->done (m->uri, m->folder, m->data);
}
@@ -1234,7 +1234,7 @@ static void
get_folder_free (struct _mail_msg *mm)
{
struct _get_folder_msg *m = (struct _get_folder_msg *)mm;
-
+
g_free (m->uri);
if (m->folder)
camel_object_unref (m->folder);
@@ -1254,13 +1254,13 @@ mail_get_folder (const char *uri, guint32 flags,
{
struct _get_folder_msg *m;
int id;
-
+
m = mail_msg_new(&get_folder_op, NULL, sizeof(*m));
m->uri = g_strdup (uri);
m->flags = flags;
m->data = data;
m->done = done;
-
+
id = m->msg.seq;
e_thread_put(thread, (EMsg *)m);
return id;
@@ -1281,7 +1281,7 @@ static char *
get_store_desc (struct _mail_msg *mm, int done)
{
struct _get_store_msg *m = (struct _get_store_msg *)mm;
-
+
return g_strdup_printf(_("Opening store %s"), m->uri);
}
@@ -1289,7 +1289,7 @@ static void
get_store_get (struct _mail_msg *mm)
{
struct _get_store_msg *m = (struct _get_store_msg *)mm;
-
+
/*camel_session_get_store connects us, which we don't want to do on startup. */
m->store = (CamelStore *) camel_session_get_service (session, m->uri,
@@ -1310,7 +1310,7 @@ static void
get_store_free (struct _mail_msg *mm)
{
struct _get_store_msg *m = (struct _get_store_msg *)mm;
-
+
g_free (m->uri);
if (m->store)
camel_object_unref (m->store);
@@ -1328,7 +1328,7 @@ mail_get_store (const char *uri, CamelOperation *op, void (*done) (char *uri, Ca
{
struct _get_store_msg *m;
int id;
-
+
m = mail_msg_new (&get_store_op, NULL, sizeof (*m));
if (op) {
camel_operation_unref(m->msg.cancel);
@@ -1338,7 +1338,7 @@ mail_get_store (const char *uri, CamelOperation *op, void (*done) (char *uri, Ca
m->uri = g_strdup (uri);
m->data = data;
m->done = done;
-
+
id = m->msg.seq;
e_thread_put (mail_thread_new, (EMsg *)m);
return id;
@@ -1359,7 +1359,7 @@ static char *
remove_folder_desc (struct _mail_msg *mm, int done)
{
struct _remove_folder_msg *m = (struct _remove_folder_msg *)mm;
-
+
return g_strdup_printf (_("Removing folder %s"), m->uri);
}
@@ -1371,15 +1371,15 @@ remove_folder_get (struct _mail_msg *mm)
CamelFolder *folder;
GPtrArray *uids;
int i;
-
+
m->removed = FALSE;
-
+
folder = mail_tool_uri_to_folder (m->uri, 0, &mm->ex);
if (!folder)
return;
-
+
store = folder->parent_store;
-
+
/* Delete every message in this folder, then expunge it */
uids = camel_folder_get_uids (folder);
camel_folder_freeze(folder);
@@ -1388,11 +1388,11 @@ remove_folder_get (struct _mail_msg *mm)
camel_folder_sync (folder, TRUE, NULL);
camel_folder_thaw(folder);
camel_folder_free_uids (folder, uids);
-
+
/* if the store supports subscriptions, unsubscribe from this folder... */
if (camel_store_supports_subscriptions (store))
camel_store_unsubscribe_folder (store, folder->full_name, NULL);
-
+
/* Then delete the folder from the store */
camel_store_delete_folder (store, folder->full_name, &mm->ex);
m->removed = !camel_exception_is_set (&mm->ex);
@@ -1416,7 +1416,7 @@ static void
remove_folder_free (struct _mail_msg *mm)
{
struct _remove_folder_msg *m = (struct _remove_folder_msg *)mm;
-
+
g_free (m->uri);
}
@@ -1431,12 +1431,12 @@ void
mail_remove_folder (const char *uri, void (*done) (char *uri, gboolean removed, void *data), void *data)
{
struct _remove_folder_msg *m;
-
+
m = mail_msg_new (&remove_folder_op, NULL, sizeof (*m));
m->uri = g_strdup (uri);
m->data = data;
m->done = done;
-
+
e_thread_put (mail_thread_new, (EMsg *)m);
}
@@ -1454,7 +1454,7 @@ static char *sync_folder_desc(struct _mail_msg *mm, int done)
{
struct _sync_folder_msg *m = (struct _sync_folder_msg *)mm;
- return g_strdup_printf (_("Storing folder \'%s\'"),
+ return g_strdup_printf (_("Storing folder \'%s\'"),
camel_folder_get_full_name (m->folder));
}
@@ -1659,7 +1659,7 @@ static char *empty_trash_desc(struct _mail_msg *mm, int done)
#if 0
struct _empty_trash_msg *m = (struct _empty_trash_msg *)mm;
- return g_strdup_printf (_("Emptying trash in \'%s\'"),
+ return g_strdup_printf (_("Emptying trash in \'%s\'"),
m->account ? m->account->name : _("Local Folders"));
#else
return g_strdup(_("Expunging folder"));
@@ -1672,7 +1672,7 @@ static void empty_trash_empty(struct _mail_msg *mm)
const char *evolution_dir;
CamelFolder *trash;
char *uri;
-
+
if (m->account) {
trash = mail_tool_get_trash (m->account->source->url, FALSE, &mm->ex);
} else {
@@ -1681,10 +1681,10 @@ static void empty_trash_empty(struct _mail_msg *mm)
trash = mail_tool_get_trash (uri, TRUE, &mm->ex);
g_free (uri);
}
-
+
if (trash)
camel_folder_expunge (trash, &mm->ex);
-
+
camel_object_unref (trash);
}
@@ -1764,11 +1764,11 @@ static void get_message_got(struct _mail_msg *mm)
static void get_message_free(struct _mail_msg *mm)
{
struct _get_message_msg *m = (struct _get_message_msg *)mm;
-
+
g_free (m->uid);
camel_object_unref (m->folder);
camel_operation_unref (m->cancel);
-
+
if (m->message)
camel_object_unref (m->message);
}
@@ -1786,7 +1786,7 @@ mail_get_message(CamelFolder *folder, const char *uid, void (*done) (CamelFolder
void *data, EThread *thread)
{
struct _get_message_msg *m;
-
+
m = mail_msg_new(&get_message_op, NULL, sizeof(*m));
m->folder = folder;
camel_object_ref(folder);
@@ -1794,7 +1794,7 @@ mail_get_message(CamelFolder *folder, const char *uid, void (*done) (CamelFolder
m->data = data;
m->done = (void (*) (CamelFolder *, const char *, CamelMimeMessage *, void *)) done;
m->cancel = camel_operation_new(NULL, NULL);
-
+
e_thread_put(thread, (EMsg *)m);
}
@@ -1824,7 +1824,7 @@ mail_get_messagex(CamelFolder *folder, const char *uid, void (*done) (CamelFolde
void *data, EThread *thread)
{
struct _get_message_msg *m;
-
+
m = mail_msg_new(&get_messagex_op, NULL, sizeof(*m));
m->folder = folder;
camel_object_ref(folder);
@@ -1832,7 +1832,7 @@ mail_get_messagex(CamelFolder *folder, const char *uid, void (*done) (CamelFolde
m->data = data;
m->done = (void (*) (CamelFolder *, const char *, CamelMimeMessage *, void *)) done;
m->cancel = camel_operation_new(NULL, NULL);
-
+
e_thread_put(thread, (EMsg *)m);
}
@@ -1854,7 +1854,7 @@ static char * get_messages_desc(struct _mail_msg *mm, int done)
struct _get_messages_msg *m = (struct _get_messages_msg *)mm;
return g_strdup_printf(ngettext("Retrieving %d message",
- "Retrieving %d messages", m->uids->len),
+ "Retrieving %d messages", m->uids->len),
m->uids->len);
}
@@ -1888,7 +1888,7 @@ static void get_messages_free(struct _mail_msg *mm)
{
struct _get_messages_msg *m = (struct _get_messages_msg *)mm;
int i;
-
+
em_utils_uids_free (m->uids);
for (i=0;i<m->messages->len;i++) {
if (m->messages->pdata[i])
@@ -1939,8 +1939,8 @@ static char *save_messages_desc(struct _mail_msg *mm, int done)
{
struct _save_messages_msg *m = (struct _save_messages_msg *)mm;
- return g_strdup_printf(ngettext("Saving %d message",
- "Saving %d messsages", m->uids->len),
+ return g_strdup_printf(ngettext("Saving %d message",
+ "Saving %d messsages", m->uids->len),
m->uids->len);
}
@@ -1949,16 +1949,16 @@ save_prepare_part (CamelMimePart *mime_part)
{
CamelDataWrapper *wrapper;
int parts, i;
-
+
wrapper = camel_medium_get_content_object (CAMEL_MEDIUM (mime_part));
if (!wrapper)
return;
-
+
if (CAMEL_IS_MULTIPART (wrapper)) {
parts = camel_multipart_get_number (CAMEL_MULTIPART (wrapper));
for (i = 0; i < parts; i++) {
CamelMimePart *part = camel_multipart_get_part (CAMEL_MULTIPART (wrapper), i);
-
+
save_prepare_part (part);
}
} else {
@@ -1967,7 +1967,7 @@ save_prepare_part (CamelMimePart *mime_part)
save_prepare_part (CAMEL_MIME_PART (wrapper));
} else {
CamelContentType *type;
-
+
/* We want to save textual parts as 8bit instead of encoded */
type = camel_data_wrapper_get_mime_type_field (wrapper);
if (camel_content_type_is (type, "text", "*"))
@@ -1985,13 +1985,13 @@ save_messages_save (struct _mail_msg *mm)
CamelStream *stream;
int i;
char *from;
-
+
stream = camel_stream_vfs_new_with_uri (m->path, O_WRONLY | O_CREAT | O_TRUNC, 0666);
from_filter = camel_mime_filter_from_new();
filtered_stream = camel_stream_filter_new_with_stream(stream);
camel_stream_filter_add(filtered_stream, (CamelMimeFilter *)from_filter);
camel_object_unref(from_filter);
-
+
for (i=0; i<m->uids->len; i++) {
CamelMimeMessage *message;
int pc = ((i+1) * 100) / m->uids->len;
@@ -2000,9 +2000,9 @@ save_messages_save (struct _mail_msg *mm)
camel_operation_progress(mm->cancel, pc);
if (message == NULL)
break;
-
+
save_prepare_part (CAMEL_MIME_PART (message));
-
+
/* we need to flush after each stream write since we are writing to the same fd */
from = camel_mime_message_build_mbox_from(message);
if (camel_stream_write_string(stream, from) == -1
@@ -2034,7 +2034,7 @@ static void save_messages_saved(struct _mail_msg *mm)
static void save_messages_free(struct _mail_msg *mm)
{
struct _save_messages_msg *m = (struct _save_messages_msg *)mm;
-
+
em_utils_uids_free (m->uids);
camel_object_unref(m->folder);
g_free(m->path);
@@ -2091,7 +2091,7 @@ save_part_save (struct _mail_msg *mm)
struct _save_part_msg *m = (struct _save_part_msg *)mm;
CamelDataWrapper *content;
CamelStream *stream;
-
+
if(!m->readonly){
if (!(stream = camel_stream_vfs_new_with_uri (m->path, O_WRONLY | O_CREAT | O_TRUNC, 0644))) {
camel_exception_setv (&mm->ex, CAMEL_EXCEPTION_SYSTEM,
@@ -2105,15 +2105,15 @@ save_part_save (struct _mail_msg *mm)
m->path, g_strerror (errno));
return;
}
-
+
content = camel_medium_get_content_object (CAMEL_MEDIUM (m->part));
-
+
if (camel_data_wrapper_decode_to_stream (content, stream) == -1
|| camel_stream_flush (stream) == -1)
camel_exception_setv (&mm->ex, CAMEL_EXCEPTION_SYSTEM,
_("Could not write data: %s"),
g_strerror (errno));
-
+
camel_object_unref (stream);
}
@@ -2121,7 +2121,7 @@ static void
save_part_saved (struct _mail_msg *mm)
{
struct _save_part_msg *m = (struct _save_part_msg *)mm;
-
+
if (m->done)
m->done (m->part, m->path, !camel_exception_is_set (&mm->ex), m->data);
}
@@ -2154,10 +2154,10 @@ mail_save_part (CamelMimePart *part, const char *path,
m->data = data;
m->done = done;
m->readonly = readonly;
-
+
id = m->msg.seq;
e_thread_put (mail_thread_new, (EMsg *)m);
-
+
return id;
}
@@ -2422,7 +2422,7 @@ mail_execute_shell_command (CamelFilterDriver *driver, int argc, char **argv, vo
{
if (argc <= 0)
return;
-
+
gnome_execute_async_fds (NULL, argc, argv, TRUE);
}
@@ -2490,13 +2490,13 @@ mail_check_service(const char *url, CamelProviderType type, void (*done)(const c
{
struct _check_msg *m;
int id;
-
+
m = mail_msg_new (&check_service_op, NULL, sizeof(*m));
m->url = g_strdup(url);
m->type = type;
m->done = done;
m->data = data;
-
+
id = m->msg.seq;
e_thread_put(mail_thread_new, (EMsg *)m);
diff --git a/mail/mail-ops.h b/mail/mail-ops.h
index ba886688c1..18fca3be5c 100644
--- a/mail/mail-ops.h
+++ b/mail/mail-ops.h
@@ -1,14 +1,14 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Authors:
+/*
+ * Authors:
* Peter Williams <peterw@ximian.com>
* Michael Zucchi <notzed@ximian.com>
*
* Copyright 2000, 2001 Ximian, Inc. (www.ximian.com)
*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
* License as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
diff --git a/mail/mail-send-recv.c b/mail/mail-send-recv.c
index 35541673d8..136f9e9051 100644
--- a/mail/mail-send-recv.c
+++ b/mail/mail-send-recv.c
@@ -159,7 +159,7 @@ static struct _send_data *
setup_send_data(void)
{
struct _send_data *data;
-
+
if (send_data == NULL) {
send_data = data = g_malloc0(sizeof(*data));
data->lock = g_mutex_new();
@@ -320,7 +320,7 @@ format_url(const char *internal_url, const char *account_name)
pretty_url = g_strdup_printf("<b>%s (%s)</b>: %s", account_name, url->protocol, url->host);
else if (url->path)
pretty_url = g_strdup_printf("<b>%s (%s)</b>: %s", account_name, url->protocol, url->path);
- else
+ else
pretty_url = g_strdup_printf("<b>%s (%s)</b>", account_name, url->protocol);
}
else {
@@ -328,7 +328,7 @@ format_url(const char *internal_url, const char *account_name)
pretty_url = g_strdup_printf("<b>%s</b>: %s", url->protocol, url->host);
else if (url->path)
pretty_url = g_strdup_printf("<b>%s</b>: %s", url->protocol, url->path);
- else
+ else
pretty_url = g_strdup_printf("<b>%s</b>", url->protocol);
}
camel_url_free(url);
@@ -353,7 +353,7 @@ get_receive_type(const char *url)
if (!provider)
return SEND_INVALID;
-
+
if (provider->object_types[CAMEL_PROVIDER_STORE]) {
if (provider->flags & CAMEL_PROVIDER_IS_STORAGE)
return SEND_UPDATE;
@@ -362,7 +362,7 @@ get_receive_type(const char *url)
} else if (provider->object_types[CAMEL_PROVIDER_TRANSPORT]) {
return SEND_SEND;
}
-
+
return SEND_INVALID;
}
@@ -376,7 +376,7 @@ build_dialog (EAccountList *accounts, CamelFolder *outbox, const char *destinati
struct _send_data *data;
GtkWidget *send_icon;
GtkWidget *recv_icon;
- GtkWidget *scrolled_window;
+ GtkWidget *scrolled_window;
GtkWidget *label;
GtkWidget *status_label;
GtkWidget *progress_bar;
@@ -390,7 +390,7 @@ build_dialog (EAccountList *accounts, CamelFolder *outbox, const char *destinati
gd = (GtkDialog *)(send_recv_dialog = gtk_dialog_new_with_buttons(_("Send & Receive Mail"), NULL, GTK_DIALOG_NO_SEPARATOR, NULL));
gtk_window_set_modal ((GtkWindow *) gd, FALSE);
-
+
gtk_widget_ensure_style ((GtkWidget *)gd);
gtk_container_set_border_width ((GtkContainer *)gd->vbox, 0);
gtk_container_set_border_width ((GtkContainer *)gd->action_area, 6);
@@ -402,34 +402,34 @@ build_dialog (EAccountList *accounts, CamelFolder *outbox, const char *destinati
GTK_STOCK_CANCEL, GTK_ICON_SIZE_BUTTON));
gtk_widget_show (cancel_button);
gtk_dialog_add_action_widget (gd, cancel_button, GTK_RESPONSE_CANCEL);
-
+
icon_list = e_icon_factory_get_icon_list ("mail-send-receive");
if (icon_list) {
gtk_window_set_icon_list (GTK_WINDOW (gd), icon_list);
g_list_foreach (icon_list, (GFunc) g_object_unref, NULL);
g_list_free (icon_list);
}
-
+
num_sources = 0;
-
+
iter = e_list_get_iterator ((EList *) accounts);
while (e_iterator_is_valid (iter)) {
account = (EAccount *) e_iterator_get (iter);
-
+
if (account->source->url)
num_sources++;
-
+
e_iterator_next (iter);
}
-
+
g_object_unref (iter);
-
+
table = gtk_table_new (num_sources, 4, FALSE);
gtk_container_set_border_width (GTK_CONTAINER (table), 6);
gtk_table_set_row_spacings (GTK_TABLE (table), 6);
gtk_table_set_col_spacings (GTK_TABLE (table), 6);
- scrolled_window = gtk_scrolled_window_new (NULL, NULL);
+ scrolled_window = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (
GTK_SCROLLED_WINDOW (scrolled_window),
GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
@@ -437,48 +437,48 @@ build_dialog (EAccountList *accounts, CamelFolder *outbox, const char *destinati
gtk_scrolled_window_add_with_viewport (
GTK_SCROLLED_WINDOW (scrolled_window), table);
gtk_box_pack_start (
- GTK_BOX (gd->vbox), scrolled_window, TRUE, TRUE, 0);
+ GTK_BOX (gd->vbox), scrolled_window, TRUE, TRUE, 0);
gtk_widget_set_size_request (gd->vbox, 600, 200);
- gtk_widget_show (scrolled_window);
+ gtk_widget_show (scrolled_window);
/* must bet setup after send_recv_dialog as it may re-trigger send-recv button */
data = setup_send_data ();
-
+
row = 0;
iter = e_list_get_iterator ((EList *) accounts);
while (e_iterator_is_valid (iter)) {
EAccountService *source;
-
+
account = (EAccount *) e_iterator_get (iter);
-
+
source = account->source;
if (!account->enabled || !source->url) {
e_iterator_next (iter);
continue;
}
-
+
/* see if we have an outstanding download active */
info = g_hash_table_lookup (data->active, source->url);
if (info == NULL) {
send_info_t type;
-
+
type = get_receive_type (source->url);
if (type == SEND_INVALID || type == SEND_SEND) {
e_iterator_next (iter);
continue;
}
-
+
info = g_malloc0 (sizeof (*info));
info->type = type;
-
+
d(printf("adding source %s\n", source->url));
-
+
info->uri = g_strdup (source->url);
info->keep = source->keep_on_server;
info->cancel = camel_operation_new (operation_status, info);
info->state = SEND_ACTIVE;
info->timeout_id = g_timeout_add (STATUS_TIMEOUT, operation_status_timeout, info);
-
+
g_hash_table_insert (data->active, info->uri, info);
list = g_list_prepend (list, info);
} else if (info->progress_bar != NULL) {
@@ -487,7 +487,7 @@ build_dialog (EAccountList *accounts, CamelFolder *outbox, const char *destinati
continue;
} else if (info->timeout_id == 0)
info->timeout_id = g_timeout_add (STATUS_TIMEOUT, operation_status_timeout, info);
-
+
recv_icon = e_icon_factory_get_image (
"mail-inbox", E_ICON_SIZE_LARGE_TOOLBAR);
pretty_url = format_url (source->url, account->name);
@@ -496,9 +496,9 @@ build_dialog (EAccountList *accounts, CamelFolder *outbox, const char *destinati
GTK_LABEL (label), PANGO_ELLIPSIZE_END);
gtk_label_set_markup (GTK_LABEL (label), pretty_url);
g_free (pretty_url);
-
+
progress_bar = gtk_progress_bar_new ();
-
+
cancel_button = gtk_button_new_from_stock (GTK_STOCK_CANCEL);
status_label = gtk_label_new (
@@ -510,7 +510,7 @@ build_dialog (EAccountList *accounts, CamelFolder *outbox, const char *destinati
/* g_object_set(data->label, "bold", TRUE, NULL); */
gtk_misc_set_alignment (GTK_MISC (label), 0, .5);
gtk_misc_set_alignment (GTK_MISC (status_label), 0, .5);
-
+
gtk_table_attach (
GTK_TABLE (table), recv_icon,
0, 1, row, row+2, 0, 0, 0, 0);
@@ -526,43 +526,43 @@ build_dialog (EAccountList *accounts, CamelFolder *outbox, const char *destinati
gtk_table_attach (
GTK_TABLE (table), status_label,
1, 2, row+1, row+2, GTK_EXPAND | GTK_FILL, 0, 0, 0);
-
+
info->progress_bar = progress_bar;
info->status_label = status_label;
info->cancel_button = cancel_button;
info->data = data;
-
+
g_signal_connect (
cancel_button, "clicked",
G_CALLBACK (receive_cancel), info);
e_iterator_next (iter);
row = row + 2;
}
-
+
g_object_unref (iter);
-
+
/* Hook: If some one wants to hook on to the sendreceive dialog, this is the way to go. */
target = em_event_target_new_send_receive (em_event_peek(), table, data, row, EM_EVENT_SEND_RECEIVE);
e_event_emit ((EEvent *)em_event_peek (), "mail.sendreceive", (EEventTarget *) target);
-
+
if (outbox && destination) {
info = g_hash_table_lookup (data->active, SEND_URI_KEY);
if (info == NULL) {
info = g_malloc0 (sizeof (*info));
info->type = SEND_SEND;
d(printf("adding dest %s\n", destination));
-
+
info->uri = g_strdup (destination);
info->keep = FALSE;
info->cancel = camel_operation_new (operation_status, info);
info->state = SEND_ACTIVE;
info->timeout_id = g_timeout_add (STATUS_TIMEOUT, operation_status_timeout, info);
-
+
g_hash_table_insert (data->active, SEND_URI_KEY, info);
list = g_list_prepend (list, info);
} else if (info->timeout_id == 0)
info->timeout_id = g_timeout_add (STATUS_TIMEOUT, operation_status_timeout, info);
-
+
send_icon = e_icon_factory_get_image (
"mail-outbox", E_ICON_SIZE_LARGE_TOOLBAR);
pretty_url = format_url (destination, NULL);
@@ -572,7 +572,7 @@ build_dialog (EAccountList *accounts, CamelFolder *outbox, const char *destinati
gtk_label_set_markup (GTK_LABEL (label), pretty_url);
g_free (pretty_url);
-
+
progress_bar = gtk_progress_bar_new ();
cancel_button = gtk_button_new_from_stock (GTK_STOCK_CANCEL);
@@ -582,7 +582,7 @@ build_dialog (EAccountList *accounts, CamelFolder *outbox, const char *destinati
gtk_misc_set_alignment (GTK_MISC (label), 0, .5);
gtk_misc_set_alignment (GTK_MISC (status_label), 0, .5);
-
+
gtk_table_attach (
GTK_TABLE (table), send_icon,
0, 1, row, row+2, 0, 0, 0, 0);
@@ -598,27 +598,27 @@ build_dialog (EAccountList *accounts, CamelFolder *outbox, const char *destinati
gtk_table_attach (
GTK_TABLE (table), status_label,
1, 2, row+1, row+2, GTK_EXPAND | GTK_FILL, 0, 0, 0);
-
+
info->progress_bar = progress_bar;
info->cancel_button = cancel_button;
info->data = data;
info->status_label = status_label;
-
+
g_signal_connect (
cancel_button, "clicked",
G_CALLBACK (receive_cancel), info);
gtk_widget_show_all (table);
}
-
+
gtk_widget_show (GTK_WIDGET (gd));
-
+
g_signal_connect (gd, "response", G_CALLBACK (dialog_response), data);
-
+
g_object_weak_ref ((GObject *) gd, (GWeakNotify) dialog_destroy_cb, data);
-
+
data->infos = list;
data->gd = gd;
-
+
return data;
}
@@ -752,7 +752,7 @@ receive_get_folder(CamelFilterDriver *d, const char *uri, void *data, CamelExcep
/* we recheck that the folder hasn't snuck in while we were loading it... */
/* and we assume the newer one is the same, but unref the old one anyway */
g_mutex_lock(info->data->lock);
-
+
if (g_hash_table_lookup_extended (info->data->folders, uri, &oldkey, &oldinfoptr)) {
oldinfo = (struct _folder_info *) oldinfoptr;
camel_object_unref(oldinfo->folder);
@@ -764,11 +764,11 @@ receive_get_folder(CamelFilterDriver *d, const char *uri, void *data, CamelExcep
oldinfo->uri = g_strdup(uri);
g_hash_table_insert(info->data->folders, oldinfo->uri, oldinfo);
}
-
+
camel_object_ref (folder);
-
+
g_mutex_unlock(info->data->lock);
-
+
return folder;
}
@@ -885,7 +885,7 @@ static void
receive_update_got_store (char *uri, CamelStore *store, void *data)
{
struct _send_info *info = data;
-
+
if (store) {
mail_note_store(store, info->cancel, receive_update_got_folderinfo, info);
} else {
@@ -901,7 +901,7 @@ mail_send_receive (void)
EAccountList *accounts;
EAccount *account;
GList *scan;
-
+
if (send_recv_dialog != NULL) {
if (GTK_WIDGET_REALIZED(send_recv_dialog)) {
gdk_window_show(send_recv_dialog->window);
@@ -909,14 +909,14 @@ mail_send_receive (void)
}
return send_recv_dialog;
}
-
+
if (!camel_session_is_online (session))
return send_recv_dialog;
-
+
account = mail_config_get_default_account ();
if (!account || !account->transport->url)
return send_recv_dialog;
-
+
accounts = mail_config_get_accounts ();
outbox_folder = mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_OUTBOX);
@@ -924,7 +924,7 @@ mail_send_receive (void)
scan = data->infos;
while (scan) {
struct _send_info *info = scan->data;
-
+
switch(info->type) {
case SEND_RECEIVE:
mail_fetch_mail(info->uri, info->keep,
@@ -1093,22 +1093,22 @@ mail_receive_uri (const char *uri, int keep)
struct _send_data *data;
CamelFolder *outbox_folder;
send_info_t type;
-
+
data = setup_send_data();
info = g_hash_table_lookup(data->active, uri);
if (info != NULL) {
d(printf("download of %s still in progress\n", uri));
return;
}
-
+
d(printf("starting non-interactive download of '%s'\n", uri));
-
+
type = get_receive_type (uri);
if (type == SEND_INVALID || type == SEND_SEND) {
d(printf ("unsupported provider: '%s'\n", uri));
return;
}
-
+
info = g_malloc0 (sizeof (*info));
info->type = type;
info->progress_bar = NULL;
@@ -1120,11 +1120,11 @@ mail_receive_uri (const char *uri, int keep)
info->data = data;
info->state = SEND_ACTIVE;
info->timeout_id = 0;
-
+
d(printf("Adding new info %p\n", info));
-
+
g_hash_table_insert (data->active, info->uri, info);
-
+
switch (info->type) {
case SEND_RECEIVE:
mail_fetch_mail (info->uri, info->keep,
@@ -1160,11 +1160,11 @@ mail_send (void)
struct _send_info *info;
struct _send_data *data;
send_info_t type;
-
+
transport = mail_config_get_default_transport ();
- if (!transport || !transport->url)
+ if (!transport || !transport->url)
return;
-
+
data = setup_send_data ();
info = g_hash_table_lookup (data->active, SEND_URI_KEY);
if (info != NULL) {
@@ -1172,15 +1172,15 @@ mail_send (void)
d(printf("send of %s still in progress\n", transport->url));
return;
}
-
+
d(printf("starting non-interactive send of '%s'\n", transport->url));
-
+
type = get_receive_type (transport->url);
if (type == SEND_INVALID) {
d(printf ("unsupported provider: '%s'\n", transport->url));
return;
}
-
+
info = g_malloc0 (sizeof (*info));
info->type = SEND_SEND;
info->progress_bar = NULL;
@@ -1192,11 +1192,11 @@ mail_send (void)
info->data = data;
info->state = SEND_ACTIVE;
info->timeout_id = 0;
-
+
d(printf("Adding new info %p\n", info));
-
+
g_hash_table_insert (data->active, SEND_URI_KEY, info);
-
+
/* todo, store the folder in info? */
outbox_folder = mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_OUTBOX);
mail_send_queue (outbox_folder, info->uri,
diff --git a/mail/mail-session.c b/mail/mail-session.c
index 8175c65ded..2f4d5c8021 100644
--- a/mail/mail-session.c
+++ b/mail/mail-session.c
@@ -109,7 +109,7 @@ static void
class_init (MailSessionClass *mail_session_class)
{
CamelSessionClass *camel_session_class = CAMEL_SESSION_CLASS (mail_session_class);
-
+
/* virtual method override */
camel_session_class->get_password = get_password;
camel_session_class->forget_password = forget_password;
@@ -125,7 +125,7 @@ static CamelType
mail_session_get_type (void)
{
static CamelType mail_session_type = CAMEL_INVALID_TYPE;
-
+
if (mail_session_type == CAMEL_INVALID_TYPE) {
ms_parent_class = (CamelSessionClass *)camel_session_get_type();
mail_session_type = camel_type_register (
@@ -138,7 +138,7 @@ mail_session_get_type (void)
(CamelObjectInitFunc) init,
(CamelObjectFinalizeFunc) finalise);
}
-
+
return mail_session_type;
}
@@ -147,12 +147,12 @@ static char *
make_key (CamelService *service, const char *item)
{
char *key;
-
+
if (service)
key = camel_url_to_string (service->url, CAMEL_URL_HIDE_PASSWORD | CAMEL_URL_HIDE_PARAMS);
else
key = g_strdup (item);
-
+
return key;
}
@@ -206,7 +206,7 @@ get_password (CamelSession *session, CamelService *service, const char *domain,
if (account)
title = g_strdup_printf (_("Enter Password for %s"), account->name);
else
- title = g_strdup (_("Enter Password"));
+ title = g_strdup (_("Enter Password"));
}
if ((flags & CAMEL_SESSION_PASSWORD_STATIC) != 0)
eflags = E_PASSWORDS_REMEMBER_NEVER;
@@ -285,15 +285,15 @@ static void
user_message_response (GtkDialog *dialog, int button, struct _user_message_msg *m)
{
gtk_widget_destroy ((GtkWidget *) dialog);
-
+
message_dialog = NULL;
-
+
/* if !allow_cancel, then we've already replied */
if (m->allow_cancel) {
m->result = button == GTK_RESPONSE_OK;
e_msgport_reply((EMsg *)m);
}
-
+
/* check for pendings */
if ((m = (struct _user_message_msg *)e_dlist_remhead(&message_list)))
do_user_message((struct _mail_msg *)m);
@@ -316,12 +316,12 @@ do_user_message (struct _mail_msg *mm)
{
struct _user_message_msg *m = (struct _user_message_msg *)mm;
int type;
-
+
if (!m->ismain && message_dialog != NULL) {
e_dlist_addtail (&message_list, (EDListNode *)m);
return;
}
-
+
switch (m->type) {
case CAMEL_SESSION_ALERT_INFO:
type = 0;
@@ -338,10 +338,10 @@ do_user_message (struct _mail_msg *mm)
if (m->allow_cancel)
type += 3;
-
+
message_dialog = (GtkDialog *)e_error_new(NULL, error_type[type], m->prompt, NULL);
g_object_set ((GObject *) message_dialog, "allow_shrink", TRUE, "allow_grow", TRUE, NULL);
-
+
/* We only need to wait for the result if we allow cancel otherwise show but send result back instantly */
if (m->allow_cancel) {
if (m->ismain) {
@@ -380,7 +380,7 @@ alert_user(CamelSession *session, CamelSessionAlertType type, const char *prompt
return FALSE;
if (cancel)
- user_message_reply = e_msgport_new ();
+ user_message_reply = e_msgport_new ();
m = mail_msg_new (&user_message_op, user_message_reply, sizeof (*m));
m->ismain = pthread_equal(pthread_self(), mail_gui_thread);
m->type = type;
@@ -421,7 +421,7 @@ main_play_sound (CamelFilterDriver *driver, char *filename, gpointer user_data)
gnome_sound_play (filename);
else
gdk_beep ();
-
+
g_free (filename);
camel_object_unref (session);
}
@@ -430,9 +430,9 @@ static void
session_play_sound (CamelFilterDriver *driver, const char *filename, gpointer user_data)
{
MailSession *ms = (MailSession *) session;
-
+
camel_object_ref (session);
-
+
mail_async_event_emit (ms->async, MAIL_ASYNC_GUI, (MailAsyncFunc) main_play_sound,
driver, g_strdup (filename), user_data);
}
@@ -448,9 +448,9 @@ static void
session_system_beep (CamelFilterDriver *driver, gpointer user_data)
{
MailSession *ms = (MailSession *) session;
-
+
camel_object_ref (session);
-
+
mail_async_event_emit (ms->async, MAIL_ASYNC_GUI, (MailAsyncFunc) main_system_beep,
driver, user_data, NULL);
}
@@ -463,36 +463,36 @@ main_get_filter_driver (CamelSession *session, const char *type, CamelException
char *user, *system;
GConfClient *gconf;
RuleContext *fc;
-
+
gconf = mail_config_get_gconf_client ();
-
+
user = g_strdup_printf ("%s/mail/filters.xml", mail_component_peek_base_directory (mail_component_peek ()));
system = g_build_filename (EVOLUTION_PRIVDATADIR, "filtertypes.xml", NULL);
fc = (RuleContext *) em_filter_context_new ();
rule_context_load (fc, system, user);
g_free (system);
g_free (user);
-
+
driver = camel_filter_driver_new (session);
camel_filter_driver_set_folder_func (driver, get_folder, NULL);
-
+
if (gconf_client_get_bool (gconf, "/apps/evolution/mail/filters/log", NULL)) {
MailSession *ms = (MailSession *) session;
-
+
if (ms->filter_logfile == NULL) {
char *filename;
-
+
filename = gconf_client_get_string (gconf, "/apps/evolution/mail/filters/logfile", NULL);
if (filename) {
ms->filter_logfile = g_fopen (filename, "a+");
g_free (filename);
}
}
-
+
if (ms->filter_logfile)
camel_filter_driver_set_logfile (driver, ms->filter_logfile);
}
-
+
camel_filter_driver_set_shell_func (driver, mail_execute_shell_command, NULL);
camel_filter_driver_set_play_sound_func (driver, session_play_sound, NULL);
camel_filter_driver_set_system_beep_func (driver, session_system_beep, NULL);
@@ -505,29 +505,29 @@ main_get_filter_driver (CamelSession *session, const char *type, CamelException
if (strcmp (type, FILTER_SOURCE_JUNKTEST) != 0) {
GString *fsearch, *faction;
-
+
fsearch = g_string_new ("");
faction = g_string_new ("");
-
+
if (!strcmp (type, FILTER_SOURCE_DEMAND))
type = FILTER_SOURCE_INCOMING;
-
+
/* add the user-defined rules next */
while ((rule = rule_context_next_rule (fc, rule, type))) {
g_string_truncate (fsearch, 0);
g_string_truncate (faction, 0);
-
+
filter_rule_build_code (rule, fsearch);
em_filter_rule_build_action ((EMFilterRule *) rule, faction);
camel_filter_driver_add_rule (driver, rule->name, fsearch->str, faction->str);
}
-
+
g_string_free (fsearch, TRUE);
g_string_free (faction, TRUE);
}
-
+
g_object_unref (fc);
-
+
return driver;
}
@@ -579,15 +579,15 @@ mail_session_get_password (const char *url_string)
CamelURL *url;
char *simple_url;
char *passwd;
-
+
url = camel_url_new (url_string, NULL);
simple_url = camel_url_to_string (url, CAMEL_URL_HIDE_PASSWORD | CAMEL_URL_HIDE_PARAMS);
camel_url_free (url);
-
+
passwd = e_passwords_get_password ("Mail", simple_url);
-
+
g_free (simple_url);
-
+
return passwd;
}
@@ -597,13 +597,13 @@ mail_session_add_password (const char *url_string,
{
CamelURL *url;
char *simple_url;
-
+
url = camel_url_new (url_string, NULL);
simple_url = camel_url_to_string (url, CAMEL_URL_HIDE_PASSWORD | CAMEL_URL_HIDE_PARAMS);
camel_url_free (url);
-
+
e_passwords_add_password (simple_url, passwd);
-
+
g_free (simple_url);
}
@@ -612,13 +612,13 @@ mail_session_remember_password (const char *url_string)
{
CamelURL *url;
char *simple_url;
-
+
url = camel_url_new (url_string, NULL);
simple_url = camel_url_to_string (url, CAMEL_URL_HIDE_PASSWORD | CAMEL_URL_HIDE_PARAMS);
camel_url_free (url);
-
+
e_passwords_remember_password ("Mail", simple_url);
-
+
g_free (simple_url);
}
@@ -649,14 +649,14 @@ mail_session_init (const char *base_directory)
{
char *camel_dir;
GConfClient *gconf;
-
+
if (camel_init (base_directory, TRUE) != 0)
exit (0);
camel_provider_init();
session = CAMEL_SESSION (camel_object_new (MAIL_SESSION_TYPE));
-
+
camel_dir = g_strdup_printf ("%s/mail", base_directory);
camel_session_construct (session, camel_dir);
@@ -670,7 +670,7 @@ mail_session_init (const char *base_directory)
/* The shell will tell us to go online. */
camel_session_set_online ((CamelSession *) session, FALSE);
-
+
g_free (camel_dir);
}
@@ -684,20 +684,20 @@ void
mail_session_set_interactive (gboolean interactive)
{
MAIL_SESSION (session)->interactive = interactive;
-
+
if (!interactive) {
struct _user_message_msg *um;
-
+
d(printf ("Gone non-interactive, checking for outstanding interactive tasks\n"));
e_passwords_cancel();
-
+
/* flush/cancel pending user messages */
while ((um = (struct _user_message_msg *) e_dlist_remhead (&message_list))) {
d(printf ("Flusing message request: %s\n", um->prompt));
e_msgport_reply((EMsg *) um);
}
-
+
/* and the current */
if (message_dialog) {
d(printf("Destroying message dialogue\n"));
@@ -717,7 +717,7 @@ void
mail_session_flush_filter_log (void)
{
MailSession *ms = (MailSession *) session;
-
+
if (ms->filter_logfile)
fflush (ms->filter_logfile);
}
@@ -728,10 +728,10 @@ mail_session_add_junk_plugin (const char *plugin_name, CamelJunkPlugin *junk_plu
MailSession *ms = (MailSession *) session;
GConfClient *gconf;
char *def_plugin;
-
+
gconf = mail_config_get_gconf_client ();
def_plugin = gconf_client_get_string (gconf, "/apps/evolution/mail/junk/default_plugin", NULL);
-
+
ms->junk_plugins = g_list_append(ms->junk_plugins, junk_plugin);
if (def_plugin && plugin_name) {
if (!strcmp(def_plugin, plugin_name)) {
@@ -747,6 +747,6 @@ mail_session_add_junk_plugin (const char *plugin_name, CamelJunkPlugin *junk_plu
const GList *
mail_session_get_junk_plugins (void)
{
- MailSession *ms = (MailSession *) session;
+ MailSession *ms = (MailSession *) session;
return ms->junk_plugins;
}
diff --git a/mail/mail-session.h b/mail/mail-session.h
index 36c175772b..bb444b1c6a 100644
--- a/mail/mail-session.h
+++ b/mail/mail-session.h
@@ -52,7 +52,7 @@ void mail_session_flush_filter_log (void);
void mail_session_add_junk_plugin (const char *plugin_name, CamelJunkPlugin *junk_plugin);
const GList * mail_session_get_junk_plugins (void);
-
+
extern CamelSession *session;
#ifdef __cplusplus
diff --git a/mail/mail-signature-editor.c b/mail/mail-signature-editor.c
index d444591f1b..48e11041c0 100644
--- a/mail/mail-signature-editor.c
+++ b/mail/mail-signature-editor.c
@@ -45,7 +45,7 @@
#include "mail-signature-editor.h"
#include "mail-config.h"
-#define d(x)
+#define d(x)
#define GNOME_GTKHTML_EDITOR_CONTROL_ID "OAFIID:GNOME_GtkHTML_Editor:" GTKHTML_API_VERSION
@@ -54,11 +54,11 @@ typedef struct _ESignatureEditor {
GtkWidget *control;
GtkWidget *name_entry;
GtkWidget *info_frame;
-
+
ESignature *sig;
gboolean is_new;
gboolean html;
-
+
GNOME_GtkHTML_Editor_Engine engine;
} ESignatureEditor;
@@ -80,14 +80,14 @@ static void
menu_file_save_error (BonoboUIComponent *uic, CORBA_Environment *ev)
{
char *err;
-
+
/* errno is set if the rename() fails in menu_file_save_cb */
-
+
err = ev->_major != CORBA_NO_EXCEPTION ? bonobo_exception_get_text (ev) : g_strdup (g_strerror (errno));
-
+
e_error_run(NULL, "mail:no-save-signature", err, NULL);
g_warning ("Exception while saving signature: %s", err);
-
+
g_free (err);
}
@@ -97,20 +97,20 @@ get_text (Bonobo_PersistStream persist, const char *format, CORBA_Environment *e
BonoboStream *stream;
BonoboStreamMem *stream_mem;
GByteArray *text;
-
+
stream = bonobo_stream_mem_create (NULL, 0, FALSE, TRUE);
Bonobo_PersistStream_save (persist, (Bonobo_Stream)bonobo_object_corba_objref (BONOBO_OBJECT (stream)),
format, ev);
-
+
if (ev->_major != CORBA_NO_EXCEPTION)
return NULL;
-
+
stream_mem = BONOBO_STREAM_MEM (stream);
-
+
text = g_byte_array_new ();
g_byte_array_append (text, (unsigned char *)stream_mem->buffer, stream_mem->pos);
bonobo_object_unref (BONOBO_OBJECT (stream));
-
+
return text;
}
@@ -118,19 +118,19 @@ static ssize_t
write_all (int fd, const char *buf, size_t n)
{
ssize_t w, nwritten = 0;
-
+
do {
do {
w = write (fd, buf + nwritten, n - nwritten);
} while (w == -1 && (errno == EINTR || errno == EAGAIN));
-
+
if (w > 0)
nwritten += w;
} while (nwritten < n && w != -1);
-
+
if (w == -1)
return -1;
-
+
return nwritten;
}
@@ -189,20 +189,20 @@ menu_file_save_cb (BonoboUIComponent *uic, void *user_data, const char *path)
editor->sig->html = editor->html;
name = g_strstrip (g_strdup (gtk_entry_get_text (GTK_ENTRY (editor->name_entry))));
-
+
if (g_str_equal(name, "") ) {
e_error_run ((GtkWindow *)editor->win, "mail:blank-signature", NULL);
- return;
+ return;
}
-
+
if ( (signature = (ESignature *)e_signature_list_find (mail_config_get_signatures (), E_SIGNATURE_FIND_NAME, name)) && !g_str_equal(signature->uid, editor->sig->uid) ) {
e_error_run ((GtkWindow *)editor->win, "mail:signature-already-exists", name, NULL);
- return;
+ return;
}
-
+
if (editor->sig->name)
g_free (editor->sig->name);
-
+
editor->sig->name = name;
/* if the signature isn't already saved in the config, save it there now... */
@@ -249,17 +249,17 @@ do_exit (ESignatureEditor *editor)
button = e_error_run((GtkWindow *)editor->win, "mail:ask-signature-changed", NULL);
exit_dialog_cb (button, editor);
- } else
+ } else
destroy_editor (editor);
CORBA_exception_free (&ev);
}
-static int
+static int
delete_event_cb (GtkWidget *w, GdkEvent *event, ESignatureEditor *editor)
{
do_exit (editor);
-
+
return TRUE;
}
@@ -267,7 +267,7 @@ static void
menu_file_close_cb (BonoboUIComponent *uic, gpointer data, const char *path)
{
ESignatureEditor *editor;
-
+
editor = E_SIGNATURE_EDITOR (data);
do_exit (editor);
}
@@ -276,9 +276,9 @@ static void
menu_file_save_close_cb (BonoboUIComponent *uic, gpointer data, const char *path)
{
ESignatureEditor *editor;
-
+
editor = E_SIGNATURE_EDITOR (data);
-
+
menu_file_save_cb (uic, editor, path);
}
@@ -287,7 +287,7 @@ static BonoboUIVerb verbs [] = {
BONOBO_UI_VERB ("FileSave", menu_file_save_cb),
BONOBO_UI_VERB ("FileClose", menu_file_close_cb),
BONOBO_UI_VERB ("FileSaveClose", menu_file_save_close_cb),
-
+
BONOBO_UI_VERB_END
};
@@ -295,10 +295,10 @@ static void
load_signature (ESignatureEditor *editor)
{
CORBA_Environment ev;
-
+
if (editor->html) {
Bonobo_PersistFile pfile_iface;
-
+
CORBA_exception_init (&ev);
pfile_iface = Bonobo_Unknown_queryInterface (bonobo_widget_get_objref (BONOBO_WIDGET (editor->control)),"IDL:Bonobo/PersistFile:1.0", &ev);
Bonobo_PersistFile_load (pfile_iface, editor->sig->filename, &ev);
@@ -307,34 +307,34 @@ load_signature (ESignatureEditor *editor)
Bonobo_PersistStream pstream_iface;
BonoboStream *stream;
char *data, *html;
-
+
data = e_msg_composer_get_sig_file_content (editor->sig->filename, FALSE);
html = g_strdup_printf ("<PRE>\n%s", data);
g_free (data);
-
+
CORBA_exception_init (&ev);
pstream_iface = Bonobo_Unknown_queryInterface
(bonobo_widget_get_objref (BONOBO_WIDGET (editor->control)),
"IDL:Bonobo/PersistStream:1.0",&ev);
stream = bonobo_stream_mem_create (html, strlen (html), TRUE, FALSE);
-
+
if (stream == NULL) {
g_warning ("Couldn't create memory stream\n");
} else {
BonoboObject *stream_object;
Bonobo_Stream corba_stream;
-
+
stream_object = BONOBO_OBJECT (stream);
corba_stream = bonobo_object_corba_objref (stream_object);
Bonobo_PersistStream_load (pstream_iface, corba_stream,
"text/html", &ev);
}
-
+
Bonobo_Unknown_unref (pstream_iface, &ev);
CORBA_Object_release (pstream_iface, &ev);
CORBA_exception_free (&ev);
bonobo_object_unref (BONOBO_OBJECT (stream));
-
+
g_free (html);
}
}
@@ -354,10 +354,10 @@ format_html_cb (BonoboUIComponent *component,
{
ESignatureEditor *editor = (ESignatureEditor *) data;
-
+
if (type != Bonobo_UIComponent_STATE_CHANGED)
return;
-
+
editor->html = atoi (state);
bonobo_widget_set_property (BONOBO_WIDGET (editor->control), "FormatHTML", TC_CORBA_boolean, editor->html, NULL);
}
@@ -371,12 +371,12 @@ mail_signature_editor (ESignature *sig, GtkWindow *parent, gboolean is_new)
BonoboUIContainer *container;
GtkWidget *vbox, *hbox, *label, *frame, *vbox1;
char *xmlfile;
-
+
if (!sig->filename || !*sig->filename)
return;
-
+
editor = g_new0 (ESignatureEditor, 1);
-
+
editor->sig = sig;
editor->html = sig->html;
editor->is_new = is_new;
@@ -389,9 +389,9 @@ mail_signature_editor (ESignature *sig, GtkWindow *parent, gboolean is_new)
g_object_set (editor->win, "allow_shrink", FALSE, "allow_grow", TRUE, NULL);
g_object_set_data (G_OBJECT(editor->win), "name-changed", GINT_TO_POINTER(0));
-
+
container = bonobo_window_get_ui_container (BONOBO_WINDOW(editor->win));
-
+
component = bonobo_ui_component_new_default ();
bonobo_ui_component_set_container (component, bonobo_object_corba_objref (BONOBO_OBJECT (container)), NULL);
bonobo_ui_component_add_verb_list_with_data (component, verbs, editor);
@@ -406,24 +406,24 @@ mail_signature_editor (ESignature *sig, GtkWindow *parent, gboolean is_new)
editor->control = bonobo_widget_new_control (GNOME_GTKHTML_EDITOR_CONTROL_ID,
bonobo_ui_component_get_container (component));
-
+
if (editor->control == NULL) {
g_warning ("Cannot get '" GNOME_GTKHTML_EDITOR_CONTROL_ID "'.");
-
+
destroy_editor (editor);
return;
}
-
+
editor->engine = (GNOME_GtkHTML_Editor_Engine) Bonobo_Unknown_queryInterface
(bonobo_widget_get_objref (BONOBO_WIDGET (editor->control)), "IDL:GNOME/GtkHTML/Editor/Engine:1.0", &ev);
CORBA_exception_free(&ev);
load_signature (editor);
-
+
bonobo_ui_component_set_prop (component, "/commands/FormatHtml", "state", editor->html ? "1" : "0", NULL);
bonobo_ui_component_add_listener (component, "FormatHtml", format_html_cb, editor);
-
+
g_signal_connect (editor->win, "delete_event", G_CALLBACK (delete_event_cb), editor);
-
+
vbox = gtk_vbox_new (FALSE, 0);
hbox = gtk_hbox_new (FALSE, 4);
vbox1 = gtk_vbox_new (FALSE, 3);
@@ -444,12 +444,12 @@ mail_signature_editor (ESignature *sig, GtkWindow *parent, gboolean is_new)
gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, TRUE, 0);
gtk_widget_show_all (vbox);
gtk_box_pack_start_defaults (GTK_BOX (vbox), editor->control);
-
+
bonobo_window_set_contents (BONOBO_WINDOW (editor->win), vbox);
bonobo_widget_set_property (BONOBO_WIDGET (editor->control), "FormatHTML", TC_CORBA_boolean, editor->html, NULL);
gtk_widget_show (GTK_WIDGET (editor->win));
gtk_widget_show (GTK_WIDGET (editor->control));
-
+
if (is_new)
gtk_widget_grab_focus (editor->name_entry);
else {
diff --git a/mail/mail-tools.c b/mail/mail-tools.c
index 2cd2ebbfba..59bbf7936d 100644
--- a/mail/mail-tools.c
+++ b/mail/mail-tools.c
@@ -1,14 +1,14 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Authors:
+/*
+ * Authors:
* Dan Winship <danw@ximian.com>
* Peter Williams <peterw@ximian.com>
* Jeffrey Stedfast <fejj@ximian.com>
*
* Copyright 2000 Ximian, Inc. (www.ximian.com)
*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
* License as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
@@ -66,14 +66,14 @@ mail_tool_get_inbox (const gchar *url, CamelException *ex)
{
CamelStore *store;
CamelFolder *folder;
-
+
store = camel_session_get_store (session, url, ex);
if (!store)
return NULL;
-
+
folder = camel_store_get_inbox (store, ex);
camel_object_unref (store);
-
+
return folder;
}
@@ -82,22 +82,22 @@ mail_tool_get_trash (const gchar *url, int connect, CamelException *ex)
{
CamelStore *store;
CamelFolder *trash;
-
+
if (connect)
store = camel_session_get_store (session, url, ex);
else
store = (CamelStore *) camel_session_get_service (session, url, CAMEL_PROVIDER_STORE, ex);
-
+
if (!store)
return NULL;
-
+
if (connect || ((CamelService *) store)->status == CAMEL_SERVICE_CONNECTED)
trash = camel_store_get_trash (store, ex);
else
trash = NULL;
-
+
camel_object_unref (store);
-
+
return trash;
}
@@ -126,7 +126,7 @@ mail_tool_get_local_movemail_path (const unsigned char *uri, CamelException *ex)
full = g_strdup_printf("%s/movemail.%s", path, safe_uri);
g_free(path);
g_free(safe_uri);
-
+
return full;
}
@@ -152,7 +152,7 @@ mail_tool_do_movemail (const char *source_url, CamelException *ex)
camel_url_free(uri);
return NULL;
}
-
+
/* Set up our destination. */
dest_path = mail_tool_get_local_movemail_path ((unsigned char *)source_url, ex);
if (dest_path == NULL)
@@ -167,12 +167,12 @@ mail_tool_do_movemail (const char *source_url, CamelException *ex)
g_free (dest_path);
return NULL;
}
-
+
if (camel_exception_is_set (ex)) {
g_free (dest_path);
return NULL;
}
-
+
return dest_path;
#else
/* Unclear yet whether camel-movemail etc makes any sense on
@@ -189,9 +189,9 @@ mail_tool_generate_forward_subject (CamelMimeMessage *msg)
const char *subject;
char *fwd_subj;
const int max_subject_length = 1024;
-
+
subject = camel_mime_message_get_subject(msg);
-
+
if (subject && *subject) {
/* Truncate insanely long subjects */
if (strlen (subject) < max_subject_length) {
@@ -208,7 +208,7 @@ mail_tool_generate_forward_subject (CamelMimeMessage *msg)
} else {
const CamelInternetAddress *from;
char *fromstr;
-
+
from = camel_mime_message_get_from (msg);
if (from) {
fromstr = camel_address_format (CAMEL_ADDRESS (from));
@@ -217,7 +217,7 @@ mail_tool_generate_forward_subject (CamelMimeMessage *msg)
} else
fwd_subj = g_strdup ("[Fwd: No Subject]");
}
-
+
return fwd_subj;
}
@@ -250,20 +250,20 @@ mail_tool_make_message_attachment (CamelMimeMessage *message)
const char *subject;
struct _camel_header_raw *xev;
char *desc;
-
+
subject = camel_mime_message_get_subject (message);
if (subject)
desc = g_strdup_printf (_("Forwarded message - %s"), subject);
else
desc = g_strdup (_("Forwarded message"));
-
+
/* rip off the X-Evolution headers */
xev = mail_tool_remove_xevolution_headers (message);
camel_header_raw_clear(&xev);
-
+
/* remove Bcc headers */
camel_medium_remove_header (CAMEL_MEDIUM (message), "Bcc");
-
+
part = camel_mime_part_new ();
camel_mime_part_set_disposition (part, "inline");
camel_mime_part_set_description (part, desc);
@@ -271,7 +271,7 @@ mail_tool_make_message_attachment (CamelMimeMessage *message)
CAMEL_DATA_WRAPPER (message));
camel_mime_part_set_content_type (part, "message/rfc822");
g_free (desc);
-
+
return part;
}
@@ -300,7 +300,7 @@ mail_tool_uri_to_folder (const char *uri, guint32 flags, CamelException *ex)
}
uri = curi;
}
-
+
url = camel_url_new (uri + offset, ex);
if (!url) {
g_free(curi);
@@ -321,7 +321,7 @@ mail_tool_uri_to_folder (const char *uri, guint32 flags, CamelException *ex)
else
name = "";
}
-
+
if (offset) {
if (offset == 7)
folder = camel_store_get_trash (store, ex);
@@ -331,13 +331,13 @@ mail_tool_uri_to_folder (const char *uri, guint32 flags, CamelException *ex)
folder = camel_store_get_folder (store, name, flags, ex);
camel_object_unref (store);
}
-
+
if (folder)
mail_note_folder (folder);
-
+
camel_url_free (url);
g_free(curi);
-
+
return folder;
}
@@ -356,29 +356,29 @@ mail_tools_x_evolution_message_parse (char *in, unsigned int inlen, GPtrArray **
/* format: "uri\0uid1\0uid2\0uid3\0...\0uidn" */
char *inptr, *inend;
CamelFolder *folder;
-
+
if (in == NULL)
return NULL;
-
+
folder = mail_tool_uri_to_folder (in, 0, NULL);
-
+
if (!folder)
return NULL;
-
+
/* split the uids */
inend = in + inlen;
inptr = in + strlen (in) + 1;
*uids = g_ptr_array_new ();
while (inptr < inend) {
char *start = inptr;
-
+
while (inptr < inend && *inptr)
inptr++;
-
+
g_ptr_array_add (*uids, g_strndup (start, inptr - start));
inptr++;
}
-
+
return folder;
}
diff --git a/mail/mail-tools.h b/mail/mail-tools.h
index 6ef6001798..0d2354dc29 100644
--- a/mail/mail-tools.h
+++ b/mail/mail-tools.h
@@ -1,12 +1,12 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Author :
+ *
+ * Author :
* Peter Williams <peterw@ximian.com>
*
* Copyright 2000 Ximian, Inc. (www.ximian.com)
*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
* License as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
diff --git a/mail/mail-types.h b/mail/mail-types.h
index 38b18abd87..d80b21276d 100644
--- a/mail/mail-types.h
+++ b/mail/mail-types.h
@@ -1,10 +1,10 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
+/*
* Copyright 2000 Ximian, Inc. (www.ximian.com)
*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
* License as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
diff --git a/mail/mail-vfolder.c b/mail/mail-vfolder.c
index 35edafba75..9f4b8e2d94 100644
--- a/mail/mail-vfolder.c
+++ b/mail/mail-vfolder.c
@@ -179,14 +179,14 @@ vfolder_setup(CamelFolder *folder, const char *query, GList *sources_uri, GList
{
struct _setup_msg *m;
int id;
-
+
m = mail_msg_new(&vfolder_setup_op, NULL, sizeof (*m));
m->folder = folder;
camel_object_ref(folder);
m->query = g_strdup(query);
m->sources_uri = sources_uri;
m->sources_folder = sources_folder;
-
+
id = m->msg.seq;
e_thread_put(mail_thread_queued_slow, (EMsg *)m);
@@ -224,7 +224,7 @@ vfolder_adduri_desc(struct _mail_msg *mm, int done)
} else {
char *uid;
const EAccount *account;
-
+
if (url->user == NULL)
uid = g_strdup(url->host);
else
@@ -316,12 +316,12 @@ vfolder_adduri(const char *uri, GList *folders, int remove)
{
struct _adduri_msg *m;
int id;
-
+
m = mail_msg_new(&vfolder_adduri_op, NULL, sizeof (*m));
m->folders = folders;
m->uri = g_strdup(uri);
m->remove = remove;
-
+
id = m->msg.seq;
e_thread_put(mail_thread_queued_slow, (EMsg *)m);
@@ -349,16 +349,16 @@ uri_is_ignore(CamelStore *store, const char *uri)
EAccount *account;
EIterator *iter;
int found = FALSE;
-
+
d(printf("checking '%s' against:\n %s\n %s\n %s\n", uri,
mail_component_get_folder_uri(NULL, MAIL_COMPONENT_FOLDER_OUTBOX),
mail_component_get_folder_uri(NULL, MAIL_COMPONENT_FOLDER_SENT),
mail_component_get_folder_uri(NULL, MAIL_COMPONENT_FOLDER_DRAFTS)));
-
+
found = camel_store_folder_uri_equal(store, mail_component_get_folder_uri(NULL, MAIL_COMPONENT_FOLDER_OUTBOX), uri)
|| camel_store_folder_uri_equal(store, mail_component_get_folder_uri(NULL, MAIL_COMPONENT_FOLDER_SENT), uri)
|| camel_store_folder_uri_equal(store, mail_component_get_folder_uri(NULL, MAIL_COMPONENT_FOLDER_DRAFTS), uri);
-
+
if (found)
return found;
@@ -385,12 +385,12 @@ uri_is_ignore(CamelStore *store, const char *uri)
if (found)
break;
-
+
e_iterator_next (iter);
}
-
+
g_object_unref (iter);
-
+
return found;
}
@@ -454,7 +454,7 @@ mail_vfolder_add_uri(CamelStore *store, const char *curi, int remove)
LOCK();
/* d(printf("%s uri to check: %s\n", remove?"Removing":"Adding", uri)); */
-
+
/* maintain the source folders lists for changed rules later on */
if (CAMEL_IS_VEE_STORE(store)) {
is_ignore = TRUE;
@@ -484,7 +484,7 @@ mail_vfolder_add_uri(CamelStore *store, const char *curi, int remove)
rule = NULL;
while ((rule = rule_context_next_rule((RuleContext *)context, rule, NULL))) {
int found = FALSE;
-
+
if (!rule->name) {
d(printf("invalid rule (%p): rule->name is set to NULL\n", rule));
continue;
@@ -496,7 +496,7 @@ mail_vfolder_add_uri(CamelStore *store, const char *curi, int remove)
|| (((EMVFolderRule *)rule)->with == EM_VFOLDER_RULE_WITH_REMOTE_ACTIVE && remote)
|| (((EMVFolderRule *)rule)->with == EM_VFOLDER_RULE_WITH_LOCAL_REMOTE_ACTIVE)))
found = TRUE;
-
+
source = NULL;
while (!found && (source = em_vfolder_rule_next_source((EMVFolderRule *)rule, source))) {
char *csource;
@@ -516,9 +516,9 @@ mail_vfolder_add_uri(CamelStore *store, const char *curi, int remove)
folders = g_list_prepend(folders, vf);
}
}
-
+
UNLOCK();
-
+
if (folders != NULL)
vfolder_adduri(curi, folders, remove);
@@ -542,13 +542,13 @@ mail_vfolder_delete_uri(CamelStore *store, const char *curi)
uri = em_uri_from_camel(curi);
d(printf ("Deleting uri to check: %s\n", uri));
-
+
g_return_if_fail (pthread_equal(pthread_self(), mail_gui_thread));
-
+
changed = g_string_new ("");
-
+
LOCK();
-
+
/* see if any rules directly reference this removed uri */
rule = NULL;
while ((rule = rule_context_next_rule ((RuleContext *) context, rule, NULL))) {
@@ -590,23 +590,23 @@ mail_vfolder_delete_uri(CamelStore *store, const char *curi)
g_free(link->data);
source_folders_local = g_list_remove_link(source_folders_local, link);
}
-
+
UNLOCK();
-
+
if (changed->str[0]) {
GtkWidget *dialog;
char *user;
-
+
dialog = e_error_new(NULL, "mail:vfolder-updated", changed->str, uri, NULL);
g_signal_connect_swapped (dialog, "response", G_CALLBACK (gtk_widget_destroy), dialog);
gtk_widget_show (dialog);
-
+
user = g_strdup_printf ("%s/mail/vfolders.xml",
mail_component_peek_base_directory (mail_component_peek ()));
rule_context_save ((RuleContext *) context, user);
g_free (user);
}
-
+
g_string_free (changed, TRUE);
g_free(uri);
@@ -649,7 +649,7 @@ mail_vfolder_rename_uri(CamelStore *store, const char *cfrom, const char *cto)
if (!vf) {
g_warning ("vf is NULL for %s\n", rule->name);
continue;
- }
+ }
g_signal_handlers_disconnect_matched(rule, G_SIGNAL_MATCH_FUNC|G_SIGNAL_MATCH_DATA, 0,
0, NULL, rule_changed, vf);
em_vfolder_rule_remove_source((EMVFolderRule *)rule, source);
@@ -796,14 +796,14 @@ static void context_rule_removed(RuleContext *ctx, FilterRule *rule)
d(printf("rule removed; %s\n", rule->name));
/* TODO: remove from folder info cache? */
-
+
/* FIXME: is this even necessary? if we remove the folder from
* the CamelStore, the tree should pick it up auto-magically
* because it listens to CamelStore events... */
path = g_strdup_printf("/%s", rule->name);
mail_component_remove_folder (mail_component_peek (), vfolder_store, path);
g_free(path);
-
+
LOCK();
if (g_hash_table_lookup_extended (vfolder_hash, rule->name, &key, &folder)) {
g_hash_table_remove (vfolder_hash, key);
@@ -851,7 +851,7 @@ store_folder_deleted(CamelObject *o, void *event_data, void *data)
rule_context_remove_rule((RuleContext *)context, rule);
g_object_unref(rule);
g_signal_connect(context, "rule_removed", G_CALLBACK(context_rule_removed), context);
-
+
user = g_strdup_printf("%s/mail/vfolders.xml", mail_component_peek_base_directory (mail_component_peek ()));
rule_context_save((RuleContext *)context, user);
g_free(user);
@@ -870,7 +870,7 @@ store_folder_renamed(CamelObject *o, void *event_data, void *data)
char *user;
gpointer key, folder;
-
+
/* This should be more-or-less thread-safe */
d(printf("Folder renamed to '%s' from '%s'\n", info->new->full_name, info->old_base));
@@ -929,10 +929,10 @@ vfolder_load_storage(void)
(CamelObjectEventHookFunc)store_folder_deleted, NULL);
camel_object_hook_event(vfolder_store, "folder_renamed",
(CamelObjectEventHookFunc)store_folder_renamed, NULL);
-
+
d(printf("got store '%s' = %p\n", storeuri, vfolder_store));
mail_component_load_store_by_uri (mail_component_peek (), storeuri, _("Search Folders"));
-
+
/* load our rules */
user = g_strdup_printf ("%s/mail/vfolders.xml", mail_component_peek_base_directory (mail_component_peek ()));
context = em_vfolder_context_new ();
@@ -944,7 +944,7 @@ vfolder_load_storage(void)
}
g_free (xmlfile);
g_free (user);
-
+
g_signal_connect(context, "rule_added", G_CALLBACK(context_rule_added), context);
g_signal_connect(context, "rule_removed", G_CALLBACK(context_rule_removed), context);
@@ -1002,11 +1002,11 @@ vfolder_edit (void)
gdk_window_raise (GTK_WIDGET (vfolder_editor)->window);
return;
}
-
+
vfolder_editor = GTK_WIDGET (em_vfolder_editor_new (context));
gtk_window_set_title (GTK_WINDOW (vfolder_editor), _("Search Folders"));
g_signal_connect(vfolder_editor, "response", G_CALLBACK(em_vfolder_editor_response), NULL);
-
+
gtk_widget_show (vfolder_editor);
}
@@ -1164,7 +1164,7 @@ vfolder_gui_add_from_address(CamelInternetAddress *addr, int flags, const char *
EMVFolderRule *rule;
g_return_if_fail (addr != NULL);
-
+
rule = (EMVFolderRule*)em_vfolder_rule_from_address(context, addr, flags, source);
vfolder_gui_add_rule(rule);
}
@@ -1173,10 +1173,10 @@ static void
vfolder_foreach_cb (gpointer key, gpointer data, gpointer user_data)
{
CamelFolder *folder = CAMEL_FOLDER (data);
-
+
if (folder)
camel_object_unref(folder);
-
+
g_free (key);
}
@@ -1195,7 +1195,7 @@ mail_vfolder_shutdown (void)
camel_object_unref (vfolder_store);
vfolder_store = NULL;
}
-
+
if (context) {
g_object_unref(context);
context = NULL;
diff --git a/mail/message-list.c b/mail/message-list.c
index ea627c952a..0936938d1a 100644
--- a/mail/message-list.c
+++ b/mail/message-list.c
@@ -97,7 +97,7 @@
#define localtime_r(tp,tmp) (localtime(tp)?(*(tmp)=*localtime(tp),(tmp)):0)
#endif
-#define d(x)
+#define d(x)
#define t(x)
struct _MLSelection {
@@ -248,14 +248,14 @@ e_mail_address_new (const char *address)
CamelInternetAddress *cia;
EMailAddress *new;
const char *name = NULL, *addr = NULL;
-
+
cia = camel_internet_address_new ();
if (camel_address_unformat (CAMEL_ADDRESS (cia), address) == -1) {
camel_object_unref (cia);
return NULL;
}
camel_internet_address_get (cia, 0, &name, &addr);
-
+
new = g_new (EMailAddress, 1);
new->address = g_strdup (addr);
if (name && *name) {
@@ -263,9 +263,9 @@ e_mail_address_new (const char *address)
} else {
new->wname = NULL;
}
-
+
camel_object_unref (cia);
-
+
return new;
}
@@ -273,7 +273,7 @@ static void
e_mail_address_free (EMailAddress *addr)
{
g_return_if_fail (addr != NULL);
-
+
g_free (addr->address);
if (addr->wname)
e_name_western_free (addr->wname);
@@ -289,55 +289,55 @@ e_mail_address_compare (gconstpointer address1, gconstpointer address2)
const EMailAddress *addr1 = address1;
const EMailAddress *addr2 = address2;
int retval;
-
+
g_return_val_if_fail (addr1 != NULL, 1);
g_return_val_if_fail (addr2 != NULL, -1);
-
+
if (!addr1->wname && !addr2->wname) {
/* have to compare addresses, one or both don't have names */
g_return_val_if_fail (addr1->address != NULL, 1);
g_return_val_if_fail (addr2->address != NULL, -1);
-
+
return strcmp (addr1->address, addr2->address);
}
-
+
if (!addr1->wname)
return -1;
if (!addr2->wname)
return 1;
-
+
if (!addr1->wname->last && !addr2->wname->last) {
/* neither has a last name - default to address? */
/* FIXME: what do we compare next? */
g_return_val_if_fail (addr1->address != NULL, 1);
g_return_val_if_fail (addr2->address != NULL, -1);
-
+
return strcmp (addr1->address, addr2->address);
}
-
+
if (!addr1->wname->last)
return -1;
if (!addr2->wname->last)
return 1;
-
+
retval = strcmp (addr1->wname->last, addr2->wname->last);
if (retval)
return retval;
-
+
/* last names are identical - compare first names */
-
+
if (!addr1->wname->first && !addr2->wname->first)
return strcmp (addr1->address, addr2->address);
-
+
if (!addr1->wname->first)
return -1;
if (!addr2->wname->first)
return 1;
-
+
retval = strcmp (addr1->wname->first, addr2->wname->first);
if (retval)
return retval;
-
+
return strcmp (addr1->address, addr2->address);
}
#endif /* SMART_ADDRESS_COMPARE */
@@ -352,10 +352,10 @@ address_compare (gconstpointer address1, gconstpointer address2)
EMailAddress *addr1, *addr2;
#endif /* SMART_ADDRESS_COMPARE */
int retval;
-
+
g_return_val_if_fail (address1 != NULL, 1);
g_return_val_if_fail (address2 != NULL, -1);
-
+
#ifdef SMART_ADDRESS_COMPARE
addr1 = e_mail_address_new (address1);
addr2 = e_mail_address_new (address2);
@@ -365,7 +365,7 @@ address_compare (gconstpointer address1, gconstpointer address2)
#else
retval = strcmp ((char *) address1, (char *) address2);
#endif /* SMART_ADDRESS_COMPARE */
-
+
return retval;
}
@@ -373,7 +373,7 @@ static char *
filter_size (gint size)
{
gfloat fsize;
-
+
if (size < 1024) {
return g_strdup_printf ("%d", size);
} else {
@@ -392,12 +392,12 @@ static const char *
get_message_uid (MessageList *message_list, ETreePath node)
{
CamelMessageInfo *info;
-
+
g_return_val_if_fail (node != NULL, NULL);
info = e_tree_memory_node_get_data (E_TREE_MEMORY (message_list->model), node);
/* correct me if I'm wrong, but this should never be NULL, should it? */
g_return_val_if_fail (info != NULL, NULL);
-
+
return camel_message_info_uid (info);
}
@@ -408,11 +408,11 @@ static CamelMessageInfo *
get_message_info (MessageList *message_list, ETreePath node)
{
CamelMessageInfo *info;
-
+
g_return_val_if_fail (node != NULL, NULL);
info = e_tree_memory_node_get_data (E_TREE_MEMORY (message_list->model), node);
g_return_val_if_fail (info != NULL, NULL);
-
+
return info;
}
@@ -423,7 +423,7 @@ get_normalised_string (MessageList *message_list, CamelMessageInfo *info, int co
char *normalised;
EPoolv *poolv;
int index;
-
+
switch (col) {
case COL_SUBJECT_NORM:
string = camel_message_info_subject (info);
@@ -442,11 +442,11 @@ get_normalised_string (MessageList *message_list, CamelMessageInfo *info, int co
index = NORMALISED_LAST;
g_warning ("Should not be reached\n");
}
-
+
/* slight optimisation */
if (string == NULL || string[0] == '\0')
return "";
-
+
poolv = g_hash_table_lookup (message_list->normalised_hash, camel_message_info_uid (info));
if (poolv == NULL) {
poolv = e_poolv_new (NORMALISED_LAST);
@@ -456,29 +456,29 @@ get_normalised_string (MessageList *message_list, CamelMessageInfo *info, int co
if (*str)
return str;
}
-
+
if (col == COL_SUBJECT_NORM) {
const unsigned char *subject;
-
+
subject = (const unsigned char *) string;
while (!g_ascii_strncasecmp ((char *)subject, "Re:", 3)) {
subject += 3;
-
+
/* jump over any spaces */
while (*subject && isspace ((int) *subject))
subject++;
}
-
+
/* jump over any spaces */
while (*subject && isspace ((int) *subject))
subject++;
-
+
string = (const char *) subject;
}
-
+
normalised = g_utf8_collate_key (string, -1);
e_poolv_set (poolv, index, normalised, TRUE);
-
+
return e_poolv_get (poolv, index);
}
@@ -613,14 +613,14 @@ message_list_select(MessageList *ml, MessageListSelectDirection direction, guint
/**
* message_list_can_select:
- * @ml:
- * @direction:
- * @flags:
- * @mask:
- *
+ * @ml:
+ * @direction:
+ * @flags:
+ * @mask:
+ *
* Returns true if the selection specified is possible with the current view.
- *
- * Return value:
+ *
+ * Return value:
**/
gboolean
message_list_can_select(MessageList *ml, MessageListSelectDirection direction, guint32 flags, guint32 mask)
@@ -647,7 +647,7 @@ message_list_select_uid (MessageList *message_list, const char *uid)
g_free(message_list->pending_select_uid);
message_list->pending_select_uid = g_strdup(uid);
}
-
+
node = g_hash_table_lookup (message_list->uid_nodemap, uid);
if (node) {
/* This will emit a changed signal that we'll pick up */
@@ -696,9 +696,9 @@ void
message_list_select_all (MessageList *message_list)
{
ESelectionModel *etsm;
-
+
etsm = e_tree_get_selection_model (message_list->tree);
-
+
e_selection_model_select_all (etsm);
}
@@ -712,7 +712,7 @@ static gboolean
select_node (ETreeModel *model, ETreePath path, gpointer user_data)
{
thread_select_info_t *tsi = (thread_select_info_t *) user_data;
-
+
g_ptr_array_add (tsi->paths, path);
return FALSE; /*not done yet*/
}
@@ -723,24 +723,24 @@ thread_select_foreach (ETreePath path, gpointer user_data)
thread_select_info_t *tsi = (thread_select_info_t *) user_data;
ETreeModel *model = tsi->ml->model;
ETreePath node;
-
+
/* @path part of the initial selection. If it has children,
* we select them as well. If it doesn't, we select its siblings and
* their children (ie, the current node must be inside the thread
* that the user wants to mark.
*/
-
+
if (e_tree_model_node_get_first_child (model, path)) {
node = path;
} else {
node = e_tree_model_node_get_parent (model, path);
-
+
/* Let's make an exception: if no parent, then we're about
* to mark the whole tree. No. */
- if (e_tree_model_node_is_root (model, node))
+ if (e_tree_model_node_is_root (model, node))
node = path;
}
-
+
e_tree_model_node_traverse (model, node, select_node, tsi);
}
@@ -755,12 +755,12 @@ message_list_select_thread (MessageList *message_list)
{
ETreeSelectionModel *etsm;
thread_select_info_t tsi;
-
+
tsi.ml = message_list;
tsi.paths = g_ptr_array_new ();
-
+
etsm = (ETreeSelectionModel *) e_tree_get_selection_model (message_list->tree);
-
+
e_tree_selected_path_foreach (message_list->tree, thread_select_foreach, &tsi);
e_tree_selection_model_select_paths(etsm, tsi.paths);
g_ptr_array_free (tsi.paths, TRUE);
@@ -776,9 +776,9 @@ void
message_list_invert_selection (MessageList *message_list)
{
ESelectionModel *etsm;
-
+
etsm = e_tree_get_selection_model (message_list->tree);
-
+
e_selection_model_invert_selection (etsm);
}
@@ -789,7 +789,7 @@ message_list_copy(MessageList *ml, gboolean cut)
GPtrArray *uids;
clear_selection(ml, &p->clipboard);
-
+
uids = message_list_get_selected(ml);
if (uids->len > 0) {
@@ -903,14 +903,14 @@ ml_duplicate_value (ETreeModel *etm, int col, const void *value, void *data)
case COL_FOLLOWUP_FLAG_STATUS:
case COL_FOLLOWUP_DUE_BY:
return (void *) value;
-
+
case COL_FROM:
case COL_SUBJECT:
case COL_TO:
case COL_SENDER:
case COL_RECIPIENTS:
case COL_MIXED_SENDER:
- case COL_MIXED_RECIPIENTS:
+ case COL_MIXED_RECIPIENTS:
case COL_FOLLOWUP_FLAG:
case COL_LOCATION:
return g_strdup (value);
@@ -936,7 +936,7 @@ ml_free_value (ETreeModel *etm, int col, void *value, void *data)
case COL_FOLLOWUP_FLAG_STATUS:
case COL_FOLLOWUP_DUE_BY:
break;
-
+
case COL_FROM:
case COL_SUBJECT:
case COL_TO:
@@ -945,7 +945,7 @@ ml_free_value (ETreeModel *etm, int col, void *value, void *data)
case COL_SENDER:
case COL_RECIPIENTS:
case COL_MIXED_SENDER:
- case COL_MIXED_RECIPIENTS:
+ case COL_MIXED_RECIPIENTS:
g_free (value);
break;
default:
@@ -969,7 +969,7 @@ ml_initialize_value (ETreeModel *etm, int col, void *data)
case COL_FOLLOWUP_FLAG_STATUS:
case COL_FOLLOWUP_DUE_BY:
return NULL;
-
+
case COL_FROM:
case COL_SUBJECT:
case COL_TO:
@@ -978,7 +978,7 @@ ml_initialize_value (ETreeModel *etm, int col, void *data)
case COL_SENDER:
case COL_RECIPIENTS:
case COL_MIXED_SENDER:
- case COL_MIXED_RECIPIENTS:
+ case COL_MIXED_RECIPIENTS:
return g_strdup ("");
default:
g_warning ("This shouldn't be reached\n");
@@ -1003,7 +1003,7 @@ ml_value_is_empty (ETreeModel *etm, int col, const void *value, void *data)
case COL_FOLLOWUP_FLAG_STATUS:
case COL_FOLLOWUP_DUE_BY:
return value == NULL;
-
+
case COL_FROM:
case COL_SUBJECT:
case COL_TO:
@@ -1012,7 +1012,7 @@ ml_value_is_empty (ETreeModel *etm, int col, const void *value, void *data)
case COL_SENDER:
case COL_RECIPIENTS:
case COL_MIXED_SENDER:
- case COL_MIXED_RECIPIENTS:
+ case COL_MIXED_RECIPIENTS:
return !(value && *(char *)value);
default:
g_warning ("This shouldn't be reached\n");
@@ -1043,35 +1043,35 @@ static char *
ml_value_to_string (ETreeModel *etm, int col, const void *value, void *data)
{
unsigned int i;
-
+
switch (col){
case COL_MESSAGE_STATUS:
i = GPOINTER_TO_UINT(value);
if (i > 4)
return g_strdup ("");
return g_strdup (_(status_map[i]));
-
+
case COL_SCORE:
i = GPOINTER_TO_UINT(value) + 3;
if (i > 6)
i = 3;
return g_strdup (_(score_map[i]));
-
+
case COL_ATTACHMENT:
case COL_FLAGGED:
case COL_DELETED:
case COL_UNREAD:
case COL_FOLLOWUP_FLAG_STATUS:
return g_strdup_printf ("%u", GPOINTER_TO_UINT(value));
-
+
case COL_SENT:
case COL_RECEIVED:
case COL_FOLLOWUP_DUE_BY:
return filter_date (GPOINTER_TO_INT (value));
-
+
case COL_SIZE:
return filter_size (GPOINTER_TO_INT (value));
-
+
case COL_FROM:
case COL_SUBJECT:
case COL_TO:
@@ -1080,7 +1080,7 @@ ml_value_to_string (ETreeModel *etm, int col, const void *value, void *data)
case COL_SENDER:
case COL_RECIPIENTS:
case COL_MIXED_SENDER:
- case COL_MIXED_RECIPIENTS:
+ case COL_MIXED_RECIPIENTS:
return g_strdup (value);
default:
g_warning ("This shouldn't be reached\n");
@@ -1101,14 +1101,14 @@ subtree_unread(MessageList *ml, ETreePath node)
{
CamelMessageInfo *info;
ETreePath child;
-
+
while (node) {
info = e_tree_memory_node_get_data((ETreeMemory *)ml->model, node);
g_return_val_if_fail (info != NULL, FALSE);
-
+
if (!(camel_message_info_flags(info) & CAMEL_MESSAGE_SEEN))
return TRUE;
-
+
if ((child = e_tree_model_node_get_first_child (E_TREE_MODEL (ml->model), node)))
if (subtree_unread(ml, child))
return TRUE;
@@ -1123,15 +1123,15 @@ subtree_size(MessageList *ml, ETreePath node)
CamelMessageInfo *info;
int size = 0;
ETreePath child;
-
+
while (node) {
info = e_tree_memory_node_get_data((ETreeMemory *)ml->model, node);
g_return_val_if_fail (info != NULL, 0);
-
+
size += camel_message_info_size(info);
if ((child = e_tree_model_node_get_first_child (E_TREE_MODEL (ml->model), node)))
size += subtree_size(ml, child);
-
+
node = e_tree_model_node_get_next (ml->model, node);
}
return size;
@@ -1143,28 +1143,28 @@ subtree_latest(MessageList *ml, ETreePath node, int sent)
CamelMessageInfo *info;
time_t latest = 0, date;
ETreePath *child;
-
+
while (node) {
info = e_tree_memory_node_get_data((ETreeMemory *)ml->model, node);
g_return_val_if_fail (info != NULL, 0);
-
+
if (sent)
date = camel_message_info_date_sent(info);
else
date = camel_message_info_date_received(info);
-
+
if (latest == 0 || date > latest)
latest = date;
-
+
if ((child = e_tree_model_node_get_first_child (ml->model, node))) {
date = subtree_latest(ml, child, sent);
if (latest == 0 || (date != 0 && date > latest))
latest = date;
}
-
+
node = e_tree_model_node_get_next (ml->model, node);
}
-
+
return latest;
}
@@ -1180,7 +1180,7 @@ sanitize_recipients (const gchar *string)
if (!string || !*string)
return "";
-
+
gstring = g_string_new ("");
for (p = string; *p; p = g_utf8_next_char (p)) {
@@ -1225,11 +1225,11 @@ ml_tree_value_at (ETreeModel *etm, ETreePath path, int col, void *model_data)
if (e_tree_model_node_is_root (etm, path))
return NULL;
-
+
/* retrieve the message information array */
msg_info = e_tree_memory_node_get_data (E_TREE_MEMORY(etm), path);
g_return_val_if_fail (msg_info != NULL, NULL);
-
+
switch (col){
case COL_MESSAGE_STATUS:
flags = camel_message_info_flags(msg_info);
@@ -1244,16 +1244,16 @@ ml_tree_value_at (ETreeModel *etm, ETreePath path, int col, void *model_data)
case COL_SCORE: {
const char *tag;
int score = 0;
-
+
tag = camel_message_info_user_tag(msg_info, "score");
if (tag)
score = atoi (tag);
-
+
return GINT_TO_POINTER (score);
}
case COL_FOLLOWUP_FLAG_STATUS: {
const char *tag, *cmp;
-
+
/* FIXME: this all should be methods off of message-tag-followup class,
FIXME: the tag names should be namespaced :( */
tag = camel_message_info_user_tag(msg_info, "follow-up");
@@ -1269,7 +1269,7 @@ ml_tree_value_at (ETreeModel *etm, ETreePath path, int col, void *model_data)
case COL_FOLLOWUP_DUE_BY: {
const char *tag;
time_t due_by;
-
+
tag = camel_message_info_user_tag(msg_info, "due-by");
if (tag && *tag) {
due_by = camel_header_decode_date (tag, NULL);
@@ -1300,7 +1300,7 @@ ml_tree_value_at (ETreeModel *etm, ETreePath path, int col, void *model_data)
if (child && !e_tree_node_is_expanded(message_list->tree, path)) {
return GINT_TO_POINTER (subtree_latest (message_list, child, 1));
}
-
+
return GINT_TO_POINTER (camel_message_info_date_sent(msg_info));
}
case COL_RECEIVED: {
@@ -1311,7 +1311,7 @@ ml_tree_value_at (ETreeModel *etm, ETreePath path, int col, void *model_data)
return GINT_TO_POINTER (subtree_latest (message_list, child, 0));
}
return GINT_TO_POINTER (camel_message_info_date_received(msg_info));
- }
+ }
case COL_TO:
str = camel_message_info_to (msg_info);
return (void *)(str ? str : "");
@@ -1330,12 +1330,12 @@ ml_tree_value_at (ETreeModel *etm, ETreePath path, int col, void *model_data)
&& (flags & CAMEL_MESSAGE_SEEN)) {
return GINT_TO_POINTER (subtree_unread (message_list, child));
}
-
+
return GINT_TO_POINTER (!(flags & CAMEL_MESSAGE_SEEN));
}
case COL_COLOUR: {
const char *colour, *due_by, *completed, *label;
-
+
/* Priority: colour tag; label tag; important flag; due-by tag */
/* This is astonisngly poorly written code */
@@ -1359,7 +1359,7 @@ ml_tree_value_at (ETreeModel *etm, ETreePath path, int col, void *model_data)
} else if ((due_by && *due_by) && !(completed && *completed)) {
time_t now = time (NULL);
time_t target_date;
-
+
target_date = camel_header_decode_date (due_by, NULL);
if (now >= target_date)
colour = "#A7453E";
@@ -1374,42 +1374,42 @@ ml_tree_value_at (ETreeModel *etm, ETreePath path, int col, void *model_data)
EAccount *account;
char *location = NULL;
char *euri, *url;
-
+
if (CAMEL_IS_VEE_FOLDER(message_list->folder)) {
folder = camel_vee_folder_get_location((CamelVeeFolder *)message_list->folder, (CamelVeeMessageInfo *)msg_info, NULL);
} else {
folder = message_list->folder;
}
-
+
url = mail_tools_folder_to_url (folder);
euri = em_uri_from_camel(url);
-
+
account = mail_config_get_account_by_source_url (url);
-
+
if (account) {
- curl = camel_url_new (url, &ex);
+ curl = camel_url_new (url, &ex);
location = g_strconcat (account->name, ":", curl->path, NULL);
} else {
/* Local account */
euri = em_uri_from_camel(url);
- curl = camel_url_new (euri, &ex);
- if (curl->host && !strcmp(curl->host, "local") && curl->user && !strcmp(curl->user, "local"))
+ curl = camel_url_new (euri, &ex);
+ if (curl->host && !strcmp(curl->host, "local") && curl->user && !strcmp(curl->user, "local"))
location = g_strconcat ("On This Computer", ":",curl->path, NULL);
}
-
+
camel_exception_clear (&ex);
g_free (url);
g_free (euri);
-
+
return location;
}
- case COL_MIXED_RECIPIENTS:
+ case COL_MIXED_RECIPIENTS:
case COL_RECIPIENTS:{
str = camel_message_info_to (msg_info);
-
+
return sanitize_recipients(str);
}
- case COL_MIXED_SENDER:
+ case COL_MIXED_SENDER:
case COL_SENDER:{
char **sender_name = NULL;
str = camel_message_info_from (msg_info);
@@ -1418,7 +1418,7 @@ ml_tree_value_at (ETreeModel *etm, ETreePath path, int col, void *model_data)
return (void *)(*sender_name);
}
else
- return (void *)("");
+ return (void *)("");
}
default:
g_warning ("This shouldn't be reached\n");
@@ -1464,7 +1464,7 @@ ml_tree_sort_value_at (ETreeModel *etm, ETreePath path, int col, void *model_dat
}
return GINT_TO_POINTER (camel_message_info_date_received(msg_info));
- }
+ }
return ml_tree_value_at (etm, path, col, model_data);
@@ -1487,13 +1487,13 @@ static void
message_list_init_images (void)
{
int i;
-
+
/*
* Only load once, and share
*/
if (states_pixmaps[0].pixbuf)
return;
-
+
for (i = 0; i < G_N_ELEMENTS (states_pixmaps); i++) {
if (states_pixmaps[i].icon_name)
states_pixmaps[i].pixbuf = e_icon_factory_get_icon (states_pixmaps[i].icon_name, E_ICON_SIZE_MENU);
@@ -1510,10 +1510,10 @@ filter_date (time_t date)
struct tm then, now, yesterday;
char buf[26];
gboolean done = FALSE;
-
+
if (date == 0)
return g_strdup (_("?"));
-
+
localtime_r (&date, &then);
localtime_r (&nowdate, &now);
if (then.tm_mday == now.tm_mday &&
@@ -1573,19 +1573,19 @@ static ECell * create_composite_cell (int col)
gboolean show_email;
int i;
int alt_col = (col == COL_FROM) ? COL_SENDER : COL_RECIPIENTS;
-
+
gconf = mail_config_get_gconf_client ();
fixed_name = gconf_client_get_string (gconf, "/desktop/gnome/interface/monospace_font_name", NULL);
show_email = gconf_client_get_bool (gconf, "/apps/evolution/mail/display/show_email", NULL);
-
+
cell_vbox = e_cell_vbox_new ();
cell_hbox = e_cell_hbox_new ();
-
+
for (i = 0; i < 2; i++)
- images [i] = states_pixmaps [i + 5].pixbuf;
+ images [i] = states_pixmaps [i + 5].pixbuf;
cell_attach = e_cell_toggle_new (0, 2, images);
-
+
cell_date = e_cell_date_new(NULL, GTK_JUSTIFY_RIGHT);
g_object_set (G_OBJECT (cell_date),
"bold_column", COL_UNREAD,
@@ -1597,16 +1597,16 @@ static ECell * create_composite_cell (int col)
"bold_column", COL_UNREAD,
"color_column", COL_COLOUR,
NULL);
-
+
e_cell_hbox_append (E_CELL_HBOX (cell_hbox), cell_from, show_email ? col : alt_col, 68);
e_cell_hbox_append (E_CELL_HBOX (cell_hbox), cell_attach, COL_ATTACHMENT, 5);
e_cell_hbox_append (E_CELL_HBOX (cell_hbox), cell_date, COL_SENT, 27);
-
+
cell_sub = e_cell_text_new(fixed_name? fixed_name:NULL, GTK_JUSTIFY_LEFT);
g_object_set (G_OBJECT (cell_sub),
/* "bold_column", COL_UNREAD, */
"color_column", COL_COLOUR,
- NULL);
+ NULL);
cell_tree = e_cell_tree_new (NULL, NULL, TRUE, cell_sub);
e_cell_vbox_append (E_CELL_VBOX (cell_vbox), cell_hbox, COL_FROM);
e_cell_vbox_append (E_CELL_VBOX (cell_vbox), cell_tree, COL_SUBJECT);
@@ -1624,9 +1624,9 @@ static void
composite_cell_set_strike_col (ECell *cell, int col)
{
g_object_set (G_OBJECT (g_object_get_data(G_OBJECT (cell), "cell_date")), "strikeout_column", col, NULL);
- g_object_set (G_OBJECT (g_object_get_data(G_OBJECT (cell), "cell_from")), "strikeout_column", col, NULL);
+ g_object_set (G_OBJECT (g_object_get_data(G_OBJECT (cell), "cell_from")), "strikeout_column", col, NULL);
}
-
+
static ETableExtras *
message_list_create_extras (void)
{
@@ -1641,31 +1641,31 @@ message_list_create_extras (void)
e_table_extras_add_pixbuf (extras, "attachment", states_pixmaps [6].pixbuf);
e_table_extras_add_pixbuf (extras, "flagged", states_pixmaps [7].pixbuf);
e_table_extras_add_pixbuf (extras, "followup", states_pixmaps [15].pixbuf);
-
+
e_table_extras_add_compare (extras, "address_compare", address_compare);
-
+
for (i = 0; i < 5; i++)
images [i] = states_pixmaps [i].pixbuf;
-
+
e_table_extras_add_cell (extras, "render_message_status", e_cell_toggle_new (0, 5, images));
-
+
for (i = 0; i < 2; i++)
images [i] = states_pixmaps [i + 5].pixbuf;
-
+
e_table_extras_add_cell (extras, "render_attachment", e_cell_toggle_new (0, 2, images));
-
+
images [1] = states_pixmaps [7].pixbuf;
e_table_extras_add_cell (extras, "render_flagged", e_cell_toggle_new (0, 2, images));
-
+
images[1] = states_pixmaps [15].pixbuf;
images[2] = states_pixmaps [16].pixbuf;
e_table_extras_add_cell (extras, "render_flag_status", e_cell_toggle_new (0, 3, images));
-
+
for (i = 0; i < 7; i++)
images[i] = states_pixmaps [i + 7].pixbuf;
-
+
e_table_extras_add_cell (extras, "render_score", e_cell_toggle_new (0, 7, images));
-
+
/* date cell */
cell = e_cell_date_new (NULL, GTK_JUSTIFY_LEFT);
g_object_set (G_OBJECT (cell),
@@ -1673,7 +1673,7 @@ message_list_create_extras (void)
"color_column", COL_COLOUR,
NULL);
e_table_extras_add_cell (extras, "render_date", cell);
-
+
/* text cell */
cell = e_cell_text_new (NULL, GTK_JUSTIFY_LEFT);
g_object_set (G_OBJECT (cell),
@@ -1681,11 +1681,11 @@ message_list_create_extras (void)
"color_column", COL_COLOUR,
NULL);
e_table_extras_add_cell (extras, "render_text", cell);
-
- e_table_extras_add_cell (extras, "render_tree",
+
+ e_table_extras_add_cell (extras, "render_tree",
e_cell_tree_new (NULL, NULL, /* let the tree renderer default the pixmaps */
TRUE, cell));
-
+
/* size cell */
cell = e_cell_size_new (NULL, GTK_JUSTIFY_RIGHT);
g_object_set (G_OBJECT (cell),
@@ -1697,10 +1697,10 @@ message_list_create_extras (void)
/* Composite cell for wide view */
cell = create_composite_cell (COL_FROM);
e_table_extras_add_cell (extras, "render_composite_from", cell);
-
+
cell = create_composite_cell (COL_TO);
- e_table_extras_add_cell (extras, "render_composite_to", cell);
-
+ e_table_extras_add_cell (extras, "render_composite_to", cell);
+
return extras;
}
@@ -1708,10 +1708,10 @@ static void
save_tree_state(MessageList *ml)
{
char *filename;
-
+
if (ml->folder == NULL || ml->tree == NULL)
return;
-
+
filename = mail_config_folder_to_cachename(ml->folder, "et-expanded-");
e_tree_save_expanded_state(ml->tree, filename);
g_free(filename);
@@ -1731,10 +1731,10 @@ static void
load_tree_state (MessageList *ml)
{
char *filename;
-
+
if (ml->folder == NULL || ml->tree == NULL)
return;
-
+
filename = mail_config_folder_to_cachename (ml->folder, "et-expanded-");
e_tree_load_expanded_state (ml->tree, filename);
g_free (filename);
@@ -1763,10 +1763,10 @@ message_list_setup_etree (MessageList *message_list, gboolean outgoing)
g_object_set (message_list->tree,
"uniform_row_height", TRUE,
NULL);
-
+
name = camel_service_get_name (CAMEL_SERVICE (message_list->folder->parent_store), TRUE);
d(printf ("folder name is '%s'\n", name));
-
+
path = mail_config_folder_to_cachename (message_list->folder, "et-expanded-");
g_object_set_data (G_OBJECT (((GnomeCanvasItem *) item)->canvas), "freeze-cursor", &data);
@@ -1775,7 +1775,7 @@ message_list_setup_etree (MessageList *message_list, gboolean outgoing)
e_tree_load_expanded_state (message_list->tree, path);
}
g_free (path);
-
+
g_free (name);
}
}
@@ -1849,7 +1849,7 @@ ml_tree_drag_data_get (ETree *tree, int row, ETreePath path, int col,
/* Drop handling */
struct _drop_msg {
struct _mail_msg msg;
-
+
GdkDragContext *context;
/* Only selection->data and selection->length are valid */
@@ -1859,7 +1859,7 @@ struct _drop_msg {
guint32 action;
guint info;
-
+
unsigned int move:1;
unsigned int moved:1;
unsigned int aborted:1;
@@ -1899,7 +1899,7 @@ ml_drop_async_done(struct _mail_msg *mm)
{
struct _drop_msg *m = (struct _drop_msg *)mm;
gboolean success, delete;
-
+
/* ?? */
if (m->aborted) {
success = FALSE;
@@ -1916,7 +1916,7 @@ static void
ml_drop_async_free(struct _mail_msg *mm)
{
struct _drop_msg *m = (struct _drop_msg *)mm;
-
+
g_object_unref(m->context);
camel_object_unref(m->folder);
@@ -2067,25 +2067,25 @@ message_list_init (MessageList *message_list)
struct _MessageListPrivate *p;
GtkAdjustment *adjustment;
GdkAtom matom;
-
+
adjustment = (GtkAdjustment *) gtk_adjustment_new (0.0, 0.0, G_MAXDOUBLE, 0.0, 0.0, 0.0);
gtk_scrolled_window_set_vadjustment ((GtkScrolledWindow *) message_list, adjustment);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (message_list), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
-
+
message_list->normalised_hash = g_hash_table_new_full (
g_str_hash, g_str_equal,
(GDestroyNotify) NULL,
(GDestroyNotify) e_poolv_destroy);
-
+
message_list->hidden = NULL;
message_list->hidden_pool = NULL;
message_list->hide_before = ML_HIDE_NONE_START;
message_list->hide_after = ML_HIDE_NONE_END;
-
+
message_list->search = NULL;
-
+
message_list->hide_lock = g_mutex_new();
-
+
message_list->uid_nodemap = g_hash_table_new (g_str_hash, g_str_equal);
message_list->async_event = mail_async_event_new();
@@ -2102,7 +2102,7 @@ message_list_init (MessageList *message_list)
g_signal_connect(p->invisible, "selection_get", G_CALLBACK(ml_selection_get), message_list);
g_signal_connect(p->invisible, "selection_clear_event", G_CALLBACK(ml_selection_clear_event), message_list);
g_signal_connect(p->invisible, "selection_received", G_CALLBACK(ml_selection_received), message_list);
-
+
g_signal_connect (((GtkScrolledWindow *) message_list)->vscrollbar, "value-changed", G_CALLBACK (ml_scrolled), message_list);
}
@@ -2113,7 +2113,7 @@ message_list_destroy(GtkObject *object)
struct _MessageListPrivate *p = message_list->priv;
p->destroyed = TRUE;
-
+
if (message_list->async_event) {
mail_async_event_destroy(message_list->async_event);
message_list->async_event = NULL;
@@ -2131,7 +2131,7 @@ message_list_destroy(GtkObject *object)
g_hash_table_destroy (message_list->uid_nodemap);
message_list->uid_nodemap = NULL;
}
-
+
camel_object_unhook_event(message_list->folder, "folder_changed", folder_changed, message_list);
camel_object_unref (message_list->folder);
message_list->folder = NULL;
@@ -2146,17 +2146,17 @@ message_list_destroy(GtkObject *object)
g_object_unref (message_list->extras);
message_list->extras = NULL;
}
-
+
if (message_list->model) {
g_object_unref (message_list->model);
message_list->model = NULL;
}
-
+
if (message_list->idle_id != 0) {
g_source_remove (message_list->idle_id);
message_list->idle_id = 0;
}
-
+
if (message_list->seen_id) {
g_source_remove (message_list->seen_id);
message_list->seen_id = 0;
@@ -2170,9 +2170,9 @@ message_list_finalise (GObject *object)
{
MessageList *message_list = MESSAGE_LIST (object);
struct _MessageListPrivate *p = message_list->priv;
-
+
g_hash_table_destroy (message_list->normalised_hash);
-
+
if (message_list->thread_tree)
camel_folder_thread_messages_unref(message_list->thread_tree);
@@ -2224,7 +2224,7 @@ message_list_class_init (MessageListClass *message_list_class)
NULL,
g_cclosure_marshal_VOID__STRING,
G_TYPE_NONE, 1, G_TYPE_STRING);
-
+
message_list_signals[MESSAGE_LIST_BUILT] =
g_signal_new ("message_list_built",
MESSAGE_LIST_TYPE,
@@ -2234,7 +2234,7 @@ message_list_class_init (MessageListClass *message_list_class)
NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
-
+
message_list_signals[MESSAGE_LIST_SCROLLED] =
g_signal_new ("message_list_scrolled",
MESSAGE_LIST_TYPE,
@@ -2244,7 +2244,7 @@ message_list_class_init (MessageListClass *message_list_class)
NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
-
+
message_list_init_images ();
}
@@ -2258,35 +2258,35 @@ message_list_construct (MessageList *message_list)
message_list->model =
e_tree_memory_callbacks_new (ml_tree_icon_at,
-
+
ml_column_count,
-
+
ml_has_save_id,
ml_get_save_id,
-
+
ml_has_get_node_by_id,
ml_get_node_by_id,
-
+
ml_tree_sort_value_at,
ml_tree_value_at,
ml_tree_set_value_at,
ml_tree_is_cell_editable,
-
+
ml_duplicate_value,
ml_free_value,
ml_initialize_value,
ml_value_is_empty,
ml_value_to_string,
-
+
message_list);
- e_tree_memory_set_expanded_default(E_TREE_MEMORY(message_list->model),
+ e_tree_memory_set_expanded_default(E_TREE_MEMORY(message_list->model),
gconf_client_get_bool (gconf,
"/apps/evolution/mail/display/thread_expand",
NULL));
message_list->priv->thread_latest = gconf_client_get_bool (gconf, "/apps/evolution/mail/display/thread_latest", NULL);
-
+
/*
* The etree
*/
@@ -2295,7 +2295,7 @@ message_list_construct (MessageList *message_list)
etspecfile = g_build_filename (EVOLUTION_ETSPECDIR, "message-list.etspec", NULL);
construct_failed = (e_tree_scrolled_construct_from_spec_file (E_TREE_SCROLLED (message_list),
message_list->model,
- message_list->extras,
+ message_list->extras,
etspecfile,
NULL)
== FALSE);
@@ -2313,7 +2313,7 @@ message_list_construct (MessageList *message_list)
g_signal_connect((message_list->tree), "cursor_activated",
G_CALLBACK (on_cursor_activated_cmd),
message_list);
-
+
g_signal_connect((message_list->tree), "click",
G_CALLBACK (on_click), message_list);
@@ -2324,14 +2324,14 @@ message_list_construct (MessageList *message_list)
e_tree_drag_source_set(message_list->tree, GDK_BUTTON1_MASK,
ml_drag_types, sizeof(ml_drag_types)/sizeof(ml_drag_types[0]),
GDK_ACTION_MOVE|GDK_ACTION_COPY|GDK_ACTION_ASK);
-
+
g_signal_connect(message_list->tree, "tree_drag_data_get",
G_CALLBACK(ml_tree_drag_data_get), message_list);
e_tree_drag_dest_set(message_list->tree, GTK_DEST_DEFAULT_ALL,
ml_drop_types, sizeof(ml_drop_types)/sizeof(ml_drop_types[0]),
GDK_ACTION_MOVE|GDK_ACTION_COPY|GDK_ACTION_ASK);
-
+
g_signal_connect(message_list->tree, "tree_drag_data_received",
G_CALLBACK(ml_tree_drag_data_received), message_list);
g_signal_connect(message_list->tree, "drag-motion", G_CALLBACK(ml_tree_drag_motion), message_list);
@@ -2386,7 +2386,7 @@ clear_tree (MessageList *ml)
g_hash_table_foreach (ml->uid_nodemap, (GHFunc)clear_info, ml);
g_hash_table_destroy (ml->uid_nodemap);
ml->uid_nodemap = g_hash_table_new (g_str_hash, g_str_equal);
-
+
if (ml->tree_root) {
/* we should be frozen already */
e_tree_memory_node_remove (E_TREE_MEMORY(etm), ml->tree_root);
@@ -2427,9 +2427,9 @@ is_node_selectable (MessageList *ml, CamelMessageInfo *info)
flag_junk = flags & CAMEL_MESSAGE_JUNK;
flag_deleted = flags & CAMEL_MESSAGE_DELETED;
- /* perform actions depending on folder type */
+ /* perform actions depending on folder type */
if (is_junk_folder) {
- /* messages in a junk folder are selectable only if
+ /* messages in a junk folder are selectable only if
* the message is marked as junk and if not deleted
* when hidedeleted is set */
if (flag_junk && !(flag_deleted && ml->hidedeleted))
@@ -2450,7 +2450,7 @@ is_node_selectable (MessageList *ml, CamelMessageInfo *info)
return FALSE;
}
-
+
/* We try and find something that is selectable in our tree. There is
* actually no assurance that we'll find something that will still be
@@ -2687,7 +2687,7 @@ add_node_diff(MessageList *ml, ETreePath parent, ETreePath path, CamelFolderThre
ETreePath node;
g_return_if_fail (c->message != NULL);
-
+
/* we just update the hashtable key, umm, does this leak the info on the message node? */
g_hash_table_remove(ml->uid_nodemap, camel_message_info_uid(c->message));
node = e_tree_memory_node_insert(E_TREE_MEMORY(etm), parent, myrow, (void *)c->message);
@@ -2915,12 +2915,12 @@ static void
message_list_change_first_visible_parent (MessageList *ml, ETreePath node)
{
ETreePath first_visible = NULL;
-
+
while (node && (node = e_tree_model_node_get_parent (ml->model, node))) {
if (!e_tree_node_is_expanded (ml->tree, node))
first_visible = node;
}
-
+
if (first_visible != NULL) {
e_tree_model_pre_change (ml->model);
e_tree_model_node_data_changed (ml->model, first_visible);
@@ -2939,7 +2939,7 @@ build_flat_diff(MessageList *ml, CamelFolderChangeInfo *changes)
#ifdef TIMEIT
struct timeval start, end;
unsigned long diff;
-
+
gettimeofday(&start, NULL);
#endif
@@ -2975,7 +2975,7 @@ build_flat_diff(MessageList *ml, CamelFolderChangeInfo *changes)
if (node) {
e_tree_model_pre_change (ml->model);
e_tree_model_node_data_changed (ml->model, node);
-
+
message_list_change_first_visible_parent (ml, node);
}
}
@@ -2999,7 +2999,7 @@ mail_folder_hide_by_flag (CamelFolder *folder, MessageList *ml, CamelFolderChang
int i;
newchanges = camel_folder_change_info_new ();
-
+
for (i = 0; i < oldchanges->uid_changed->len; i++) {
ETreePath node = g_hash_table_lookup (ml->uid_nodemap, oldchanges->uid_changed->pdata[i]);
guint32 flags;
@@ -3041,17 +3041,17 @@ main_folder_changed (CamelObject *o, gpointer event_data, gpointer user_data)
/* may be NULL if we're in the process of being destroyed */
if (ml->async_event == NULL)
return;
-
+
d(printf("folder changed event, changes = %p\n", changes));
if (changes) {
d(printf("changed = %d added = %d removed = %d\n",
changes->uid_changed->len, changes->uid_added->len, changes->uid_removed->len));
-
+
for (i = 0; i < changes->uid_removed->len; i++)
g_hash_table_remove (
ml->normalised_hash,
changes->uid_removed->pdata[i]);
-
+
/* check if the hidden state has changed, if so modify accordingly, then regenerate */
if (ml->hidejunk || ml->hidedeleted)
mail_folder_hide_by_flag (folder, ml, &changes, (ml->hidejunk ? CAMEL_MESSAGE_JUNK : 0) | (ml->hidedeleted ? CAMEL_MESSAGE_DELETED : 0));
@@ -3062,18 +3062,18 @@ main_folder_changed (CamelObject *o, gpointer event_data, gpointer user_data)
if (node) {
e_tree_model_pre_change (ml->model);
e_tree_model_node_data_changed (ml->model, node);
-
+
message_list_change_first_visible_parent (ml, node);
}
}
-
+
camel_folder_change_info_free (changes);
g_signal_emit(ml, message_list_signals[MESSAGE_LIST_BUILT], 0);
return;
}
}
-
+
mail_regen_list (ml, ml->search, NULL, changes);
}
@@ -3092,7 +3092,7 @@ folder_changed (CamelObject *o, gpointer event_data, gpointer user_data)
} else {
changes = NULL;
}
-
+
mail_async_event_emit(ml->async_event, MAIL_ASYNC_GUI, (MailAsyncFunc)main_folder_changed, o, changes, user_data);
}
@@ -3114,12 +3114,12 @@ message_list_set_folder (MessageList *message_list, CamelFolder *folder, const c
gboolean hide_deleted;
GConfClient *gconf;
CamelException ex;
-
+
g_return_if_fail (IS_MESSAGE_LIST (message_list));
-
+
if (message_list->folder == folder)
return;
-
+
camel_exception_init (&ex);
/* remove the cursor activate idle handler */
@@ -3127,28 +3127,28 @@ message_list_set_folder (MessageList *message_list, CamelFolder *folder, const c
g_source_remove (message_list->idle_id);
message_list->idle_id = 0;
}
-
+
/* reset the normalised sort performance hack */
g_hash_table_remove_all (message_list->normalised_hash);
-
+
mail_regen_cancel(message_list);
-
+
if (message_list->folder != NULL) {
save_tree_state (message_list);
save_hide_state (message_list);
}
-
- e_tree_memory_freeze(E_TREE_MEMORY(etm));
+
+ e_tree_memory_freeze(E_TREE_MEMORY(etm));
clear_tree (message_list);
e_tree_memory_thaw(E_TREE_MEMORY(etm));
-
+
if (message_list->folder) {
camel_object_unhook_event((CamelObject *)message_list->folder, "folder_changed",
folder_changed, message_list);
camel_object_unref (message_list->folder);
message_list->folder = NULL;
}
-
+
if (message_list->thread_tree) {
camel_folder_thread_messages_unref(message_list->thread_tree);
message_list->thread_tree = NULL;
@@ -3158,50 +3158,50 @@ message_list_set_folder (MessageList *message_list, CamelFolder *folder, const c
g_free(message_list->folder_uri);
message_list->folder_uri = uri ? g_strdup(uri):NULL;
}
-
+
if (message_list->cursor_uid) {
g_free(message_list->cursor_uid);
message_list->cursor_uid = NULL;
g_signal_emit(message_list, message_list_signals[MESSAGE_SELECTED], 0, NULL);
}
-
+
if (folder) {
int strikeout_col = -1;
ECell *cell;
-
+
camel_object_ref (folder);
message_list->folder = folder;
message_list->just_set_folder = TRUE;
-
+
/* Setup the strikeout effect for non-trash folders */
if (!(folder->folder_flags & CAMEL_FOLDER_IS_TRASH))
strikeout_col = COL_DELETED;
-
+
cell = e_table_extras_get_cell (message_list->extras, "render_date");
g_object_set (cell, "strikeout_column", strikeout_col, NULL);
-
+
cell = e_table_extras_get_cell (message_list->extras, "render_text");
g_object_set (cell, "strikeout_column", strikeout_col, NULL);
-
+
cell = e_table_extras_get_cell (message_list->extras, "render_size");
g_object_set (cell, "strikeout_column", strikeout_col, NULL);
- cell = e_table_extras_get_cell (message_list->extras, "render_composite_from");
+ cell = e_table_extras_get_cell (message_list->extras, "render_composite_from");
composite_cell_set_strike_col (cell, strikeout_col);
- cell = e_table_extras_get_cell (message_list->extras, "render_composite_to");
+ cell = e_table_extras_get_cell (message_list->extras, "render_composite_to");
composite_cell_set_strike_col (cell, strikeout_col);
-
+
/* Build the etree suitable for this folder */
message_list_setup_etree (message_list, outgoing);
-
+
camel_object_hook_event (folder, "folder_changed", folder_changed, message_list);
-
+
gconf = mail_config_get_gconf_client ();
hide_deleted = !gconf_client_get_bool (gconf, "/apps/evolution/mail/display/show_deleted", NULL);
message_list->hidedeleted = hide_deleted && !(folder->folder_flags & CAMEL_FOLDER_IS_TRASH);
message_list->hidejunk = junk_folder && !(folder->folder_flags & CAMEL_FOLDER_IS_JUNK) && !(folder->folder_flags & CAMEL_FOLDER_IS_TRASH);
-
+
load_hide_state (message_list);
if (message_list->frozen == 0)
mail_regen_list (message_list, message_list->search, NULL, NULL);
@@ -3221,7 +3221,7 @@ on_cursor_activated_idle (gpointer data)
} else {
g_signal_emit (message_list, message_list_signals[MESSAGE_SELECTED], 0, NULL);
}
-
+
message_list->idle_id = 0;
return FALSE;
}
@@ -3240,11 +3240,11 @@ on_cursor_activated_cmd (ETree *tree, int row, ETreePath path, gpointer user_dat
if ((message_list->cursor_uid == NULL && new_uid == NULL)
|| (message_list->cursor_uid != NULL && new_uid != NULL && !strcmp (message_list->cursor_uid, new_uid)))
return;
-
+
message_list->cursor_row = row;
g_free (message_list->cursor_uid);
message_list->cursor_uid = g_strdup (new_uid);
-
+
if (!message_list->idle_id) {
message_list->idle_id =
g_idle_add_full (G_PRIORITY_LOW, on_cursor_activated_idle,
@@ -3298,7 +3298,7 @@ on_click (ETree *tree, gint row, ETreePath path, gint col, GdkEvent *event, Mess
flag = CAMEL_MESSAGE_FLAGGED;
else
return FALSE;
-
+
if (!(info = get_message_info (list, path)))
return FALSE;
@@ -3307,21 +3307,21 @@ on_click (ETree *tree, gint row, ETreePath path, gint col, GdkEvent *event, Mess
/* If a message was marked as deleted and the user flags it as
important, marks it as needing a reply, marks it as unread,
then undelete the message. */
- if (flags & CAMEL_MESSAGE_DELETED) {
+ if (flags & CAMEL_MESSAGE_DELETED) {
if (col == COL_FLAGGED && !(flags & CAMEL_MESSAGE_FLAGGED))
flag |= CAMEL_MESSAGE_DELETED;
-
+
if (col == COL_MESSAGE_STATUS && (flags & CAMEL_MESSAGE_SEEN))
flag |= CAMEL_MESSAGE_DELETED;
}
-
+
camel_folder_set_message_flags (list->folder, camel_message_info_uid (info), flag, ~flags);
-
+
if (flag == CAMEL_MESSAGE_SEEN && list->seen_id) {
g_source_remove (list->seen_id);
list->seen_id = 0;
}
-
+
return TRUE;
}
@@ -3418,18 +3418,18 @@ void message_list_free_uids(MessageList *ml, GPtrArray *uids)
}
/* set whether we are in threaded view or flat view */
-void
+void
message_list_set_threaded_expand_all (MessageList *ml)
{
if (ml->threaded) {
ml->expand_all = 1;
-
+
if (ml->frozen == 0)
mail_regen_list (ml, ml->search, NULL, NULL);
- }
+ }
}
-
-void
+
+void
message_list_set_threaded_collapse_all (MessageList *ml)
{
if (ml->threaded) {
@@ -3439,13 +3439,13 @@ message_list_set_threaded_collapse_all (MessageList *ml)
mail_regen_list (ml, ml->search, NULL, NULL);
}
}
-
+
void
message_list_set_threaded (MessageList *ml, gboolean threaded)
{
if (ml->threaded != threaded) {
ml->threaded = threaded;
-
+
if (ml->frozen == 0)
mail_regen_list (ml, ml->search, NULL, NULL);
}
@@ -3456,7 +3456,7 @@ message_list_set_expand_all (MessageList *ml, gboolean threaded)
{
if (ml->threaded != threaded) {
ml->threaded = threaded;
-
+
if (ml->frozen == 0)
mail_regen_list (ml, ml->search, NULL, NULL);
}
@@ -3467,7 +3467,7 @@ message_list_set_hidedeleted (MessageList *ml, gboolean hidedeleted)
{
if (ml->hidedeleted != hidedeleted) {
ml->hidedeleted = hidedeleted;
-
+
if (ml->frozen == 0)
mail_regen_list (ml, ml->search, NULL, NULL);
}
@@ -3479,7 +3479,7 @@ message_list_set_search (MessageList *ml, const char *search)
if (search == NULL || search[0] == '\0')
if (ml->search == NULL || ml->search[0] == '\0')
return;
-
+
if (search != NULL && ml->search != NULL && strcmp (search, ml->search) == 0)
return;
@@ -3556,14 +3556,14 @@ void
message_list_hide_add (MessageList *ml, const char *expr, unsigned int lower, unsigned int upper)
{
MESSAGE_LIST_LOCK (ml, hide_lock);
-
+
if (lower != ML_HIDE_SAME)
ml->hide_before = lower;
if (upper != ML_HIDE_SAME)
ml->hide_after = upper;
-
+
MESSAGE_LIST_UNLOCK (ml, hide_lock);
-
+
mail_regen_list (ml, ml->search, expr, NULL);
}
@@ -3582,7 +3582,7 @@ message_list_hide_uids (MessageList *ml, GPtrArray *uids)
ml->hidden = g_hash_table_new (g_str_hash, g_str_equal);
ml->hidden_pool = e_mempool_new (512, 256, E_MEMPOOL_ALIGN_BYTE);
}
-
+
uid = e_mempool_strdup (ml->hidden_pool, uids->pdata[i]);
g_hash_table_insert (ml->hidden, uid, uid);
for ( ; i < uids->len; i++) {
@@ -3666,7 +3666,7 @@ load_hide_state (MessageList *ml)
ml->hide_after = upper;
while (!feof(in)) {
char *olduid, *uid;
-
+
if (camel_file_util_decode_string (in, &olduid) != -1) {
uid = e_mempool_strdup(ml->hidden_pool, olduid);
g_free (olduid);
@@ -3694,10 +3694,10 @@ save_hide_state (MessageList *ml)
{
char *filename;
FILE *out;
-
+
if (ml->folder == NULL)
return;
-
+
MESSAGE_LIST_LOCK(ml, hide_lock);
filename = mail_config_folder_to_cachename(ml->folder, "hidestate-");
@@ -3759,7 +3759,7 @@ regen_list_regen (struct _mail_msg *mm)
GPtrArray *uids, *uidnew, *showuids, *searchuids = NULL;
CamelMessageInfo *info;
int i;
-
+
if (m->folder != m->ml->folder)
return;
@@ -3803,49 +3803,49 @@ regen_list_regen (struct _mail_msg *mm)
uids = camel_folder_get_uids (m->folder);
}
}
-
+
if (camel_exception_is_set (&mm->ex))
return;
-
+
/* perform hiding */
if (m->hideexpr && camel_folder_has_search_capability(m->folder)) {
uidnew = camel_folder_search_by_expression (m->ml->folder, m->hideexpr, &mm->ex);
/* well, lets not abort just because this faileld ... */
camel_exception_clear (&mm->ex);
-
+
if (uidnew) {
MESSAGE_LIST_LOCK(m->ml, hide_lock);
-
+
if (m->ml->hidden == NULL) {
m->ml->hidden = g_hash_table_new (g_str_hash, g_str_equal);
m->ml->hidden_pool = e_mempool_new (512, 256, E_MEMPOOL_ALIGN_BYTE);
}
-
+
for (i = 0; i < uidnew->len; i++) {
if (g_hash_table_lookup (m->ml->hidden, uidnew->pdata[i]) == NULL) {
char *uid = e_mempool_strdup (m->ml->hidden_pool, uidnew->pdata[i]);
g_hash_table_insert (m->ml->hidden, uid, uid);
}
}
-
+
MESSAGE_LIST_UNLOCK(m->ml, hide_lock);
-
+
camel_folder_search_free (m->ml->folder, uidnew);
}
}
-
+
MESSAGE_LIST_LOCK(m->ml, hide_lock);
-
+
m->ml->hide_unhidden = uids->len;
-
+
/* what semantics do we want from hide_before, hide_after?
probably <0 means measure from the end of the list */
-
+
/* perform uid hiding */
if (m->ml->hidden || m->ml->hide_before != ML_HIDE_NONE_START || m->ml->hide_after != ML_HIDE_NONE_END) {
int start, end;
uidnew = g_ptr_array_new ();
-
+
/* first, hide matches */
if (m->ml->hidden) {
for (i = 0; i < uids->len; i++) {
@@ -3853,26 +3853,26 @@ regen_list_regen (struct _mail_msg *mm)
g_ptr_array_add (uidnew, uids->pdata[i]);
}
}
-
+
/* then calculate the subrange visible and chop it out */
m->ml->hide_unhidden = uidnew->len;
-
+
if (m->ml->hide_before != ML_HIDE_NONE_START || m->ml->hide_after != ML_HIDE_NONE_END) {
GPtrArray *uid2 = g_ptr_array_new ();
-
+
start = m->ml->hide_before;
if (start < 0)
start += m->ml->hide_unhidden;
end = m->ml->hide_after;
if (end < 0)
end += m->ml->hide_unhidden;
-
+
start = MAX(start, 0);
end = MIN(end, uidnew->len);
for (i = start; i < end; i++) {
g_ptr_array_add (uid2, uidnew->pdata[i]);
}
-
+
g_ptr_array_free (uidnew, TRUE);
uidnew = uid2;
}
@@ -3881,11 +3881,11 @@ regen_list_regen (struct _mail_msg *mm)
uidnew = NULL;
showuids = uids;
}
-
+
MESSAGE_LIST_UNLOCK(m->ml, hide_lock);
e_profile_event_emit("list.threaduids", m->folder->full_name, 0);
-
+
if (!camel_operation_cancel_check(mm->cancel)) {
/* update/build a new tree */
if (m->dotree) {
@@ -3901,7 +3901,7 @@ regen_list_regen (struct _mail_msg *mm)
g_ptr_array_add(m->summary, info);
}
}
-
+
m->complete = TRUE;
}
@@ -3921,10 +3921,10 @@ regen_list_regened (struct _mail_msg *mm)
if (m->ml->priv->destroyed)
return;
-
+
if (!m->complete)
return;
-
+
if (camel_operation_cancel_check(mm->cancel))
return;
@@ -3938,20 +3938,20 @@ regen_list_regened (struct _mail_msg *mm)
m->ml->just_set_folder = FALSE;
else /* Saving the tree state causes bug 352695 but fixes bug 387312 */
save_tree_state (m->ml);
-
+
build_tree (m->ml, m->tree, m->changes);
if (m->ml->thread_tree)
camel_folder_thread_messages_unref(m->ml->thread_tree);
m->ml->thread_tree = m->tree;
m->tree = NULL;
-
+
if (m->ml->expand_all)
load_tree_expand_all (m->ml, TRUE);
else if (m->ml->collapse_all)
load_tree_expand_all (m->ml, FALSE);
else
load_tree_state (m->ml);
-
+
m->ml->expand_all = FALSE;
m->ml->collapse_all = FALSE;
} else
@@ -3988,15 +3988,15 @@ regen_list_free (struct _mail_msg *mm)
camel_folder_free_message_info (m->folder, m->summary->pdata[i]);
g_ptr_array_free (m->summary, TRUE);
}
-
+
if (m->tree)
camel_folder_thread_messages_unref (m->tree);
-
+
g_free (m->search);
g_free (m->hideexpr);
-
+
camel_object_unref (m->folder);
-
+
if (m->changes)
camel_folder_change_info_free (m->changes);
@@ -4034,10 +4034,10 @@ mail_regen_cancel(MessageList *ml)
/* cancel any outstanding regeneration requests, not we don't clear, they clear themselves */
if (ml->regen) {
GList *l = ml->regen;
-
+
while (l) {
struct _mail_msg *mm = l->data;
-
+
if (mm->cancel)
camel_operation_cancel(mm->cancel);
l = l->next;
@@ -4070,10 +4070,10 @@ mail_regen_list (MessageList *ml, const char *search, const char *hideexpr, Came
mail_regen_cancel(ml);
gconf = mail_config_get_gconf_client ();
-
+
#ifndef BROKEN_ETREE
/* this can sometimes crash,so ... */
-
+
/* see if we need to goto the child thread at all anyway */
/* currently the only case is the flat view with updates and no search */
if (hideexpr == NULL && search == NULL && changes != NULL && !ml->threaded) {
diff --git a/mail/message-list.h b/mail/message-list.h
index b5d577be0f..21cd784c00 100644
--- a/mail/message-list.h
+++ b/mail/message-list.h
@@ -60,14 +60,14 @@ enum {
COL_RECIPIENTS,
COL_MIXED_SENDER,
COL_MIXED_RECIPIENTS,
-
+
/* normalised strings */
COL_FROM_NORM,
COL_SUBJECT_NORM,
COL_TO_NORM,
-
+
COL_LAST,
-
+
/* Invisible columns */
COL_DELETED,
COL_UNREAD,
@@ -100,34 +100,34 @@ struct _MessageList {
char *folder_uri;
GHashTable *uid_nodemap; /* uid (from info) -> tree node mapping */
-
+
GHashTable *normalised_hash;
-
+
/* UID's to hide. Keys in the mempool */
/* IMPORTANT: You MUST have obtained the hide lock, to operate on this data */
GHashTable *hidden;
struct _EMemPool *hidden_pool;
int hide_unhidden; /* total length, before hiding */
int hide_before, hide_after; /* hide ranges of messages */
-
+
/* Current search string, or %NULL */
char *search;
-
+
/* are we regenerating the message_list because set_folder was just called? */
guint just_set_folder : 1;
-
+
/* Are we displaying threaded view? */
guint threaded : 1;
guint expand_all :1;
guint collapse_all :1;
-
+
/* do we automatically hide deleted messages? */
guint hidedeleted : 1;
/* do we automatically hide junk messages? */
guint hidejunk : 1;
-
+
/* frozen count */
guint frozen:16;
diff --git a/mail/message-tag-editor.c b/mail/message-tag-editor.c
index 3e45a41b73..d398b7b8d2 100644
--- a/mail/message-tag-editor.c
+++ b/mail/message-tag-editor.c
@@ -42,7 +42,7 @@ GType
message_tag_editor_get_type (void)
{
static GType type = 0;
-
+
if (!type) {
static const GTypeInfo info = {
sizeof (MessageTagEditorClass),
@@ -55,10 +55,10 @@ message_tag_editor_get_type (void)
0,
(GInstanceInitFunc) message_tag_editor_init,
};
-
+
type = g_type_register_static (gtk_dialog_get_type (), "MessageTagEditor", &info, 0);
}
-
+
return type;
}
@@ -66,11 +66,11 @@ static void
message_tag_editor_class_init (MessageTagEditorClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
-
+
parent_class = g_type_class_ref (gtk_dialog_get_type ());
-
+
object_class->finalize = message_tag_editor_finalise;
-
+
klass->get_tag_list = get_tag_list;
klass->set_tag_list = set_tag_list;
}
@@ -83,7 +83,7 @@ message_tag_editor_init (MessageTagEditor *editor)
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
GTK_STOCK_OK, GTK_RESPONSE_OK,
NULL);
-
+
gtk_dialog_set_default_response (GTK_DIALOG (editor), GTK_RESPONSE_OK);
}
@@ -92,7 +92,7 @@ static void
message_tag_editor_finalise (GObject *obj)
{
/*MessageTagEditor *editor = (MessageTagEditor *) obj;*/
-
+
G_OBJECT_CLASS (parent_class)->finalize (obj);
}
@@ -106,7 +106,7 @@ CamelTag *
message_tag_editor_get_tag_list (MessageTagEditor *editor)
{
g_return_val_if_fail (IS_MESSAGE_TAG_EDITOR (editor), NULL);
-
+
return MESSAGE_TAG_EDITOR_GET_CLASS (editor)->get_tag_list (editor);
}
@@ -123,6 +123,6 @@ message_tag_editor_set_tag_list (MessageTagEditor *editor, CamelTag *tags)
{
g_return_if_fail (IS_MESSAGE_TAG_EDITOR (editor));
g_return_if_fail (tags != NULL);
-
+
MESSAGE_TAG_EDITOR_GET_CLASS (editor)->set_tag_list (editor, tags);
}
diff --git a/mail/message-tag-editor.h b/mail/message-tag-editor.h
index 3a7e850f34..cc96b648a7 100644
--- a/mail/message-tag-editor.h
+++ b/mail/message-tag-editor.h
@@ -46,16 +46,16 @@ typedef struct _MessageTagEditorClass MessageTagEditorClass;
struct _MessageTagEditor {
GtkDialog parent;
-
+
};
struct _MessageTagEditorClass {
GtkDialogClass parent_class;
-
+
/* virtual methods */
CamelTag * (*get_tag_list) (MessageTagEditor *editor);
void (*set_tag_list) (MessageTagEditor *editor, CamelTag *tags);
-
+
/* signals */
};
diff --git a/mail/message-tag-followup.c b/mail/message-tag-followup.c
index ed1d4516c5..668c7b9637 100644
--- a/mail/message-tag-followup.c
+++ b/mail/message-tag-followup.c
@@ -94,7 +94,7 @@ GType
message_tag_followup_get_type (void)
{
static GType type = 0;
-
+
if (!type) {
static const GTypeInfo info = {
sizeof (MessageTagFollowUpClass),
@@ -107,10 +107,10 @@ message_tag_followup_get_type (void)
0,
(GInstanceInitFunc) message_tag_followup_init,
};
-
+
type = g_type_register_static (message_tag_editor_get_type (), "MessageTagFollowUp", &info, 0);
}
-
+
return type;
}
@@ -119,11 +119,11 @@ message_tag_followup_class_init (MessageTagFollowUpClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
MessageTagEditorClass *editor_class = (MessageTagEditorClass *) klass;
-
+
parent_class = g_type_class_ref (message_tag_editor_get_type ());
-
+
object_class->finalize = message_tag_followup_finalise;
-
+
editor_class->get_tag_list = get_tag_list;
editor_class->set_tag_list = set_tag_list;
}
@@ -143,9 +143,9 @@ static void
message_tag_followup_finalise (GObject *obj)
{
MessageTagFollowUp *editor = (MessageTagFollowUp *) obj;
-
+
editor->completed_date = 0;
-
+
G_OBJECT_CLASS (parent_class)->finalize (obj);
}
@@ -157,9 +157,9 @@ get_tag_list (MessageTagEditor *editor)
CamelTag *tags = NULL;
time_t date;
char *text;
-
+
camel_tag_set (&tags, "follow-up", gtk_entry_get_text (GTK_ENTRY (followup->combo->entry)));
-
+
date = e_date_edit_get_time (followup->target_date);
if (date != (time_t) -1) {
text = camel_header_format_date (date, 0);
@@ -168,7 +168,7 @@ get_tag_list (MessageTagEditor *editor)
} else {
camel_tag_set (&tags, "due-by", "");
}
-
+
if (gtk_toggle_button_get_active (followup->completed)) {
text = camel_header_format_date (followup->completed_date, 0);
camel_tag_set (&tags, "completed-on", text);
@@ -176,7 +176,7 @@ get_tag_list (MessageTagEditor *editor)
} else {
camel_tag_set (&tags, "completed-on", "");
}
-
+
return tags;
}
@@ -186,11 +186,11 @@ set_tag_list (MessageTagEditor *editor, CamelTag *tags)
MessageTagFollowUp *followup = (MessageTagFollowUp *) editor;
const char *text;
time_t date;
-
+
text = camel_tag_get (&tags, "follow-up");
if (text)
gtk_entry_set_text (GTK_ENTRY (followup->combo->entry), text);
-
+
text = camel_tag_get (&tags, "due-by");
if (text && *text) {
date = camel_header_decode_date (text, NULL);
@@ -198,7 +198,7 @@ set_tag_list (MessageTagEditor *editor, CamelTag *tags)
} else {
e_date_edit_set_time (followup->target_date, (time_t) -1);
}
-
+
text = camel_tag_get (&tags, "completed-on");
if (text && *text) {
date = camel_header_decode_date (text, NULL);
@@ -213,9 +213,9 @@ static void
clear_clicked (GtkButton *button, gpointer user_data)
{
MessageTagFollowUp *followup = user_data;
-
+
gtk_list_select_item (GTK_LIST (followup->combo->list), DEFAULT_FLAG);
-
+
e_date_edit_set_time (followup->target_date, (time_t) -1);
gtk_toggle_button_set_active (followup->completed, FALSE);
}
@@ -224,7 +224,7 @@ static void
completed_toggled (GtkToggleButton *button, gpointer user_data)
{
MessageTagFollowUp *followup = user_data;
-
+
if (gtk_toggle_button_get_active (followup->completed))
followup->completed_date = time (NULL);
else
@@ -235,7 +235,7 @@ static int
get_week_start_day (void)
{
GConfClient *gconf;
-
+
gconf = mail_config_get_gconf_client ();
return gconf_client_get_int (gconf, "/apps/evolution/calendar/display/week_start_day", NULL);
}
@@ -245,7 +245,7 @@ locale_supports_12_hour_format (void)
{
char s[16];
time_t t = 0;
-
+
strftime(s, sizeof s, "%p", gmtime (&t));
return s[0] != '\0';
}
@@ -259,24 +259,24 @@ target_date_new (const char *s1, const char *s2, int i1, int i2)
GConfClient *gconf;
GtkWidget *widget;
int start;
-
+
widget = e_date_edit_new ();
e_date_edit_set_show_date (E_DATE_EDIT (widget), TRUE);
e_date_edit_set_show_time (E_DATE_EDIT (widget), TRUE);
-
+
/* Note that this is 0 (Sun) to 6 (Sat), conver to 0 (mon) to 6 (sun) */
start = (get_week_start_day () + 6) % 7;
-
+
if (locale_supports_12_hour_format ()) {
gconf = mail_config_get_gconf_client ();
time_24hour = gconf_client_get_bool (gconf, "/apps/evolution/calendar/display/use_24hour_format", NULL);
}
-
+
e_date_edit_set_week_start_day (E_DATE_EDIT (widget), start);
e_date_edit_set_use_24_hour_format (E_DATE_EDIT (widget), time_24hour);
e_date_edit_set_allow_no_date_set (E_DATE_EDIT (widget), TRUE);
e_date_edit_set_time_popup_range (E_DATE_EDIT (widget), 0, 24);
-
+
return widget;
}
@@ -293,9 +293,9 @@ construct (MessageTagEditor *editor)
GdkPixbuf *pixbuf;
int i;
char *gladefile;
-
+
gtk_window_set_title (GTK_WINDOW (editor), _("Flag to Follow Up"));
-
+
icon_list = e_icon_factory_get_icon_list ("stock_mail-flag-for-followup");
if (icon_list) {
gtk_window_set_icon_list (GTK_WINDOW (editor), icon_list);
@@ -312,30 +312,30 @@ construct (MessageTagEditor *editor)
NULL);
gui = glade_xml_new (gladefile, "followup_editor", NULL);
g_free (gladefile);
-
+
widget = glade_xml_get_widget (gui, "toplevel");
-
+
/* reparent */
gtk_widget_reparent (widget, GTK_DIALOG (editor)->vbox);
gtk_box_set_child_packing (GTK_BOX (GTK_DIALOG (editor)->vbox), widget, TRUE, TRUE, 6, GTK_PACK_START);
-
+
widget = glade_xml_get_widget (gui, "pixmap");
pixbuf = e_icon_factory_get_icon ("stock_mail-flag-for-followup", E_ICON_SIZE_DIALOG);
gtk_image_set_from_pixbuf ((GtkImage *)widget, pixbuf);
g_object_unref (pixbuf);
-
+
followup->message_list = GTK_TREE_VIEW (glade_xml_get_widget (gui, "message_list"));
model = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING);
gtk_tree_view_set_model (followup->message_list, (GtkTreeModel *) model);
-
+
renderer = gtk_cell_renderer_text_new ();
gtk_tree_view_insert_column_with_attributes (followup->message_list, -1, _("From"),
renderer, "text", 0, NULL);
-
+
renderer = gtk_cell_renderer_text_new ();
gtk_tree_view_insert_column_with_attributes (followup->message_list, -1, _("Subject"),
renderer, "text", 1, NULL);
-
+
followup->combo = GTK_COMBO (glade_xml_get_widget (gui, "combo"));
gtk_combo_set_case_sensitive (followup->combo, FALSE);
strings = NULL;
@@ -344,18 +344,18 @@ construct (MessageTagEditor *editor)
gtk_combo_set_popdown_strings (followup->combo, strings);
g_list_free (strings);
gtk_list_select_item (GTK_LIST (followup->combo->list), DEFAULT_FLAG);
-
+
followup->target_date = E_DATE_EDIT (glade_xml_get_widget (gui, "target_date"));
/* glade bug, need to show this ourselves */
gtk_widget_show ((GtkWidget *) followup->target_date);
e_date_edit_set_time (followup->target_date, (time_t) -1);
-
+
followup->completed = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "completed"));
g_signal_connect (followup->completed, "toggled", G_CALLBACK (completed_toggled), followup);
-
+
followup->clear = GTK_BUTTON (glade_xml_get_widget (gui, "clear"));
g_signal_connect (followup->clear, "clicked", G_CALLBACK (clear_clicked), followup);
-
+
g_object_unref (gui);
}
@@ -363,10 +363,10 @@ MessageTagEditor *
message_tag_followup_new (void)
{
MessageTagEditor *editor;
-
+
editor = (MessageTagEditor *) g_object_new (message_tag_followup_get_type (), NULL);
construct (editor);
-
+
return editor;
}
@@ -375,11 +375,11 @@ message_tag_followup_append_message (MessageTagFollowUp *editor, const char *fro
{
GtkTreeIter iter;
GtkListStore *model;
-
+
g_return_if_fail (IS_MESSAGE_TAG_FOLLOWUP (editor));
-
+
model = (GtkListStore *) gtk_tree_view_get_model (editor->message_list);
-
+
gtk_list_store_append (model, &iter);
gtk_list_store_set (model, &iter, 0, from, 1, subject, -1);
}
diff --git a/mail/message-tag-followup.h b/mail/message-tag-followup.h
index b870406260..a31dbd5df0 100644
--- a/mail/message-tag-followup.h
+++ b/mail/message-tag-followup.h
@@ -43,21 +43,21 @@ typedef struct _MessageTagFollowUpClass MessageTagFollowUpClass;
struct _MessageTagFollowUp {
MessageTagEditor parent;
-
+
struct _GtkTreeView *message_list;
-
+
struct _GtkCombo *combo;
-
+
struct _EDateEdit *target_date;
struct _GtkToggleButton *completed;
struct _GtkButton *clear;
-
+
time_t completed_date;
};
struct _MessageTagFollowUpClass {
MessageTagEditorClass parent_class;
-
+
/* virtual methods */
/* signals */
};