From cea054cd54d84479352a43bbabc19c9ce9af5efb Mon Sep 17 00:00:00 2001
From: Matthew Barnes <mbarnes@src.gnome.org>
Date: Fri, 8 Aug 2008 04:26:12 +0000
Subject: Merge revisions 35747:35930 from trunk.

svn path=/branches/kill-bonobo/; revision=35931
---
 mail/em-utils.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

(limited to 'mail/em-utils.c')

diff --git a/mail/em-utils.c b/mail/em-utils.c
index ff686f3d8c..4fd8a98958 100644
--- a/mail/em-utils.c
+++ b/mail/em-utils.c
@@ -1364,7 +1364,53 @@ em_utils_temp_save_part(GtkWidget *parent, CamelMimePart *part, gboolean mode)
 	return path;
 }
 
+/** em_utils_folder_is_templates:
+ * @folder: folder
+ * @uri: uri for this folder, if known
+ *
+ * Decides if @folder is a Templates folder.
+ *
+ * Returns %TRUE if this is a Drafts folder or %FALSE otherwise.
+ **/
+
+gboolean
+em_utils_folder_is_templates (CamelFolder *folder, const char *uri)
+{
+	EAccountList *accounts;
+	EAccount *account;
+	EIterator *iter;
+	int is = FALSE;
+	char *templates_uri;
 
+	if (folder == mail_component_get_folder (NULL, MAIL_COMPONENT_FOLDER_TEMPLATES))
+		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->templates_folder_uri) {
+			templates_uri = em_uri_to_camel (account->templates_folder_uri);
+			if (camel_store_folder_uri_equal (folder->parent_store, templates_uri, uri)) {
+				g_free (templates_uri);
+				is = TRUE;
+				break;
+			}
+			g_free (templates_uri);
+		}
+		
+		e_iterator_next (iter);
+	}
+	
+	g_object_unref (iter);
+	
+	return is;
+}
+		
 /**
  * em_utils_folder_is_drafts:
  * @folder: folder
-- 
cgit