From 14e8637d6b1a98b4ed6bedc70d0fca744b7b3e0f Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Sat, 7 Feb 2009 20:04:52 +0000 Subject: Rewrite the mail label code from top to bottom. - Kill the e-util-labels API and read label information into a single-column GtkListStore. Use GConfBridge to automatically keep GConf synched with the list store. - The list store (a singleton instance) is stored in EShellSettings so it's available everywhere. - The list store serves as the model for EMailLabelTreeView, which itself is embedded in EMailLabelManager; a complete label management UI as seen in the preferences dialog. - EMailLabelDialog is used to add or edit a label. Avoid using a color button, instead embed a GtkColorSelection directly in the dialog so everything is in one window. Open issues: - The weird toggle/color/text menu items in the popup menu aren't there. For now they're just regular toggle items. I'll deal with it later. - Filter intergration is broken at the moment. svn path=/branches/kill-bonobo/; revision=37233 --- mail/em-folder-view.c | 670 -------------------------------------------------- 1 file changed, 670 deletions(-) (limited to 'mail/em-folder-view.c') diff --git a/mail/em-folder-view.c b/mail/em-folder-view.c index ef07a650f5..6276fb1158 100644 --- a/mail/em-folder-view.c +++ b/mail/em-folder-view.c @@ -265,85 +265,6 @@ emfv_init(GObject *o) emfv_setting_setup(emfv); } -//static void -//free_one_ui_file (gpointer data, -// gpointer user_data) -//{ -// g_free (data); -//} - -//static void -//emfv_finalise(GObject *o) -//{ -// EMFolderView *emfv = (EMFolderView *)o; -// struct _EMFolderViewPrivate *p = emfv->priv; -// -// g_slist_foreach (emfv->ui_files, free_one_ui_file, NULL); -// g_slist_free(emfv->ui_files); -/// g_slist_free(emfv->enable_map); -// -// g_free(p); -// -// ((GObjectClass *)emfv_parent)->finalize(o); -//} - -//static void -//emfv_destroy (GtkObject *o) -//{ -// EMFolderView *emfv = (EMFolderView *) o; -// struct _EMFolderViewPrivate *p = emfv->priv; -// -// p->destroyed = TRUE; -// -// if (emfv->list && emfv->list->seen_id) { -// g_source_remove(emfv->list->seen_id); -// emfv->list->seen_id = 0; -// } -// -// if (p->setting_notify_id) { -// GConfClient *gconf = gconf_client_get_default(); -// -// gconf_client_notify_remove(gconf, p->setting_notify_id); -// p->setting_notify_id = 0; -// g_object_unref(gconf); -// } -// -// if (emfv->folder) { -// camel_object_unref(emfv->folder); -// g_free(emfv->folder_uri); -// emfv->folder = NULL; -// emfv->folder_uri = NULL; -// } -// -// if (emfv->async) { -// mail_async_event_destroy(emfv->async); -// emfv->async = NULL; -// } -// -// if (p->invisible) { -// gtk_object_destroy((GtkObject *)p->invisible); -// p->invisible = NULL; -// } -// -// if (p->selected_id != 0) { -// g_source_remove(p->selected_id); -// p->selected_id = 0; -// } -// -// g_free(p->selected_uid); -// p->selected_uid = NULL; -// -// g_free (emfv->displayed_uid); -// emfv->displayed_uid = NULL; -// -// emfv->preview = NULL; -// emfv->list = NULL; -// emfv->preview_active = FALSE; -// emfv->uic = NULL; -// -// ((GtkObjectClass *) emfv_parent)->destroy (o); -//} - static void emfv_class_init(GObjectClass *klass) { @@ -390,212 +311,6 @@ emfv_class_init(GObjectClass *klass) 0); } -//GType -//em_folder_view_get_type(void) -//{ -// static GType type = 0; -// -// if (type == 0) { -// static const GTypeInfo info = { -// sizeof(EMFolderViewClass), -// NULL, NULL, -// (GClassInitFunc)emfv_class_init, -// NULL, NULL, -// sizeof(EMFolderView), 0, -// (GInstanceInitFunc)emfv_init -// }; -// emfv_parent = g_type_class_ref(gtk_vbox_get_type()); -// type = g_type_register_static(gtk_vbox_get_type(), "EMFolderView", &info, 0); -// } -// -// return type; -//} - -//GtkWidget *em_folder_view_new(void) -//{ -// EMFolderView *emfv = g_object_new(em_folder_view_get_type(), NULL); -// -// return (GtkWidget *)emfv; -//} - -///* flag all selected messages. Return number flagged */ -///* FIXME: Should this be part of message-list instead? */ -//int -//em_folder_view_mark_selected(EMFolderView *emfv, guint32 mask, guint32 set) -//{ -// GPtrArray *uids; -// int i; -// -// if (emfv->folder == NULL) -// return 0; -// -// uids = message_list_get_selected(emfv->list); -// camel_folder_freeze(emfv->folder); -// -// for (i=0; ilen; i++) -// camel_folder_set_message_flags(emfv->folder, uids->pdata[i], mask, set); -// -// message_list_free_uids(emfv->list, uids); -// camel_folder_thaw(emfv->folder); -// -// return i; -//} - -/* should this be elsewhere/take a uid list? */ -//int -//em_folder_view_open_selected(EMFolderView *emfv) -//{ -// GPtrArray *uids, *views; -// int i = 0; -// -// uids = message_list_get_selected(emfv->list); -// -// if (uids->len >= 10) { -// char *num = g_strdup_printf("%d", uids->len); -// int doit; -// -// doit = em_utils_prompt_user((GtkWindow *)gtk_widget_get_toplevel((GtkWidget *)emfv), -// "/apps/evolution/mail/prompts/open_many", -// "mail:ask-open-many", num, NULL); -// g_free(num); -// if (!doit) { -// message_list_free_uids(emfv->list, uids); -// return 0; -// } -// } -// -// if (em_utils_folder_is_drafts(emfv->folder, emfv->folder_uri) -// || em_utils_folder_is_templates(emfv->folder, emfv->folder_uri) -// || em_utils_folder_is_outbox(emfv->folder, emfv->folder_uri)) { -// em_utils_edit_messages(emfv->folder, uids, TRUE); -// return uids->len; -// } -// -// /* for vfolders we need to edit the *original*, not the vfolder copy */ -// views = g_ptr_array_new(); -// for (i=0;ilen;i++) { -// if (camel_object_is((CamelObject *)emfv->folder, camel_vee_folder_get_type())) { -// CamelVeeMessageInfo *vinfo = (CamelVeeMessageInfo *)camel_folder_get_message_info(emfv->folder, uids->pdata[i]); -// -// if (vinfo) { -// char *uid; -// /* TODO: get_location shouldn't strdup the uid */ -// CamelFolder *f = camel_vee_folder_get_location((CamelVeeFolder *)emfv->folder, vinfo, &uid); -// char *uri = mail_tools_folder_to_url(f); -// -// if (em_utils_folder_is_drafts(f, uri) || em_utils_folder_is_outbox(f, uri)) { -// GPtrArray *edits = g_ptr_array_new(); -// -// g_ptr_array_add(edits, uid); -// em_utils_edit_messages(f, edits, TRUE); -// } else { -// g_free(uid); -// g_ptr_array_add(views, g_strdup(uids->pdata[i])); -// } -// g_free(uri); -// } -// } else { -// g_ptr_array_add(views, g_strdup(uids->pdata[i])); -// } -// } - - /* TODO: have an em_utils_open_messages call? */ - for (i=0; ilen; i++) { - EMMessageBrowser *emmb; - - emmb = (EMMessageBrowser *)em_message_browser_window_new(); - message_list_set_threaded(((EMFolderView *)emmb)->list, emfv->list->threaded); - /* always keep actual message in a list view, even it doesn't belong to the filter anymore */ - message_list_ensure_message (((EMFolderView *)emmb)->list, views->pdata[i]); - message_list_set_search (((EMFolderView *)emmb)->list, emfv->list->search); - em_folder_view_set_hide_deleted((EMFolderView *)emmb, emfv->hide_deleted); - /* FIXME: session needs to be passed easier than this */ - em_format_set_session((EMFormat *)((EMFolderView *)emmb)->preview, ((EMFormat *)emfv->preview)->session); - em_folder_view_set_folder((EMFolderView *)emmb, emfv->folder, emfv->folder_uri); - em_folder_view_set_message((EMFolderView *)emmb, views->pdata[i], FALSE); - gtk_widget_show(emmb->window); - /* TODO: this loads the message twice (!) */ - em_utils_handle_receipt (emfv->folder, uids->pdata[i], NULL); - g_free(views->pdata[i]); - } -// g_ptr_array_free(views, TRUE); -// -// message_list_free_uids(emfv->list, uids); -// -// return i; -//} - -/* ********************************************************************** */ - -//static void -//emfv_set_folder(EMFolderView *emfv, CamelFolder *folder, const char *uri) -//{ -// int isout = (folder && uri -// && (em_utils_folder_is_drafts(folder, uri) -// || em_utils_folder_is_sent(folder, uri) -// || em_utils_folder_is_outbox(folder, uri))); -// -// if (folder == emfv->folder) -// return; -// -// if (emfv->priv->selected_id) -// g_source_remove(emfv->priv->selected_id); -// -// if (emfv->preview) -// em_format_format ((EMFormat *) emfv->preview, NULL, NULL, NULL); -// -// message_list_set_folder(emfv->list, folder, uri, isout); -// g_free(emfv->folder_uri); -// emfv->folder_uri = uri ? g_strdup(uri):NULL; -// -// if (emfv->folder) { -// emfv->hide_deleted = emfv->list->hidedeleted; /* <- a bit nasty but makes it track the display better */ -// mail_sync_folder (emfv->folder, NULL, NULL); -// camel_object_unref(emfv->folder); -// } -// -// emfv->folder = folder; -// if (folder) { -// /* We need to set this up to get the right view options for the message-list, -// * even if we're not showing it */ -// emfv_setup_view_instance(emfv); -// camel_object_ref(folder); -// } -// -// emfv_enable_menus(emfv); -// -// /* TODO: should probably be called after all processing, not just this class's impl */ -// g_signal_emit(emfv, signals[EMFV_LOADED], 0); -//} - -//static void -//emfv_got_folder(char *uri, CamelFolder *folder, void *data) -//{ -// EMFolderView *emfv = data; -// -// em_folder_view_set_folder(emfv, folder, uri); -//} - -//static void -//emfv_set_folder_uri(EMFolderView *emfv, const char *uri) -//{ -// mail_get_folder(uri, 0, emfv_got_folder, emfv, mail_msg_fast_ordered_push); -//} - -//static void -//emfv_set_message(EMFolderView *emfv, const char *uid, int nomarkseen) -//{ -// e_profile_event_emit("goto.uid", uid?uid:"", 0); -// -// /* This could possible race with other set messages, but likelyhood is small */ -// emfv->priv->nomarkseen = nomarkseen; -// message_list_select_uid(emfv->list, uid); -// /* force an update, since we may not get an updated event if we select the same uid */ -// emfv_list_message_selected(emfv->list, uid, emfv); -//} - -/* ********************************************************************** */ - static void emfv_selection_get(GtkWidget *widget, GtkSelectionData *data, guint info, guint time_stamp, EMFolderView *emfv) { @@ -623,197 +338,8 @@ emfv_selection_clear_event(GtkWidget *widget, GdkEventSelection *event, EMFolder /* Popup menu In many cases these are the functions called by the bonobo callbacks too */ -//static void -//emfv_popup_open(EPopup *ep, EPopupItem *pitem, void *data) -//{ -// EMFolderView *emfv = data; -// em_folder_view_open_selected(emfv); -//} - -//static void -//emfv_popup_source(EPopup *ep, EPopupItem *pitem, void *data) -//{ -// EMFolderView *emfv = data; -// EMMessageBrowser *emmb; -// GPtrArray *uids; -// -// uids = message_list_get_selected(emfv->list); -// -// emmb = (EMMessageBrowser *)em_message_browser_window_new(); -// em_format_set_session((EMFormat *)((EMFolderView *)emmb)->preview, ((EMFormat *)emfv->preview)->session); -// em_folder_view_set_folder((EMFolderView *)emmb, emfv->folder, emfv->folder_uri); -// em_format_set_mode((EMFormat *)((EMFolderView *)emmb)->preview, EM_FORMAT_SOURCE); -// em_folder_view_set_message((EMFolderView *)emmb, uids->pdata[0], FALSE); -// gtk_widget_show(emmb->window); -// -// message_list_free_uids(emfv->list, uids); -//} - -//#define DelInVFolderCheckName "DelInVFolderCheck" -//#define DelInVFolderKey "/apps/evolution/mail/prompts/delete_in_vfolder" - -//static void -//emfv_delete_msg_response (GtkWidget *dialog, int response, gpointer data) -//{ -// if (response == GTK_RESPONSE_OK) { -// EMFolderView *emfv = data; -// int count; -// GPtrArray *uids; -// -// if (dialog) { -// GList *children, *l; -// GtkWidget *check = NULL; -// -// children = gtk_container_get_children (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox)); -// for (l = children; l; l = l->next) { -// if (GTK_IS_ALIGNMENT (l->data)) { -// check = gtk_bin_get_child (GTK_BIN (l->data)); -// -// if (check && GTK_IS_CHECK_BUTTON (check) && -// !strcmp (gtk_widget_get_name (check), DelInVFolderCheckName)) -// break; -// -// check = NULL; -// } -// } -// -// if (check) { -// GConfClient *gconf = gconf_client_get_default (); -// gconf_client_set_bool (gconf, DelInVFolderKey, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (check)), NULL); -// g_object_unref (gconf); -// } -// -// g_list_free (children); -// } -// -// uids = message_list_get_selected(emfv->list); -// camel_folder_freeze(emfv->folder); -// -// for (count=0; count < uids->len; count++) { -// if (camel_folder_get_message_flags (emfv->folder, uids->pdata[count]) & CAMEL_MESSAGE_USER_NOT_DELETABLE) { -// if (emfv->preview_active) { -// GtkHTMLStream *hstream = gtk_html_begin(((EMFormatHTML *)emfv->preview)->html); -// -// gtk_html_stream_printf(hstream, "

%s

%s

", -// _("Mail Deletion Failed"), -// _("You do not have sufficient permissions to delete this mail.")); -// gtk_html_stream_close(hstream, GTK_HTML_STREAM_OK); -// } else { -// GtkWidget *w = e_error_new (NULL, "mail:no-delete-permission", "", NULL); -// em_utils_show_error_silent (w); -// } -// -// count = -1; -// break; -// } else -// camel_folder_set_message_flags(emfv->folder, uids->pdata[count], CAMEL_MESSAGE_SEEN|CAMEL_MESSAGE_DELETED, CAMEL_MESSAGE_SEEN|CAMEL_MESSAGE_DELETED ); -// } -// -// message_list_free_uids(emfv->list, uids); -// camel_folder_thaw(emfv->folder); -// -// em_folder_view_select_next_message (emfv, count, FALSE); -// } -// -// if (dialog) -// gtk_widget_destroy (dialog); -//} - -//static void -//emfv_popup_delete (EPopup *ep, EPopupItem *pitem, void *data) -//{ -// EMFolderView *emfv = data; -// GConfClient *gconf = gconf_client_get_default (); -// -// if (emfv->folder && emfv->folder->parent_store && CAMEL_IS_VEE_STORE (emfv->folder->parent_store) -// && !gconf_client_get_bool (gconf, DelInVFolderKey, NULL)) { -// GtkWidget *dialog, *checkbox, *align; -// -// dialog = e_error_new (NULL, "mail:ask-delete-vfolder-msg", emfv->folder->full_name, NULL); -// g_signal_connect (dialog, "response", G_CALLBACK (emfv_delete_msg_response), emfv); -// checkbox = gtk_check_button_new_with_label (_("Do not ask me again.")); -// gtk_widget_set_name (checkbox, DelInVFolderCheckName); -// align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0); -// gtk_container_add (GTK_CONTAINER (align), checkbox); -// gtk_widget_show (checkbox); -// gtk_box_pack_end (GTK_BOX (GTK_DIALOG (dialog)->vbox), align, TRUE, TRUE, 6); -// gtk_widget_show (align); -// gtk_widget_show (dialog); -// } else { -// emfv_delete_msg_response (NULL, GTK_RESPONSE_OK, emfv); -// } -// -// g_object_unref (gconf); -//} -//#undef DelInVFolderCheckName -//#undef DelInVFolderKey - -static void -emfv_set_label (EMFolderView *emfv, const char *label) -{ - GPtrArray *uids = message_list_get_selected (emfv->list); - int i; - - for (i = 0; i < uids->len; i++) - camel_folder_set_message_user_flag (emfv->folder, uids->pdata[i], label, TRUE); - - message_list_free_uids (emfv->list, uids); -} - -static void -emfv_unset_label (EMFolderView *emfv, const char *label) -{ - GPtrArray *uids = message_list_get_selected (emfv->list); - int i; - - for (i = 0; i < uids->len; i++) { - camel_folder_set_message_user_flag (emfv->folder, uids->pdata[i], label, FALSE); - camel_folder_set_message_user_tag (emfv->folder, uids->pdata[i], "label", NULL); - } - - message_list_free_uids (emfv->list, uids); -} - -static void -emfv_popup_label_clear(EPopup *ep, EPopupItem *pitem, void *data) -{ - EMFolderView *emfv = data; - GSList *l; - EUtilLabel *label; - - for (l = mail_config_get_labels (); l; l = l->next) { - label = l->data; - emfv_unset_label(emfv, label->tag); - } -} - -static void -emfv_popup_label_set(EPopup *ep, EPopupItem *pitem, void *data) -{ - EMFolderView *emfv = data; - - if (pitem->type & E_POPUP_ACTIVE) - emfv_set_label (emfv, pitem->user_data); - else - emfv_unset_label (emfv, pitem->user_data); -} - -static void -emfv_popup_label_new (EPopup *ep, EPopupItem *pitem, void *data) -{ - EMFolderView *emfv = data; - char *tag = e_util_labels_add_with_dlg (NULL, NULL); - - if (tag) { - emfv_set_label (emfv, tag); - g_free (tag); - } -} - static EPopupItem emfv_popup_items[] = { -// { E_POPUP_ITEM, "40.emfv.00", N_("_Delete"), emfv_popup_delete, NULL, "edit-delete", EM_POPUP_SELECT_DELETE|EM_FOLDER_VIEW_SELECT_LISTONLY }, - { E_POPUP_SUBMENU, "60.label.00", N_("_Label"), NULL, NULL, NULL, EM_POPUP_SELECT_MANY|EM_FOLDER_VIEW_SELECT_LISTONLY }, { E_POPUP_ITEM, "60.label.00/00.label", N_("_None"), emfv_popup_label_clear, NULL, NULL, EM_POPUP_SELECT_MANY|EM_FOLDER_VIEW_SELECT_LISTONLY }, { E_POPUP_BAR, "60.label.00/00.label.00", NULL, NULL, NULL, NULL }, @@ -1163,62 +689,6 @@ emfv_enable_menus(EMFolderView *emfv) g_string_free(name, TRUE); } -//static void -//emfv_view_mode(BonoboUIComponent *uic, const char *path, Bonobo_UIComponent_EventType type, const char *state, void *data) -//{ -// EMFolderView *emfv = data; -// int i; -// -// if (type != Bonobo_UIComponent_STATE_CHANGED) -// return; -// -// /* TODO: I don't like this stuff much, is there any way we can move listening for such events -// elsehwere? Probably not I guess, unless there's a EMFolderViewContainer for bonobo usage -// of a folder view */ -// -// i = state[0] != '0'; -// -// em_format_set_mode((EMFormat *)emfv->preview, i); -// -// if (EM_FOLDER_VIEW_GET_CLASS (emfv)->update_message_style) { -// GConfClient *gconf = mail_config_get_gconf_client (); -// -// gconf_client_set_int (gconf, "/apps/evolution/mail/display/message_style", i, NULL); -// } -//} - -//static void -//emfv_caret_mode(BonoboUIComponent *uic, const char *path, Bonobo_UIComponent_EventType type, const char *state, void *data) -//{ -// EMFolderView *emfv = data; -// -// if (type != Bonobo_UIComponent_STATE_CHANGED) -// return; -// -// em_format_html_display_set_caret_mode(emfv->preview, state[0] != '0'); -// -// gconf_client_set_bool(mail_config_get_gconf_client(), "/apps/evolution/mail/display/caret_mode", state[0] != '0', NULL); -//} - -//static void -//emfv_charset_changed(BonoboUIComponent *uic, const char *path, Bonobo_UIComponent_EventType type, const char *state, void *data) -//{ -// EMFolderView *emfv = data; -// -// if (type != Bonobo_UIComponent_STATE_CHANGED) -// return; -// -// /* menu items begin with "Charset-" = 8 characters */ -// if (state[0] != '0' && strlen(path) > 8) { -// path += 8; -// /* default charset used in mail view */ -// if (!strcmp(path, _("Default"))) -// path = NULL; -// -// em_format_set_charset((EMFormat *)emfv->preview, path); -// } -//} - static void emfv_activate(EMFolderView *emfv, BonoboUIComponent *uic, int act) { @@ -1513,100 +983,6 @@ emfv_message_selected_timeout(void *data) return FALSE; } -//static void -//emfv_list_message_selected(MessageList *ml, const char *uid, EMFolderView *emfv) -//{ -// e_profile_event_emit("goto.listuid", uid, 0); -// -// if (emfv->preview_active) { -// if (emfv->priv->selected_id != 0) -// g_source_remove(emfv->priv->selected_id); -// -// emfv->priv->selected_id = g_timeout_add(100, emfv_message_selected_timeout, emfv); -// -// g_free(emfv->priv->selected_uid); -// emfv->priv->selected_uid = g_strdup(uid); -// } -// -// emfv_enable_menus(emfv); -// -// g_signal_emit(emfv, signals[EMFV_CHANGED], 0); -//} - -//static void -//emfv_list_built(MessageList *ml, EMFolderView *emfv) -//{ -// if (!emfv->priv->destroyed) { -// emfv_enable_menus(emfv); -// g_signal_emit(emfv, signals[EMFV_LOADED], 0); -// } -//} - -//static void -//emfv_list_double_click(ETree *tree, gint row, ETreePath path, gint col, GdkEvent *event, EMFolderView *emfv) -//{ -// /* Ignore double-clicks on columns that handle thier own state */ -// if (MESSAGE_LIST_COLUMN_IS_ACTIVE (col)) -// return; -// -// em_folder_view_open_selected(emfv); -//} - -//static int -//emfv_list_right_click(ETree *tree, gint row, ETreePath path, gint col, GdkEvent *event, EMFolderView *emfv) -//{ -// emfv_popup(emfv, event, FALSE); -// -// return TRUE; -//} - -//static int -//emfv_list_key_press(ETree *tree, int row, ETreePath path, int col, GdkEvent *ev, EMFolderView *emfv) -//{ -// GPtrArray *uids; -// int i; -// guint32 flags; -// -// if ((ev->key.state & GDK_CONTROL_MASK) != 0) -// return FALSE; -// -// switch (ev->key.keyval) { -// case GDK_Return: -// case GDK_KP_Enter: -// case GDK_ISO_Enter: -// em_folder_view_open_selected(emfv); -// break; -//#ifdef HAVE_XFREE -// case XF86XK_Reply: -// em_folder_view_message_reply(emfv, REPLY_MODE_ALL); -// break; -// case XF86XK_MailForward: -// uids = message_list_get_selected(emfv->list); -// em_utils_forward_messages (emfv->folder, uids, emfv->folder_uri); -// break; -//#endif /* HAVE_XFREE */ -// case '!': -// uids = message_list_get_selected(emfv->list); -// -// camel_folder_freeze(emfv->folder); -// for (i = 0; i < uids->len; i++) { -// flags = camel_folder_get_message_flags(emfv->folder, uids->pdata[i]) ^ CAMEL_MESSAGE_FLAGGED; -// if (flags & CAMEL_MESSAGE_FLAGGED) -// flags &= ~CAMEL_MESSAGE_DELETED; -// camel_folder_set_message_flags(emfv->folder, uids->pdata[i], -// CAMEL_MESSAGE_FLAGGED|CAMEL_MESSAGE_DELETED, flags); -// } -// camel_folder_thaw(emfv->folder); -// -// message_list_free_uids(emfv->list, uids); -// break; -// default: -// return FALSE; -// } -// -// return TRUE; -//} - static gboolean emfv_popup_menu (GtkWidget *widget) { @@ -1627,40 +1003,6 @@ emfv_popup_menu (GtkWidget *widget) return TRUE; } -//static void -//emfv_list_selection_change(ETree *tree, EMFolderView *emfv) -//{ -// /* we can't just listen to the message-list message selected thing, since we dont get them -// in all cases. blah */ -// g_signal_emit(emfv, signals[EMFV_CHANGED], 0); -//} - -//static void -//emfv_format_link_clicked(EMFormatHTMLDisplay *efhd, const char *uri, EMFolderView *emfv) -//{ -// if (!strncmp (uri, "##", 2)) -// return; -// -// if (!g_ascii_strncasecmp (uri, "mailto:", 7)) { -// em_utils_compose_new_message_with_mailto (uri, emfv->folder_uri); -// } else if (*uri == '#') { -// gtk_html_jump_to_anchor (((EMFormatHTML *) efhd)->html, uri + 1); -// } else if (!g_ascii_strncasecmp (uri, "thismessage:", 12)) { -// /* ignore */ -// } else if (!g_ascii_strncasecmp (uri, "cid:", 4)) { -// /* ignore */ -// } else { -// GError *err = NULL; -// -// gnome_url_show (uri, &err); -/ -/// if (err) { -// g_warning ("gnome_url_show: %s", err->message); -// g_error_free (err); -// } -// } -//} - static void emp_uri_popup_link_copy(EPopup *ep, EPopupItem *pitem, void *data) { @@ -2199,15 +1541,3 @@ emfv_on_url_cb (GObject *emitter, const char *url, EMFolderView *emfv) g_free (nice_url); } - -//static gboolean -//emfv_on_html_button_released_cb (GtkHTML *html, GdkEventButton *button, EMFolderView *emfv) -//{ -// gboolean selected; -// -// selected = gtk_html_command (html, "is-selection-active"); -// bonobo_ui_component_set_prop(emfv->uic, "/commands/EditCopy", "sensitive", selected?"1":"0", NULL); -// -// return FALSE; -//} - -- cgit v1.2.3