aboutsummaryrefslogtreecommitdiffstats
path: root/calendar
diff options
context:
space:
mode:
authorHarish Krishnaswamy <kharish@src.gnome.org>2005-01-10 19:09:07 +0800
committerHarish Krishnaswamy <kharish@src.gnome.org>2005-01-10 19:09:07 +0800
commit25f5e0831b30fd2aa55a3cedcc444cdeb9b37889 (patch)
treed0a981b42e6ca37b980f629d6a12045ab7f9e86b /calendar
parent25364488bb4d8ecb5313025e4b915dbc1de10ffa (diff)
downloadgsoc2013-evolution-25f5e0831b30fd2aa55a3cedcc444cdeb9b37889.tar.gz
gsoc2013-evolution-25f5e0831b30fd2aa55a3cedcc444cdeb9b37889.tar.zst
gsoc2013-evolution-25f5e0831b30fd2aa55a3cedcc444cdeb9b37889.zip
Modified cal-attachment-bar to allow the path to the local attachment
* gui/dialogs/cal-attachment-bar.[ch]: (destroy), (init), (cal_attachment_bar_set_local_attachment_store), (cal_attachment_bar_get_attachment_list), (cal_attachment_bar_get_nth_attachment_filename), (cal_attachment_bar_set_attachment_list): Modified cal-attachment-bar to allow the path to the local attachment store be set externally, thereby hiding the storage policy of different backends from it. * gui/dialogs/comp-editor.c: * (real_edit_comp): set the local attachment store after obtaining it from the calendar. svn path=/trunk/; revision=28311
Diffstat (limited to 'calendar')
-rw-r--r--calendar/ChangeLog14
-rw-r--r--calendar/gui/dialogs/cal-attachment-bar.c28
-rw-r--r--calendar/gui/dialogs/cal-attachment-bar.h3
-rw-r--r--calendar/gui/dialogs/comp-editor.c7
4 files changed, 32 insertions, 20 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog
index 21b279b628..81483923b5 100644
--- a/calendar/ChangeLog
+++ b/calendar/ChangeLog
@@ -1,3 +1,17 @@
+2005-01-10 Harish Krishnaswamy <kharish@novell.com>
+
+ * gui/dialogs/cal-attachment-bar.[ch]: (destroy), (init),
+ (cal_attachment_bar_set_local_attachment_store),
+ (cal_attachment_bar_get_attachment_list),
+ (cal_attachment_bar_get_nth_attachment_filename),
+ (cal_attachment_bar_set_attachment_list):
+ Modified cal-attachment-bar to allow the path to
+ the local attachment store be set externally, thereby
+ hiding the storage policy of different backends from it.
+ * gui/dialogs/comp-editor.c: (real_edit_comp):
+ set the local attachment store after obtaining it from
+ the calendar.
+
2005-01-09 JP Rosevear <jpr@novell.com>
* gui/calendar-component.c (impl_handleURI): handle calendar://
diff --git a/calendar/gui/dialogs/cal-attachment-bar.c b/calendar/gui/dialogs/cal-attachment-bar.c
index 1d2c252476..2dea375a87 100644
--- a/calendar/gui/dialogs/cal-attachment-bar.c
+++ b/calendar/gui/dialogs/cal-attachment-bar.c
@@ -74,9 +74,9 @@ struct _CalAttachmentBarPrivate {
guint num_attachments;
/* The persistent copies of the attachments
* derive their location and name from the
- * source_url and the comp_uid.
+ * local_attachment_store and the comp_uid.
*/
- char *source_url;
+ char *local_attachment_store;
char *comp_uid;
};
@@ -540,8 +540,8 @@ destroy (GtkObject *object)
/* TODO leaking this here to prevent a crash */
/*
- if (bar->priv->source_url)
- g_free (bar->priv->source_url);
+ if (bar->priv->local_attachment_store)
+ g_free (bar->priv->local_attachment_store);
if (bar->priv->comp_uid)
g_free (bar->priv->comp_uid);
*/
@@ -635,7 +635,7 @@ init (CalAttachmentBar *bar)
priv->attachments = NULL;
priv->num_attachments = 0;
- priv->source_url = NULL;
+ priv->local_attachment_store = NULL;
priv->comp_uid = NULL;
bar->priv = priv;
@@ -729,11 +729,13 @@ get_default_charset (void)
}
void
-cal_attachment_bar_set_source_url (CalAttachmentBar *bar, char *source_url)
+cal_attachment_bar_set_local_attachment_store (CalAttachmentBar *bar,
+ const char *attachment_store)
{
- if (bar->priv->source_url)
- g_free (bar->priv->source_url);
- bar->priv->source_url = source_url;
+ if (bar->priv->local_attachment_store)
+ g_free (bar->priv->local_attachment_store);
+ bar->priv->local_attachment_store =
+ g_strconcat (attachment_store, "/", NULL);
}
void
@@ -796,9 +798,7 @@ cal_attachment_bar_get_attachment_list (CalAttachmentBar *bar)
/* Extract the content from the stream and write it down
* as a mime part file into the directory denoting the
* calendar source */
- /* TODO convert it into a generic path using the source
- * uri and use content-id to generate filename */
- attach_file_url = g_strconcat (priv->source_url,
+ attach_file_url = g_strconcat (priv->local_attachment_store,
priv->comp_uid, "-",
camel_file_util_safe_filename
(camel_mime_part_get_filename (attachment->body)), NULL);
@@ -831,7 +831,7 @@ cal_attachment_bar_get_nth_attachment_filename (CalAttachmentBar *bar, int n)
g_return_val_if_fail (E_IS_CAL_ATTACHMENT_BAR (bar), 0);
attach = g_slist_nth_data (bar->priv->attachments, n);
- return g_strconcat (bar->priv->source_url, bar->priv->comp_uid, "-", camel_mime_part_get_filename
+ return g_strconcat (bar->priv->local_attachment_store, bar->priv->comp_uid, "-", camel_mime_part_get_filename
(attach->body), NULL);
}
@@ -870,7 +870,7 @@ cal_attachment_bar_set_attachment_list (CalAttachmentBar *bar, GSList *attach_li
attach = g_slist_nth_data (priv->attachments,
priv->num_attachments-1);
camel_mime_part_set_filename (attach->body,
- attach_filename + strlen (priv->source_url)+
+ attach_filename + strlen (priv->local_attachment_store)+
strlen (priv->comp_uid) + 1);
update (bar);
}
diff --git a/calendar/gui/dialogs/cal-attachment-bar.h b/calendar/gui/dialogs/cal-attachment-bar.h
index 97c6ac0cf4..468bae0495 100644
--- a/calendar/gui/dialogs/cal-attachment-bar.h
+++ b/calendar/gui/dialogs/cal-attachment-bar.h
@@ -73,7 +73,8 @@ GSList *cal_attachment_bar_get_attachment_list (CalAttachmentBar *bar);
char * cal_attachment_bar_get_nth_attachment_filename (CalAttachmentBar *bar, int n);
GSList *cal_attachment_bar_get_mime_attach_list (CalAttachmentBar *bar);
void cal_attachment_bar_set_attachment_list (CalAttachmentBar *bar, GSList *attach_list);
-void cal_attachment_bar_set_source_url (CalAttachmentBar *bar, char *source_url);
+void cal_attachment_bar_set_local_attachment_store (CalAttachmentBar *bar,
+ const char *attachment_store);
void cal_attachment_bar_set_comp_uid (CalAttachmentBar *bar, char *comp_uid);
#ifdef __cplusplus
diff --git a/calendar/gui/dialogs/comp-editor.c b/calendar/gui/dialogs/comp-editor.c
index 401ea63b9b..012ccecd35 100644
--- a/calendar/gui/dialogs/comp-editor.c
+++ b/calendar/gui/dialogs/comp-editor.c
@@ -1241,7 +1241,6 @@ static void
real_edit_comp (CompEditor *editor, ECalComponent *comp)
{
CompEditorPrivate *priv;
- char *source_url;
const char *uid;
g_return_if_fail (editor != NULL);
@@ -1264,10 +1263,8 @@ real_edit_comp (CompEditor *editor, ECalComponent *comp)
set_title_from_comp (editor);
set_icon_from_comp (editor);
e_cal_component_get_uid (comp, &uid);
- source_url = g_strconcat (e_cal_get_uri (priv->client), "/", NULL);
- /* The source_url and uid will be preserved by the callee and freed when
- * the latter gets destroyed */
- cal_attachment_bar_set_source_url (priv->attachment_bar, source_url);
+ cal_attachment_bar_set_local_attachment_store (priv->attachment_bar,
+ e_cal_get_local_attachment_store (priv->client));
cal_attachment_bar_set_comp_uid (priv->attachment_bar, g_strdup (uid));
fill_widgets (editor);