annotate src/gtk/gtkui.c @ 380:05ee37a5558b

2003-1-28 Brian Masney <masneyb@gftp.org> * src/gtk/bookmarks.c src/gtk/dnd.c src/gtk/gftp-gtk.c src/gtk/gftp-gtk.h src/gtk/gtkui.c src/gtk/menu-items.c src/gtk/transfer.c - renamed disconnect() to gftpui_disconnect() * src/gtk/gtkui.c src/text/textui.c src/uicommon/gftpui.c - improved prompting for the username/password * src/gtk/gtkui.c src/text/textui.c src/uicommon/gftpui.c - call gftpui_disconnect() after a command is run and if we are no longer connected to the remote host * src/text/gftp-text.c - parse the command line arguments for the host to connect to * src/text/textui.c (gftpui_refresh) - clear the cache. (gftpui_ask_transfer) - check for carriage return or empty string * src/uicommon/gftp.h - define gftpui_common_cmd_m{get,put}_file() * lib/sshv2.c - removed temporary "fix"
author masneyb
date Wed, 28 Jan 2004 23:46:28 +0000
parents d207b8241e96
children 14ef37b62c20
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
342
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
1 /*****************************************************************************/
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
2 /* gtkui.c - GTK+ UI related functions for gFTP */
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
3 /* Copyright (C) 1998-2003 Brian Masney <masneyb@gftp.org> */
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
4 /* */
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
5 /* This program is free software; you can redistribute it and/or modify */
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
6 /* it under the terms of the GNU General Public License as published by */
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
7 /* the Free Software Foundation; either version 2 of the License, or */
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
8 /* (at your option) any later version. */
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
9 /* */
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
10 /* This program is distributed in the hope that it will be useful, */
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
11 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
12 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
13 /* GNU General Public License for more details. */
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
14 /* */
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
15 /* You should have received a copy of the GNU General Public License */
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
16 /* along with this program; if not, write to the Free Software */
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
17 /* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA */
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
18 /*****************************************************************************/
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
19
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
20 #include "gftp-gtk.h"
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
21 static const char cvsid[] = "$Id$";
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
22
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
23
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
24 void
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
25 gftpui_lookup_file_colors (gftp_file * fle, char **start_color,
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
26 char ** end_color)
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
27 {
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
28 *start_color = GFTPUI_COMMON_COLOR_NONE;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
29 *end_color = GFTPUI_COMMON_COLOR_NONE;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
30 }
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
31
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
32
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
33 void
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
34 gftpui_run_command (GtkWidget * widget, gpointer data)
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
35 {
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
36 const char *txt;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
37
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
38 txt = gtk_entry_get_text (GTK_ENTRY (gftpui_command_widget));
374
d207b8241e96 2003-1-21 Brian Masney <masneyb@gftp.org>
masneyb
parents: 367
diff changeset
39 gftpui_common_process_command (&window1, window1.request,
d207b8241e96 2003-1-21 Brian Masney <masneyb@gftp.org>
masneyb
parents: 367
diff changeset
40 &window2, window2.request, txt);
342
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
41 gtk_entry_set_text (GTK_ENTRY (gftpui_command_widget), "");
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
42 }
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
43
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
44
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
45 void
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
46 gftpui_refresh (void *uidata)
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
47 {
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
48 gftp_window_data * wdata;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
49
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
50 wdata = uidata;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
51 if (!check_status (_("Refresh"), wdata, 0, 0, 0, 1))
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
52 return;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
53
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
54 if (check_reconnect (wdata) < 0)
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
55 return;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
56
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
57 gtk_clist_freeze (GTK_CLIST (wdata->listbox));
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
58 remove_files_window (wdata);
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
59 gftp_delete_cache_entry (wdata->request, NULL, 0);
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
60 ftp_list_files (wdata, 0);
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
61 gtk_clist_thaw (GTK_CLIST (wdata->listbox));
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
62 }
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
63
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
64
356
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
65 #define _GFTPUI_GTK_USER_PW_SIZE 256
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
66
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
67 static void
380
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
68 _gftpui_gtk_set_username (gftp_request * request, gftp_dialog_data * ddata)
356
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
69 {
380
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
70 gftp_set_username (request, gtk_entry_get_text (GTK_ENTRY (ddata->edit)));
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
71 request->stopable = 0;
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
72 }
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
73
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
74
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
75 static void
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
76 _gftpui_gtk_set_password (gftp_request * request, gftp_dialog_data * ddata)
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
77 {
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
78 gftp_set_password (request, gtk_entry_get_text (GTK_ENTRY (ddata->edit)));
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
79 request->stopable = 0;
356
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
80 }
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
81
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
82
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
83 static void
380
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
84 _gftpui_gtk_abort (gftp_request * request, gftp_dialog_data * ddata)
356
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
85 {
380
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
86 request->stopable = 0;
356
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
87 }
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
88
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
89
380
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
90 void
356
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
91 gftpui_prompt_username (void *uidata, gftp_request * request)
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
92 {
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
93 MakeEditDialog (_("Enter Username"),
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
94 _("Please enter your username for this site"), NULL,
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
95 0, NULL, gftp_dialog_button_connect,
380
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
96 _gftpui_gtk_set_username, request,
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
97 _gftpui_gtk_abort, request);
356
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
98
380
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
99 request->stopable = 1;
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
100 while (request->stopable)
356
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
101 {
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
102 GDK_THREADS_LEAVE ();
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
103 #if GTK_MAJOR_VERSION == 1
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
104 g_main_iteration (TRUE);
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
105 #else
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
106 g_main_context_iteration (NULL, TRUE);
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
107 #endif
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
108 }
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
109 }
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
110
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
111
380
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
112 void
356
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
113 gftpui_prompt_password (void *uidata, gftp_request * request)
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
114 {
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
115 MakeEditDialog (_("Enter Password"),
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
116 _("Please enter your password for this site"), NULL,
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
117 0, NULL, gftp_dialog_button_connect,
380
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
118 _gftpui_gtk_set_password, request,
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
119 _gftpui_gtk_abort, request);
356
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
120
380
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
121 request->stopable = 1;
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
122 while (request->stopable)
356
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
123 {
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
124 GDK_THREADS_LEAVE ();
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
125 #if GTK_MAJOR_VERSION == 1
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
126 g_main_iteration (TRUE);
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
127 #else
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
128 g_main_context_iteration (NULL, TRUE);
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
129 #endif
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
130 }
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
131 }
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
132
7cb3327f96f7 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 355
diff changeset
133
355
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
134 /* The wakeup main thread functions are so that after the thread terminates
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
135 there won't be a delay in updating the GUI */
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
136 static void
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
137 _gftpui_wakeup_main_thread (gpointer data, gint source,
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
138 GdkInputCondition condition)
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
139 {
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
140 gftp_request * request;
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
141 char c;
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
142
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
143 request = data;
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
144 if (request->wakeup_main_thread[0] > 0)
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
145 read (request->wakeup_main_thread[0], &c, 1);
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
146 }
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
147
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
148
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
149 static gint
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
150 _gftpui_setup_wakeup_main_thread (gftp_request * request)
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
151 {
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
152 gint handler;
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
153
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
154 if (socketpair (AF_UNIX, SOCK_STREAM, 0, request->wakeup_main_thread) == 0)
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
155 {
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
156 handler = gdk_input_add (request->wakeup_main_thread[0],
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
157 GDK_INPUT_READ, _gftpui_wakeup_main_thread,
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
158 request);
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
159 }
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
160 else
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
161 {
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
162 request->wakeup_main_thread[0] = 0;
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
163 request->wakeup_main_thread[1] = 0;
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
164 handler = 0;
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
165 }
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
166
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
167 return (handler);
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
168 }
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
169
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
170
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
171 static void
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
172 _gftpui_teardown_wakeup_main_thread (gftp_request * request, gint handler)
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
173 {
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
174 if (request->wakeup_main_thread[0] > 0 && request->wakeup_main_thread[1] > 0)
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
175 {
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
176 gdk_input_remove (handler);
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
177 close (request->wakeup_main_thread[0]);
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
178 close (request->wakeup_main_thread[1]);
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
179 request->wakeup_main_thread[0] = 0;
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
180 request->wakeup_main_thread[1] = 0;
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
181 }
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
182 }
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
183
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
184 static void *
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
185 _gftpui_gtk_thread_func (void *data)
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
186 {
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
187 gftpui_gtk_thread_data * thread_data;
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
188 void *ret;
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
189
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
190 thread_data = data;
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
191 ret = thread_data->func (thread_data->cdata);
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
192
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
193 if (thread_data->cdata->request->wakeup_main_thread[1] > 0)
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
194 write (thread_data->cdata->request->wakeup_main_thread[1], " ", 1);
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
195
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
196 return (ret);
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
197 }
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
198
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
199
342
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
200 void *
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
201 gftpui_generic_thread (void * (*func) (void *), void *data)
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
202 {
355
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
203 gftpui_gtk_thread_data * thread_data;
342
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
204 gftpui_callback_data * cdata;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
205 gftp_window_data * wdata;
355
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
206 guint handler;
342
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
207 void * ret;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
208
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
209 cdata = data;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
210 wdata = cdata->uidata;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
211
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
212 wdata->request->stopable = 1;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
213 gtk_widget_set_sensitive (stop_btn, 1);
355
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
214
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
215 thread_data = g_malloc0 (sizeof (*thread_data));
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
216 thread_data->func = func;
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
217 thread_data->cdata = cdata;
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
218
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
219 handler = _gftpui_setup_wakeup_main_thread (cdata->request);
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
220 pthread_create (&wdata->tid, NULL, _gftpui_gtk_thread_func, thread_data);
342
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
221
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
222 while (wdata->request->stopable)
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
223 {
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
224 GDK_THREADS_LEAVE ();
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
225 #if GTK_MAJOR_VERSION == 1
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
226 g_main_iteration (TRUE);
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
227 #else
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
228 g_main_context_iteration (NULL, TRUE);
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
229 #endif
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
230 }
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
231
355
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
232 _gftpui_teardown_wakeup_main_thread (cdata->request, handler);
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
233 g_free (thread_data);
60d3da6ab336 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 354
diff changeset
234
342
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
235 pthread_join (wdata->tid, &ret);
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
236 gtk_widget_set_sensitive (stop_btn, 0);
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
237
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
238 if (!GFTP_IS_CONNECTED (wdata->request))
380
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
239 gftpui_disconnect (wdata);
342
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
240
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
241 return (ret);
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
242 }
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
243
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
244
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
245 int
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
246 gftpui_check_reconnect (gftpui_callback_data * cdata)
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
247 {
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
248 gftp_window_data * wdata;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
249
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
250 wdata = cdata->uidata;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
251 return (wdata->request->cached && wdata->request->datafd < 0 &&
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
252 !wdata->request->always_connected &&
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
253 !ftp_connect (wdata, wdata->request, 0) ? -1 : 0);
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
254 }
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
255
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
256
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
257 void
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
258 gftpui_run_function_callback (gftp_window_data * wdata,
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
259 gftp_dialog_data * ddata)
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
260 {
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
261 gftpui_callback_data * cdata;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
262 const char *edttext;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
263 int ret;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
264
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
265 cdata = ddata->yespointer;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
266 if (ddata->edit != NULL)
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
267 {
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
268 edttext = gtk_entry_get_text (GTK_ENTRY (ddata->edit));
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
269 if (*edttext == '\0')
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
270 {
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
271 ftp_log (gftp_logging_misc, NULL,
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
272 _("Operation canceled...you must enter a string\n"));
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
273 return;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
274 }
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
275
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
276 cdata->input_string = g_strdup (edttext);
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
277 }
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
278
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
279 ret = gftpui_common_run_callback_function (cdata);
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
280 }
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
281
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
282
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
283 void
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
284 gftpui_run_function_cancel_callback (gftp_window_data * wdata,
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
285 gftp_dialog_data * ddata)
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
286 {
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
287 gftpui_callback_data * cdata;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
288
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
289 cdata = ddata->yespointer;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
290 if (cdata->input_string != NULL)
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
291 g_free (cdata->input_string);
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
292 if (cdata->source_string != NULL)
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
293 g_free (cdata->source_string);
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
294 g_free (cdata);
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
295 }
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
296
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
297
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
298 void
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
299 gftpui_mkdir_dialog (gpointer data)
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
300 {
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
301 gftpui_callback_data * cdata;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
302 gftp_window_data * wdata;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
303
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
304 wdata = data;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
305 cdata = g_malloc0 (sizeof (*cdata));
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
306 cdata->request = wdata->request;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
307 cdata->uidata = wdata;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
308 cdata->run_function = gftpui_common_run_mkdir;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
309
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
310 if (!check_status (_("Mkdir"), wdata, gftpui_common_use_threads (wdata->request), 0, 0, wdata->request->mkdir != NULL))
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
311 return;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
312
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
313 MakeEditDialog (_("Make Directory"), _("Enter name of directory to create"),
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
314 NULL, 1, NULL, gftp_dialog_button_create,
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
315 gftpui_run_function_callback, cdata,
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
316 gftpui_run_function_cancel_callback, cdata);
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
317 }
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
318
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
319
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
320 void
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
321 gftpui_rename_dialog (gpointer data)
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
322 {
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
323 gftpui_callback_data * cdata;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
324 GList *templist, *filelist;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
325 gftp_window_data * wdata;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
326 gftp_file * curfle;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
327 char *tempstr;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
328 int num;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
329
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
330 wdata = data;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
331 cdata = g_malloc0 (sizeof (*cdata));
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
332 cdata->request = wdata->request;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
333 cdata->uidata = wdata;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
334 cdata->run_function = gftpui_common_run_rename;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
335
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
336 if (!check_status (_("Rename"), wdata, gftpui_common_use_threads (wdata->request), 1, 1, wdata->request->rename != NULL))
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
337 return;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
338
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
339 templist = GTK_CLIST (wdata->listbox)->selection;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
340 num = 0;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
341 filelist = wdata->files;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
342 templist = get_next_selection (templist, &filelist, &num);
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
343 curfle = filelist->data;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
344 cdata->source_string = g_strdup (curfle->file);
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
345
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
346 tempstr = g_strdup_printf (_("What would you like to rename %s to?"),
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
347 cdata->source_string);
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
348 MakeEditDialog (_("Rename"), tempstr, cdata->source_string, 1, NULL,
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
349 gftp_dialog_button_rename,
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
350 gftpui_run_function_callback, cdata,
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
351 gftpui_run_function_cancel_callback, cdata);
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
352 g_free (tempstr);
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
353 }
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
354
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
355
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
356 void
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
357 gftpui_site_dialog (gpointer data)
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
358 {
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
359 gftpui_callback_data * cdata;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
360 gftp_window_data * wdata;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
361
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
362 wdata = data;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
363 cdata = g_malloc0 (sizeof (*cdata));
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
364 cdata->request = wdata->request;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
365 cdata->uidata = wdata;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
366 cdata->run_function = gftpui_common_run_site;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
367
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
368 if (!check_status (_("Site"), wdata, 0, 0, 0, wdata->request->site != NULL))
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
369 return;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
370
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
371 MakeEditDialog (_("Site"), _("Enter site-specific command"), NULL, 1,
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
372 NULL, gftp_dialog_button_ok,
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
373 gftpui_run_function_callback, cdata,
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
374 gftpui_run_function_cancel_callback, cdata);
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
375 }
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
376
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
377
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
378 int
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
379 gftpui_run_chdir (gpointer uidata, char *directory)
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
380 {
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
381 gftpui_callback_data * cdata;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
382 gftp_window_data * wdata;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
383 int ret;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
384
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
385 wdata = uidata;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
386 cdata = g_malloc0 (sizeof (*cdata));
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
387 cdata->request = wdata->request;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
388 cdata->uidata = wdata;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
389 cdata->run_function = gftpui_common_run_chdir;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
390 cdata->input_string = directory;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
391
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
392 ret = gftpui_common_run_callback_function (cdata);
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
393
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
394 g_free (cdata);
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
395 return (ret);
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
396 }
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
397
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
398
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
399 void
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
400 gftpui_chdir_dialog (gpointer data)
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
401 {
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
402 GList *templist, *filelist;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
403 gftp_window_data * wdata;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
404 gftp_file * curfle;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
405 char *tempstr;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
406 int num;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
407
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
408 wdata = data;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
409 if (!check_status (_("Chdir"), wdata, gftpui_common_use_threads (wdata->request), 1, 0,
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
410 wdata->request->chdir != NULL))
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
411 return;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
412
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
413 templist = GTK_CLIST (wdata->listbox)->selection;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
414 num = 0;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
415 filelist = wdata->files;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
416 templist = get_next_selection (templist, &filelist, &num);
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
417 curfle = filelist->data;
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
418
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
419 tempstr = gftp_build_path (wdata->request->directory, curfle->file, NULL);
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
420 gftpui_run_chdir (wdata, tempstr);
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
421 g_free (tempstr);
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
422 }
07d635081926 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
423
380
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
424
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
425 void
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
426 gftpui_disconnect (void *uidata)
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
427 {
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
428 gftp_window_data * wdata;
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
429
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
430 wdata = uidata;
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
431 gftp_delete_cache_entry (wdata->request, NULL, 1);
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
432 gftp_disconnect (wdata->request);
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
433 remove_files_window (wdata);
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
434 update_window (wdata);
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
435 }
05ee37a5558b 2003-1-28 Brian Masney <masneyb@gftp.org>
masneyb
parents: 374
diff changeset
436