#include "mainwindow.h"
#include "statusbar.h"
#include "msgcache.h"
+#include "passwordstore.h"
#include "timing.h"
#include "messageview.h"
{
N_("_New meeting..."),
N_("_Export calendar..."),
- N_("_Subscribe to webCal..."),
+ N_("_Subscribe to Webcal..."),
N_("_Unsubscribe..."),
N_("_Rename..."),
N_("U_pdate subscriptions"),
event = vcal_manager_load_event(d);
if (!event)
continue;
- if (event->rec_occurence) {
+ if (event->rec_occurrence) {
vcal_manager_free_event(event);
claws_unlink(d);
continue;
event->sequence, event->type);
g_free(uid);
vcal_manager_copy_attendees(event, nevent);
- nevent->rec_occurence = TRUE;
+ nevent->rec_occurrence = TRUE;
vcal_manager_save_event(nevent, FALSE);
account = vcal_manager_get_account_from_event(event);
status =
continue;
g_hash_table_insert(hash_uids, GINT_TO_POINTER(n_msg), g_strdup(event->uid));
- if (event->rec_occurence) {
+ if (event->rec_occurrence) {
vcal_manager_free_event(event);
continue;
}
if (_item == folder->inbox)
vcal_remove_event(folder, msginfo);
- procmsg_msginfo_free(msginfo);
+ procmsg_msginfo_free(&msginfo);
return 0;
}
{
FolderItem *item = folder?folder->inbox:NULL;
gboolean need_scan = folder?vcal_scan_required(folder, item):TRUE;
+ gchar *export_pass = NULL;
+ gchar *export_freebusy_pass = NULL;
if (vcal_folder_lock_count) /* blocked */
return;
vcal_folder_lock_count++;
+
+ export_pass = vcal_passwd_get("export");
+ export_freebusy_pass = vcal_passwd_get("export_freebusy");
+
if (vcal_meeting_export_calendar(vcalprefs.export_path,
vcalprefs.export_user,
- vcalprefs.export_pass,
+ export_pass,
TRUE)) {
debug_print("exporting calendar\n");
if (vcalprefs.export_enable &&
vcalprefs.export_command &&
strlen(vcalprefs.export_command))
execute_command_line(
- vcalprefs.export_command, TRUE);
+ vcalprefs.export_command, TRUE, NULL);
+ }
+ if (export_pass != NULL) {
+ memset(export_pass, 0, strlen(export_pass));
}
+ g_free(export_pass);
if (vcal_meeting_export_freebusy(vcalprefs.export_freebusy_path,
vcalprefs.export_freebusy_user,
- vcalprefs.export_freebusy_pass)) {
+ export_freebusy_pass)) {
debug_print("exporting freebusy\n");
if (vcalprefs.export_freebusy_enable &&
vcalprefs.export_freebusy_command &&
strlen(vcalprefs.export_freebusy_command))
execute_command_line(
- vcalprefs.export_freebusy_command, TRUE);
+ vcalprefs.export_freebusy_command, TRUE, NULL);
}
+ if (export_freebusy_pass != NULL) {
+ memset(export_freebusy_pass, 0, strlen(export_freebusy_pass));
+ }
+ g_free(export_freebusy_pass);
vcal_folder_lock_count--;
if (!need_scan && folder) {
vcal_set_mtime(folder, folder->inbox);
}
if (strncmp(feed, "BEGIN:VCALENDAR", strlen("BEGIN:VCALENDAR"))) {
if (verbose && manual_update) {
- alertpanel_error(_("This URL does not look like a WebCal URL:\n%s\n%s"),
+ alertpanel_error(_("This URL does not look like a Webcal URL:\n%s\n%s"),
uri, error ? error:_("Unknown error"));
} else {
- log_error(LOG_PROTOCOL, _("This URL does not look like a WebCal URL:\n%s\n%s\n"),
+ log_error(LOG_PROTOCOL, _("This URL does not look like a Webcal URL:\n%s\n%s\n"),
uri, error ? error:_("Unknown error"));
}
g_free(feed);
gchar *title = feed_get_title(feed);
if (title == NULL) {
if (strstr(uri, "://"))
- title = g_strdup(strstr(uri,"://")+3);
+ title = g_path_get_basename(strstr(uri,"://")+3);
else
title = g_strdup(uri);
subst_for_filename(title);
- if (strlen(title) > 32) {
- title[29]=title[30]=title[31]='.';
- title[32]='\0';
- }
}
item = folder_create_folder(root->node->data, title);
if (!item) {
gchar *uri = NULL;
gchar *tmp = NULL;
- tmp = input_dialog(_("Subscribe to WebCal"), _("Enter the WebCal URL:"), NULL);
+ tmp = input_dialog(_("Subscribe to Webcal"), _("Enter the WebCal URL:"), NULL);
if (tmp == NULL)
return;
static void unsubscribe_cal_cb(GtkAction *action, gpointer data)
{
FolderView *folderview = (FolderView *)data;
- GtkCMCTree *ctree = GTK_CMCTREE(folderview->ctree);
- FolderItem *item;
+ FolderItem *item, *opened;
gchar *message;
AlertValue avalue;
gchar *old_id;
g_return_if_fail(item != NULL);
g_return_if_fail(item->path != NULL);
g_return_if_fail(item->folder != NULL);
+ opened = folderview_get_opened_item(folderview);
message = g_strdup_printf
(_("Do you really want to unsubscribe?"));
- avalue = alertpanel_full(_("Delete folder"), message,
+ avalue = alertpanel_full(_("Delete subscription"), message,
GTK_STOCK_CANCEL, GTK_STOCK_DELETE, NULL,
FALSE, NULL, ALERT_WARNING, G_ALERTDEFAULT);
g_free(message);
vcal_item_closed(item);
- if (folderview->opened == folderview->selected ||
- gtk_cmctree_is_ancestor(ctree,
- folderview->selected,
- folderview->opened)) {
+ if (item == opened ||
+ folder_is_child_of(item, opened)) {
summary_clear_all(folderview->summaryview);
- folderview->opened = NULL;
+ folderview_close_opened(folderview, TRUE);
}
if (item->folder->klass->remove_folder(item->folder, item) < 0) {
{
FolderView *folderview = (FolderView *)data;
gint action = gtk_radio_action_get_current_value (GTK_RADIO_ACTION (current));
- GtkCMCTree *ctree = GTK_CMCTREE(folderview->ctree);
FolderItem *item = NULL, *oitem = NULL;
if (!folderview->selected) return;
if (setting_sensitivity) return;
- oitem = gtk_cmctree_node_get_row_data(ctree, folderview->opened);
+ oitem = folderview_get_opened_item(folderview);
item = folderview_get_selected_item(folderview);
if (!item)
icalproperty_new_prodid(
"-//Claws Mail//NONSGML Claws Mail Calendar//EN"),
icalproperty_new_calscale("GREGORIAN"),
- 0);
+ (void*)0);
vcal_manager_event_dump(event, FALSE, FALSE, calendar, FALSE);
ical = g_strdup(icalcomponent_as_ical_string(calendar));
icalcomponent_free(calendar);
info = folder_item_get_msginfo_by_msgid(folder->inbox, id);
if (info != NULL) {
- procmsg_msginfo_free(info);
+ procmsg_msginfo_free(&info);
return TRUE;
}
return FALSE;
if (info != NULL) {
debug_print("removing event %s\n", id);
vcal_remove_event(folder, info);
- procmsg_msginfo_free(info);
+ procmsg_msginfo_free(&info);
folder_item_scan(folder->inbox);
return TRUE;
}