static void mimeview_selection_changed(GtkTreeSelection *selection, MimeView *mimeview) { GtkTreeModel *model = GTK_TREE_MODEL(mimeview->store); GtkTreeIter iter; GtkTreePath *path; MimeInfo *partinfo; if (!gtk_tree_selection_get_selected(selection, NULL, &iter)) { if (mimeview->opened) { gtk_tree_path_free(mimeview->opened); mimeview->opened = NULL; } return; } path = gtk_tree_model_get_path(model, &iter); if (mimeview->opened && gtk_tree_path_compare(mimeview->opened, path) == 0) { gtk_tree_path_free(path); return; } gtk_tree_path_free(mimeview->opened); mimeview->opened = path; path = NULL; gtk_tree_model_get(model, &iter, COL_MIME_INFO, &partinfo, -1); if (!partinfo) return; switch (partinfo->mime_type) { case MIME_TEXT: case MIME_TEXT_HTML: case MIME_MESSAGE_RFC822: case MIME_MULTIPART: mimeview_show_message_part(mimeview, partinfo); break; case MIME_IMAGE: if (prefs_common.inline_image) { mimeview_show_image_part(mimeview, partinfo); break; } /* FALLTHROUGH */ default: mimeview_change_view_type(mimeview, MIMEVIEW_TEXT); #if USE_GPGME if (rfc2015_is_signature_part(partinfo)) mimeview_show_signature_part(mimeview, partinfo); else #endif mimeview_show_mime_part(mimeview, partinfo); break; } }
static void mimeview_display_as_text(MimeView *mimeview) { MimeInfo *partinfo; if (!mimeview->opened) return; partinfo = mimeview_get_selected_part(mimeview); g_return_if_fail(partinfo != NULL); mimeview_show_message_part(mimeview, partinfo); }
static void mimeview_display_as_text(MimeView *mimeview) { MimeInfo *partinfo; if (!mimeview->opened) return; partinfo = mimeview_get_selected_part(mimeview); if (!partinfo) { partinfo = (MimeInfo *) gtk_object_get_data (GTK_OBJECT(mimeview->popupmenu), "pop_partinfo"); gtk_object_set_data(GTK_OBJECT(mimeview->popupmenu), "pop_partinfo", NULL); } g_return_if_fail(partinfo != NULL); mimeview_show_message_part(mimeview, partinfo); }
static void mimeview_selected(GtkCTree *ctree, GtkCTreeNode *node, gint column, MimeView *mimeview) { MimeInfo *partinfo; if (mimeview->opened == node) return; mimeview->opened = node; gtk_ctree_node_moveto(ctree, node, -1, 0.5, 0); partinfo = gtk_ctree_node_get_row_data(ctree, node); if (!partinfo) return; /* ungrab the mouse event */ if (GTK_WIDGET_HAS_GRAB(ctree)) { gtk_grab_remove(GTK_WIDGET(ctree)); if (gdk_pointer_is_grabbed()) gdk_pointer_ungrab(GDK_CURRENT_TIME); } mimeview->textview->default_text = FALSE; update_signature_info(mimeview, partinfo); if (!mimeview_show_part(mimeview, partinfo)) { switch (partinfo->type) { case MIMETYPE_TEXT: case MIMETYPE_MESSAGE: case MIMETYPE_MULTIPART: mimeview_show_message_part(mimeview, partinfo); break; default: mimeview->textview->default_text = TRUE; mimeview_change_view_type(mimeview, MIMEVIEW_TEXT); textview_show_mime_part(mimeview->textview, partinfo); break; } } }