diff options
author | Matthew Barnes <mbarnes@src.gnome.org> | 2009-01-27 06:18:58 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@src.gnome.org> | 2009-01-27 06:18:58 +0800 |
commit | e0f414941dd4e13ea074996d10606b0dae7e494b (patch) | |
tree | 2ebf55cdd625e82547787f92aaddad4132374a02 /mail/em-composer-prefs.c | |
parent | bc80332460c353e391cd620f2cc51f7b56eef4de (diff) | |
download | gsoc2013-evolution-e0f414941dd4e13ea074996d10606b0dae7e494b.tar.gz gsoc2013-evolution-e0f414941dd4e13ea074996d10606b0dae7e494b.tar.zst gsoc2013-evolution-e0f414941dd4e13ea074996d10606b0dae7e494b.zip |
Split EAccountList and ESignatureList management out of the mail module.
This reduces the dependency of the composer on the mail module, which is
currently a circular dependency.
svn path=/branches/kill-bonobo/; revision=37135
Diffstat (limited to 'mail/em-composer-prefs.c')
-rw-r--r-- | mail/em-composer-prefs.c | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/mail/em-composer-prefs.c b/mail/em-composer-prefs.c index 52bbd98479..2609e46835 100644 --- a/mail/em-composer-prefs.c +++ b/mail/em-composer-prefs.c @@ -31,8 +31,7 @@ #include <fcntl.h> #include "e-util/e-binding.h" -#include "e-util/e-signature.h" -#include "e-util/e-signature-list.h" +#include "e-util/e-signature-utils.h" #include "e-util/gconf-bridge.h" #include "em-composer-prefs.h" @@ -97,7 +96,7 @@ composer_prefs_dispose (GObject *object) EMComposerPrefs *prefs = (EMComposerPrefs *) object; ESignatureList *signature_list; - signature_list = mail_config_get_signatures (); + signature_list = e_get_signature_list (); if (prefs->sig_added_id != 0) { g_signal_handler_disconnect ( @@ -380,12 +379,19 @@ sig_delete_cb (GtkWidget *widget, EMComposerPrefs *prefs) GtkTreeModel *model; GtkTreeIter iter; ESignature *signature; + ESignatureList *signature_list; + signature_list = e_get_signature_list (); 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, &signature, -1); - mail_config_remove_signature (signature); + + if (signature->filename && !signature->script) + g_unlink (signature->filename); + + e_signature_list_remove (signature_list, signature); + e_signature_list_save (signature_list); } gtk_widget_grab_focus ((GtkWidget *)prefs->sig_list); } @@ -425,24 +431,27 @@ sig_add_script_response (GtkWidget *widget, int button, EMComposerPrefs *prefs) struct stat st; if (g_stat (argv[0], &st) == 0 && S_ISREG (st.st_mode) && g_access (argv[0], X_OK) == 0) { + ESignatureList *signature_list; ESignature *signature; + signature_list = e_get_signature_list (); + if ((signature = g_object_get_data ((GObject *) entry, "sig"))) { /* we're just editing an existing signature script */ g_free (signature->name); signature->name = g_strdup (name); g_free(signature->filename); signature->filename = g_strdup(script); - e_signature_list_change (mail_config_get_signatures (), signature); + e_signature_list_change (signature_list, signature); } else { signature = mail_config_signature_new (script, TRUE, TRUE); signature->name = g_strdup (name); - e_signature_list_add (mail_config_get_signatures (), signature); + e_signature_list_add (signature_list, signature); g_object_unref (signature); } - mail_config_save_signatures(); + e_signature_list_save (signature_list); gtk_widget_hide (prefs->sig_script_dialog); g_strfreev (argv); @@ -505,7 +514,7 @@ sig_fill_list (EMComposerPrefs *prefs) model = gtk_tree_view_get_model (prefs->sig_list); gtk_list_store_clear (GTK_LIST_STORE (model)); - signature_list = mail_config_get_signatures (); + signature_list = e_get_signature_list (); iterator = e_list_get_iterator ((EList *) signature_list); while (e_iterator_is_valid (iterator)) { |