4
* Copyright (C) 2004 Free Software Foundation, Inc.
6
* This library is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public
8
* License as published by the Free Software Foundation; either
9
* version 2 of the License, or (at your option) any later version.
11
* This library is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* Library General Public License for more details.
16
* You should have received a copy of the GNU General Public
17
* License along with this library; if not, write to the Free
18
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20
* Author: Roberto Majadas <roberto.majadas@openshine.com>
26
#include <glib/gi18n-lib.h>
27
#include <libnautilus-extension/nautilus-extension-types.h>
28
#include <libnautilus-extension/nautilus-file-info.h>
29
#include <libnautilus-extension/nautilus-menu-provider.h>
30
#include "nautilus-nste.h"
33
static GObjectClass *parent_class;
36
sendto_callback (NautilusMenuItem *item,
43
files = g_object_get_data (G_OBJECT (item), "files");
45
cmd = g_string_new ("nautilus-sendto");
47
for (scan = files; scan; scan = scan->next) {
48
NautilusFileInfo *file = scan->data;
50
uri = nautilus_file_info_get_uri (file);
51
g_string_append_printf (cmd, " \"%s\"", uri);
55
g_spawn_command_line_async (cmd->str, NULL);
57
g_string_free (cmd, TRUE);
61
nautilus_nste_get_file_items (NautilusMenuProvider *provider,
68
NautilusMenuItem *item;
73
for (scan = files; scan; scan = scan->next) {
74
NautilusFileInfo *file = scan->data;
78
scheme = nautilus_file_info_get_uri_scheme (file);
79
local = strncmp (scheme, "file", 4) == 0;
86
one_item = (files != NULL) && (files->next == NULL);
88
!nautilus_file_info_is_directory ((NautilusFileInfo *)files->data)) {
89
item = nautilus_menu_item_new ("NautilusNste::sendto",
91
_("Send file by mail, instant message..."),
94
item = nautilus_menu_item_new ("NautilusNste::sendto",
96
_("Send files by mail, instant message..."),
99
g_signal_connect (item,
101
G_CALLBACK (sendto_callback),
103
g_object_set_data_full (G_OBJECT (item),
105
nautilus_file_info_list_copy (files),
106
(GDestroyNotify) nautilus_file_info_list_free);
108
items = g_list_append (items, item);
115
nautilus_nste_menu_provider_iface_init (NautilusMenuProviderIface *iface)
117
iface->get_file_items = nautilus_nste_get_file_items;
122
nautilus_nste_instance_init (NautilusNste *nste)
128
nautilus_nste_class_init (NautilusNsteClass *class)
130
parent_class = g_type_class_peek_parent (class);
134
static GType nste_type = 0;
138
nautilus_nste_get_type (void)
145
nautilus_nste_register_type (GTypeModule *module)
147
static const GTypeInfo info = {
148
sizeof (NautilusNsteClass),
149
(GBaseInitFunc) NULL,
150
(GBaseFinalizeFunc) NULL,
151
(GClassInitFunc) nautilus_nste_class_init,
154
sizeof (NautilusNste),
156
(GInstanceInitFunc) nautilus_nste_instance_init,
159
static const GInterfaceInfo menu_provider_iface_info = {
160
(GInterfaceInitFunc) nautilus_nste_menu_provider_iface_init,
165
nste_type = g_type_module_register_type (module,
170
g_type_module_add_interface (module,
172
NAUTILUS_TYPE_MENU_PROVIDER,
173
&menu_provider_iface_info);