changed to setup the rule part properly, it could never have worked. Bug
2003-12-03 Not Zed <NotZed@Ximian.com> * mail-autofilter.c (rule_match_thread): changed to setup the rule part properly, it could never have worked. Bug #51601. * em-popup.c (emp_uri_popup_address_add): implement. * em-folder-view.c (emfv_popup_add_sender): implement. (emfv_add_sender_addressbook): hook up to above func. * em-utils.c (em_utils_add_address): implementation to add an email address to the addressbook. (emu_add_address_cb): callback required for funny api. Bug #51321. svn path=/trunk/; revision=23592
This commit is contained in:
@ -1,3 +1,18 @@
|
||||
2003-12-03 Not Zed <NotZed@Ximian.com>
|
||||
|
||||
* mail-autofilter.c (rule_match_thread): changed to setup the rule
|
||||
part properly, it could never have worked. Bug #51601.
|
||||
|
||||
* em-popup.c (emp_uri_popup_address_add): implement.
|
||||
|
||||
* em-folder-view.c (emfv_popup_add_sender): implement.
|
||||
(emfv_add_sender_addressbook): hook up to above func.
|
||||
|
||||
* em-utils.c (em_utils_add_address): implementation to add an
|
||||
email address to the addressbook.
|
||||
(emu_add_address_cb): callback required for funny api. Bug
|
||||
#51321.
|
||||
|
||||
2003-12-02 Jeffrey Stedfast <fejj@ximian.com>
|
||||
|
||||
* em-folder-tree-model.c (drop_uid_list): Moved here.
|
||||
|
||||
@ -630,8 +630,17 @@ emfv_popup_label_set(GtkWidget *w, struct _emfv_label_item *item)
|
||||
static void
|
||||
emfv_popup_add_sender(GtkWidget *w, EMFolderView *emfv)
|
||||
{
|
||||
/* FIXME */
|
||||
printf("UNIMPLEMENTED: add sender to addressbook\n");
|
||||
GPtrArray *uids = message_list_get_selected(emfv->list);
|
||||
CamelMessageInfo *info;
|
||||
const char *addr;
|
||||
|
||||
if (uids->len == 1
|
||||
&& (info = camel_folder_get_message_info(emfv->folder, uids->pdata[0])) != NULL
|
||||
&& (addr = camel_message_info_from(info)) != NULL
|
||||
&& addr[0] != 0)
|
||||
em_utils_add_address((GtkWidget *)emfv, addr);
|
||||
|
||||
em_utils_uids_free(uids);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -824,6 +833,7 @@ from(BonoboUIComponent *uid, void *data, const char *path) \
|
||||
to(NULL, (EMFolderView *)data); \
|
||||
}
|
||||
|
||||
EMFV_MAP_CALLBACK(emfv_add_sender_addressbook, emfv_popup_add_sender)
|
||||
EMFV_MAP_CALLBACK(emfv_message_apply_filters, emfv_popup_apply_filters)
|
||||
EMFV_MAP_CALLBACK(emfv_message_copy, emfv_popup_copy)
|
||||
EMFV_MAP_CALLBACK(emfv_message_move, emfv_popup_move)
|
||||
@ -933,15 +943,6 @@ emfv_mail_previous_unread(BonoboUIComponent *uid, void *data, const char *path)
|
||||
message_list_select(emfv->list, MESSAGE_LIST_SELECT_PREVIOUS, 0, CAMEL_MESSAGE_SEEN, TRUE);
|
||||
}
|
||||
|
||||
static void
|
||||
emfv_add_sender_addressbook(BonoboUIComponent *uid, void *data, const char *path)
|
||||
{
|
||||
EMFolderView *emfv = data;
|
||||
|
||||
emfv = emfv;
|
||||
/* FIXME: need to find out what the new addressbook API is for this... */
|
||||
}
|
||||
|
||||
static void
|
||||
emfv_message_forward_attached (BonoboUIComponent *uic, void *data, const char *path)
|
||||
{
|
||||
|
||||
@ -22,6 +22,7 @@
|
||||
#include <camel/camel-folder.h>
|
||||
#include <camel/camel-mime-message.h>
|
||||
#include <camel/camel-string-utils.h>
|
||||
#include <camel/camel-url.h>
|
||||
|
||||
static void emp_standard_menu_factory(EMPopup *emp, EMPopupTarget *target, void *data);
|
||||
|
||||
@ -678,7 +679,18 @@ emp_uri_popup_address_send (GtkWidget *w, EMPopupTarget *t)
|
||||
static void
|
||||
emp_uri_popup_address_add(GtkWidget *w, EMPopupTarget *t)
|
||||
{
|
||||
printf("UNIMPLEMENTED: Add address '%s'\n", t->data.uri);
|
||||
CamelURL *url;
|
||||
|
||||
url = camel_url_new(t->data.uri, NULL);
|
||||
if (url == NULL) {
|
||||
g_warning("cannot parse url '%s'", t->data.uri);
|
||||
return;
|
||||
}
|
||||
|
||||
if (url->path && url->path[0])
|
||||
em_utils_add_address(w, url->path);
|
||||
|
||||
camel_url_free(url);
|
||||
}
|
||||
|
||||
static EMPopupItem emp_standard_uri_popups[] = {
|
||||
|
||||
@ -1443,6 +1443,48 @@ em_utils_save_messages (GtkWidget *parent, CamelFolder *folder, GPtrArray *uids)
|
||||
gtk_widget_show((GtkWidget *)filesel);
|
||||
}
|
||||
|
||||
/* ********************************************************************** */
|
||||
|
||||
static void
|
||||
emu_add_address_cb(BonoboListener *listener, const char *name, const CORBA_any *any, CORBA_Environment *ev, void *data)
|
||||
{
|
||||
char *type = bonobo_event_subtype(name);
|
||||
|
||||
if (!strcmp(type, "Destroy"))
|
||||
gtk_widget_destroy((GtkWidget *)data);
|
||||
|
||||
g_free(type);
|
||||
}
|
||||
|
||||
/**
|
||||
* em_utils_add_address:
|
||||
* @parent:
|
||||
* @email:
|
||||
*
|
||||
* Add address @email to the addressbook.
|
||||
**/
|
||||
void em_utils_add_address(struct _GtkWidget *parent, const char *email)
|
||||
{
|
||||
GtkWidget *win;
|
||||
GtkWidget *control;
|
||||
/*GtkWidget *socket;*/
|
||||
|
||||
win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
|
||||
gtk_window_set_title((GtkWindow *)win, _("Add address"));
|
||||
|
||||
control = bonobo_widget_new_control("OAFIID:GNOME_Evolution_Addressbook_AddressPopup:" BASE_VERSION, CORBA_OBJECT_NIL);
|
||||
bonobo_widget_set_property((BonoboWidget *)control, "email", TC_CORBA_string, email, NULL);
|
||||
|
||||
bonobo_event_source_client_add_listener(bonobo_widget_get_objref((BonoboWidget *)control), emu_add_address_cb, NULL, NULL, win);
|
||||
|
||||
/*socket = find_socket (GTK_CONTAINER (control));
|
||||
g_object_weak_ref ((GObject *) socket, (GWeakNotify) gtk_widget_destroy, win);*/
|
||||
|
||||
gtk_container_add((GtkContainer *)win, control);
|
||||
gtk_widget_show_all(win);
|
||||
}
|
||||
|
||||
/* ********************************************************************** */
|
||||
/* Flag-for-Followup... */
|
||||
|
||||
/* tag-editor callback data */
|
||||
|
||||
@ -88,6 +88,8 @@ void em_utils_post_reply_to_message_by_uid (struct _CamelFolder *folder, const c
|
||||
void em_utils_save_part(struct _GtkWidget *parent, const char *prompt, struct _CamelMimePart *part);
|
||||
void em_utils_save_messages (struct _GtkWidget *parent, struct _CamelFolder *folder, GPtrArray *uids);
|
||||
|
||||
void em_utils_add_address(struct _GtkWidget *parent, const char *email);
|
||||
|
||||
void em_utils_flag_for_followup (struct _GtkWidget *parent, struct _CamelFolder *folder, GPtrArray *uids);
|
||||
void em_utils_flag_for_followup_clear (struct _GtkWidget *parent, struct _CamelFolder *folder, GPtrArray *uids);
|
||||
void em_utils_flag_for_followup_completed (struct _GtkWidget *parent, struct _CamelFolder *folder, GPtrArray *uids);
|
||||
|
||||
@ -236,8 +236,11 @@ rule_match_thread (RuleContext *context, FilterRule *rule, const char *msgid)
|
||||
|
||||
element = filter_part_find_element (part, "header-type");
|
||||
filter_option_set_current ((FilterOption *) element, "contains");
|
||||
|
||||
element = filter_part_find_element (part, "header-field");
|
||||
filter_input_set_value ((FilterInput *) element, "References");
|
||||
|
||||
element = filter_part_find_element (part, "header");
|
||||
element = filter_part_find_element (part, "word");
|
||||
filter_input_set_value ((FilterInput *) element, msgid);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user