source: lliurex-homework-harvester/trunk/fuentes/src/lhh-backend.c @ 2088

Last change on this file since 2088 was 2088, checked in by hectorgh, 3 years ago

wip on thunar plugin

File size: 2.7 KB
Line 
1/* vi:set et ai sw=2 sts=2 ts=2: */
2/*-
3 * Copyright (c) 2006 Benedikt Meurer <benny@xfce.org>
4 * Copyright (c) 2011 Jannis Pohlmann <jannis@xfce.org>
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library 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.
10 *
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
14 * GNU Library General Public License for more details.
15 *
16 * You should have received a copy of the GNU Library General
17 * Public License along with this library; if not, write to the
18 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19 * Boston, MA 02110-1301, USA.
20 */
21
22
23#ifdef HAVE_MEMORY_H
24#include <memory.h>
25#endif
26#ifdef HAVE_STRING_H
27#include <string.h>
28#endif
29
30#include <exo/exo.h>
31#include <src/lhh-backend.h>
32
33
34
35
36static GPid lhh_backend_run (const gchar *action,
37                                                const gchar *folder,
38                                                GList *files,
39                                                GtkWidget *window,
40                                                GError     **error);
41                                               
42
43
44
45static GPid
46lhh_backend_run (const gchar *action,
47                        const gchar *folder,
48                        GList *files,
49                        GtkWidget *window,
50                        GError     **error)
51{
52        GdkScreen       *screen;
53        gchar           **argv;
54        GList           *lp;
55        GPid                    pid=-1;
56        gint                    n;
57        gchar           *uri;
58       
59        argv = g_new0 (gchar *, 4 + g_list_length (files));
60        if (strcmp (action, "send")==0)
61        {
62                printf("send\n");
63                argv = g_new0 (gchar *, 4 + g_list_length (files));
64                argv[0] = g_strdup("/usr/bin/mousepad");
65                 for (lp = files, n = 1; lp != NULL; lp = lp->next, ++n)
66                {
67                        uri = thunarx_file_info_get_uri (THUNARX_FILE_INFO (lp->data));
68                        argv[n] = g_filename_from_uri (uri, NULL, NULL);
69                        g_free (uri);
70                }
71        }
72        else
73        {
74                printf("receive\n");
75                argv = g_new0 (gchar *, 4 + g_list_length (files));
76                argv[0] = g_strdup("/usr/bin/gnome-calculator");
77        }
78       
79       
80       
81        screen = gtk_widget_get_screen (window);
82
83         if (!gdk_spawn_on_screen (screen, folder, argv, NULL, G_SPAWN_DO_NOT_REAP_CHILD, NULL, NULL, &pid, error))
84            pid = -1;
85
86   
87         g_strfreev (argv);
88       
89
90
91  return pid;
92       
93       
94}
95
96GPid
97lhh_backend_send_file (const gchar *folder,
98                            GList       *files,
99                            GtkWidget   *window,
100                            GError     **error)
101{
102  /* run the action, the mime infos will be freed by the _run() method */
103  return lhh_backend_run ("send", folder, files, window, error);
104}
105
106
107GPid
108lhh_backend_receive_files(const gchar *folder,
109                                        GList           *files,
110                                        GtkWidget       *window,
111                                        GError          **error)
112{
113
114  return lhh_backend_run ("receive", folder, files, window, error);
115}
Note: See TracBrowser for help on using the repository browser.