aboutsummaryrefslogtreecommitdiffstats
path: root/mail
diff options
context:
space:
mode:
authorRodrigo Moya <rodrigo@gnome-db.org>2011-10-13 18:55:34 +0800
committerRodrigo Moya <rodrigo@gnome-db.org>2011-10-13 18:55:34 +0800
commitcb3e037f8f55f95892104326807d9988be87fbe4 (patch)
treeacac7b63e7a8b1ea4f37273363cb423dbff491ed /mail
parentb77871e4fd7a4464e3a2e4e458f0d10e71805a02 (diff)
parentee5ca188d56abc91ca9fce034322466d5b0f4b9f (diff)
downloadgsoc2013-evolution-cb3e037f8f55f95892104326807d9988be87fbe4.tar.gz
gsoc2013-evolution-cb3e037f8f55f95892104326807d9988be87fbe4.tar.zst
gsoc2013-evolution-cb3e037f8f55f95892104326807d9988be87fbe4.zip
Merge branch 'master' into wip/gsettings
Diffstat (limited to 'mail')
-rw-r--r--mail/e-mail-store.c4
-rw-r--r--mail/em-folder-tree.c38
-rw-r--r--mail/mail-config.ui2
3 files changed, 41 insertions, 3 deletions
diff --git a/mail/e-mail-store.c b/mail/e-mail-store.c
index e59e7b2abd..4785eb5177 100644
--- a/mail/e-mail-store.c
+++ b/mail/e-mail-store.c
@@ -383,7 +383,7 @@ handle_transport:
camel_url_free (url);
}
- if (!skip && (provider->flags & CAMEL_PROVIDER_IS_STORAGE))
+ if (!skip && (provider->flags & CAMEL_PROVIDER_IS_STORAGE) != 0 && store_table != NULL)
e_mail_store_add (backend, CAMEL_STORE (service));
return CAMEL_STORE (service);
@@ -457,7 +457,7 @@ e_mail_store_remove_by_account (EMailBackend *backend,
provider = camel_service_get_provider (service);
g_return_if_fail (provider != NULL);
- if (!(provider->flags & CAMEL_PROVIDER_IS_STORAGE))
+ if (!(provider->flags & CAMEL_PROVIDER_IS_STORAGE) || store_table == NULL)
return;
e_mail_store_remove (backend, CAMEL_STORE (service));
diff --git a/mail/em-folder-tree.c b/mail/em-folder-tree.c
index 1d831cc4e4..973051324f 100644
--- a/mail/em-folder-tree.c
+++ b/mail/em-folder-tree.c
@@ -612,6 +612,7 @@ folder_tree_cell_edited_cb (EMFolderTree *folder_tree,
gchar *old_name = NULL;
gchar *old_full_name = NULL;
gchar *new_full_name = NULL;
+ gchar *folder_uri;
gchar **strv;
gpointer parent;
guint index;
@@ -681,7 +682,11 @@ folder_tree_cell_edited_cb (EMFolderTree *folder_tree,
goto exit;
}
-exit:
+ folder_uri = e_mail_folder_uri_build (store, new_full_name);
+ em_folder_tree_set_selected (folder_tree, folder_uri, FALSE);
+ g_free (folder_uri);
+
+ exit:
g_free (old_name);
g_free (old_full_name);
@@ -2004,9 +2009,11 @@ struct _DragDataReceivedAsync {
/* Only selection->data and selection->length are valid */
GtkSelectionData *selection;
+ EMFolderTree *folder_tree;
EMailSession *session;
CamelStore *store;
gchar *full_name;
+ gchar *dest_folder_uri;
guint32 action;
guint info;
@@ -2021,6 +2028,7 @@ folder_tree_drop_folder (struct _DragDataReceivedAsync *m)
CamelFolder *folder;
CamelStore *parent_store;
GCancellable *cancellable;
+ const gchar *folder_name;
const gchar *full_name;
const guchar *data;
@@ -2043,6 +2051,22 @@ folder_tree_drop_folder (struct _DragDataReceivedAsync *m)
parent_store, full_name, m->store,
m->full_name ? m->full_name : "", m->move);
+ folder_name = strrchr (full_name, '/');
+ if (folder_name)
+ folder_name++;
+ else
+ folder_name = full_name;
+
+ if (m->full_name) {
+ gchar *dest_root_name;
+
+ dest_root_name = g_strconcat (m->full_name, "/", folder_name, NULL);
+ m->dest_folder_uri = e_mail_folder_uri_build (m->store, dest_root_name);
+ g_free (dest_root_name);
+ } else {
+ m->dest_folder_uri = e_mail_folder_uri_build (m->store, folder_name);
+ }
+
g_object_unref (folder);
}
@@ -2127,10 +2151,20 @@ folder_tree_drop_async__exec (struct _DragDataReceivedAsync *m,
static void
folder_tree_drop_async__free (struct _DragDataReceivedAsync *m)
{
+ if (m->move && m->dest_folder_uri) {
+ GList *selected_list;
+
+ selected_list = g_list_append (NULL, m->dest_folder_uri);
+ em_folder_tree_set_selected_list (m->folder_tree, selected_list, FALSE);
+ g_list_free (selected_list);
+ }
+
+ g_object_unref (m->folder_tree);
g_object_unref (m->session);
g_object_unref (m->context);
g_object_unref (m->store);
g_free (m->full_name);
+ g_free (m->dest_folder_uri);
gtk_selection_data_free (m->selection);
}
@@ -2213,10 +2247,12 @@ tree_drag_data_received (GtkWidget *widget,
}
m = mail_msg_new (&folder_tree_drop_async_info);
+ m->folder_tree = g_object_ref (folder_tree);
m->session = g_object_ref (session);
m->context = g_object_ref (context);
m->store = g_object_ref (store);
m->full_name = full_name;
+ m->dest_folder_uri = NULL;
m->action = gdk_drag_context_get_selected_action (context);
m->info = info;
diff --git a/mail/mail-config.ui b/mail/mail-config.ui
index 8c788b69ad..616d4eab15 100644
--- a/mail/mail-config.ui
+++ b/mail/mail-config.ui
@@ -605,6 +605,7 @@ for display purposes only. </property>
<property name="xalign">1</property>
<property name="label" translatable="yes">_Reply style:</property>
<property name="use_underline">True</property>
+ <property name="mnemonic_widget">comboboxReplyStyle</property>
</object>
<packing>
<property name="x_options">GTK_FILL</property>
@@ -618,6 +619,7 @@ for display purposes only. </property>
<property name="xalign">1</property>
<property name="label" translatable="yes">_Forward style:</property>
<property name="use_underline">True</property>
+ <property name="mnemonic_widget">comboboxForwardStyle</property>
</object>
<packing>
<property name="top_attach">1</property>