Nautilus SendTo: Working Balsa E-mail Plugin



Russian: Я слегка модифицировал код плагина для отсылки писем через 
balsa, который шел в комплекте с последними исходниками nautilus-
sendto. Теперь работает отсылка множества файлов через этот плагин, 
раньше не работала вообще. Также в configure требуется включить 
поддержку этого плагина, для этого строчку enable_balsa=no изменить на
enable_balsa=yes. 
English (bad): I had modifyed not worked balsa e-mail plugin in 
standard nautilus-sendto source packet. Now sending many files worked 
great with balsa e-mail programm. For enable what plugin you also 
should replace "enable_balsa=no" to "enable_balsa=yes" in configure 
file.

Sorry for my English,
Nick Butorin.


#=======================================================
#include "config.h"

#include <glib/gi18n-lib.h>
#include "../nautilus-sendto-plugin.h"

static GHashTable *hash = NULL;

static 
gboolean init (NstPlugin *plugin)
{
	gchar *b_cmd;

	printf ("Init balsa plugin\n");
	hash = g_hash_table_new (g_str_hash, g_str_equal);

        b_cmd = g_find_program_in_path ("balsa");
        if (b_cmd == NULL)
                return FALSE;

	return TRUE;
}

static
GtkWidget* get_contacts_widget (NstPlugin *plugin)
{
	GtkWidget *entry;
	
	entry = gtk_entry_new ();
	
	return entry;
}

static
gboolean send_files (NstPlugin *plugin, GtkWidget *contact_widget,
			GList *file_list)
{
	gchar *b_cmd, *cmd, *send_to, *send_to_info ;
	GList *l;
	GString *mailto;
	GtkWidget *error_dialog;
	gchar *tmp_str;
	
	send_to = (gchar *) gtk_entry_get_text (GTK_ENTRY
(contact_widget));
		
	if (strlen (send_to) == 0)
	{
		mailto = g_string_new("--compose=\"\"");
	}
	else
	{
		mailto = g_string_new("--compose=");
		g_string_append_printf (mailto, "%s",
send_to);		
	}
	
	b_cmd = g_find_program_in_path ("balsa");
	if (b_cmd == NULL)
		return FALSE;
		
	tmp_str = g_filename_from_uri(file_list->data, NULL, NULL);
	g_string_append_printf (mailto," --attach \"%s\"",tmp_str);
	g_free(tmp_str);
	
	for (l = file_list->next ; l; l=l->next){		
		tmp_str = g_filename_from_uri(l->data, NULL, NULL);
		g_string_append_printf (mailto," --attach \"%s
\"",tmp_str);
		g_free(tmp_str);
	}
	cmd = g_strdup_printf ("%s %s", b_cmd, mailto->str);
	g_spawn_command_line_async (cmd, NULL);
	g_free (cmd);
	g_string_free (mailto, TRUE);
	g_free (b_cmd);
	return TRUE;
}

static 
gboolean destroy (NstPlugin *plugin){
	return TRUE;
}

static 
NstPluginInfo plugin_info = {
	"stock_mail",
	"balsa",
	N_("Email (Balsa)"),
	FALSE,
	init,
	get_contacts_widget,
	NULL,
	send_files,
	destroy
}; 

NST_INIT_PLUGIN (plugin_info)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]