#include "timing.h"
#include "manage_window.h"
#include "privacy.h"
+#include "file-utils.h"
typedef enum
{
}
static GtkActionEntry mimeview_menu_actions[] = {
- { "MimeView", NULL, "MimeView" },
+ { "MimeView", NULL, "MimeView", NULL, NULL, NULL },
{ "MimeView/Open", NULL, N_("_Open"), NULL, "Open MIME part", G_CALLBACK(mimeview_launch_cb) },
#if (!defined G_OS_WIN32)
{ "MimeView/OpenWith", NULL, N_("Open _with..."), NULL, "Open MIME part with...", G_CALLBACK(mimeview_open_with_cb) },
MimeInfo *mimeview_get_selected_part(MimeView *mimeview)
{
- GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(mimeview->ctree));
- GtkTreeIter iter;
- GtkTreeSelection *selection;
- MimeInfo *partinfo = NULL;
-
- selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(mimeview->ctree));
- if (gtk_tree_selection_get_selected(selection, NULL, &iter))
- gtk_tree_model_get(model, &iter, COL_DATA, &partinfo, -1);
-
- return partinfo;
+ return gtkut_tree_view_get_selected_pointer(
+ GTK_TREE_VIEW(mimeview->ctree), COL_DATA,
+ NULL, NULL, NULL);
}
MimeInfo *mimeview_get_node_part(MimeView *mimeview, GtkTreePath *path)
GtkTreePath *path;
gint i = 0;
- gtk_tree_model_get_iter_first(model, &iter);
+ if (!gtk_tree_model_get_iter_first(model, &iter))
+ return -1;
path = gtk_tree_model_get_path(model, &iter);
do {
if (i < 0)
return;
- gtk_tree_model_get_iter_first(model, &iter);
+ if (!gtk_tree_model_get_iter_first(model, &iter))
+ return;
path = gtk_tree_model_get_path(model, &iter);
while (x != i) {
fname = mimeview->file;
if (!fname) return;
- if ((fp = g_fopen(fname, "rb")) == NULL) {
- FILE_OP_ERROR(fname, "fopen");
+ if ((fp = claws_fopen(fname, "rb")) == NULL) {
+ FILE_OP_ERROR(fname, "claws_fopen");
return;
}
if (fseek(fp, partinfo->offset, SEEK_SET) < 0) {
FILE_OP_ERROR(mimeview->file, "fseek");
- fclose(fp);
+ claws_fclose(fp);
return;
}
mimeview_change_view_type(mimeview, MIMEVIEW_TEXT);
textview_show_part(mimeview->textview, partinfo, fp);
- fclose(fp);
+ claws_fclose(fp);
}
static MimeViewer *get_viewer_for_content_type(MimeView *mimeview, const gchar *content_type)
GtkTreeIter iter;
GtkTreePath *path;
MimeInfo *partinfo;
+ MainWindow *mainwin;
selection = gtk_tree_view_get_selection(ctree);
if (!gtk_tree_selection_get_selected(selection, &model, &iter))
break;
}
}
+ mainwin = mainwindow_get_mainwindow();
+ if (mainwin)
+ main_window_set_menu_sensitive(mainwin);
if (mimeview->siginfo && privacy_auto_check_signatures(mimeview->siginfo)
&& privacy_mimeinfo_get_sig_status(mimeview->siginfo) == SIGNATURE_UNCHECKED) {
mimeview_launch(mimeview, partinfo);
return TRUE;
} else if (event->button == 3) {
+ MainWindow *mainwin = mainwindow_get_mainwindow();
+
if (partinfo && (partinfo->type == MIMETYPE_MESSAGE ||
partinfo->type == MIMETYPE_IMAGE ||
partinfo->type == MIMETYPE_MULTIPART))
else
#endif
cm_menu_set_sensitive_full(mimeview->ui_manager, "Menus/MimeView/Open", TRUE);
-
+ if (mainwin)
+ main_window_set_menu_sensitive(mainwin);
g_object_set_data(G_OBJECT(mimeview->popupmenu),
"pop_partinfo", partinfo);
GPtrArray *headers = NULL;
FILE *fp;
- fp = g_fopen(partinfo->data.filename, "rb");
+ fp = claws_fopen(partinfo->data.filename, "rb");
if (fp != NULL && fseek(fp, partinfo->offset, SEEK_SET) == 0) {
headers = procheader_get_header_array_asis(fp);
if (headers) {
}
}
if (fp != NULL)
- fclose(fp);
+ claws_fclose(fp);
if (name)
filename = g_path_get_basename(name);
g_free(name);
if ((SHGetFileInfo((LPCWSTR)fn16, 0, &file_info, sizeof(SHFILEINFO), SHGFI_EXETYPE)) != 0) {
AlertValue val = alertpanel_full(_("Execute untrusted binary?"),
_("This attachment is an executable file. Executing "
- "untrusted binaries is dangerous and could probably "
- "lead to compromission of your computer.\n\n"
+ "untrusted binaries is dangerous and could compromise "
+ "your computer.\n\n"
"Do you want to run this file?"), GTK_STOCK_CANCEL,
_("Run binary"),
NULL, FALSE, NULL, ALERT_WARNING, G_ALERTDEFAULT);
GtkTreePath *path;
MimeInfo *curr = NULL;
- gtk_tree_model_get_iter_first(model, &iter);
+ if (!gtk_tree_model_get_iter_first(model, &iter))
+ return;
path = gtk_tree_model_get_path(model, &iter);
do {