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)

-- 
nautilus-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/nautilus-list

Reply via email to