Mon, 12 Sep 2005 13:25:41 +0000
[gaim-migrate @ 13773]
Here's the rest of that custom smiley receiving patch, with some changes
from me. I'm still not all that happy with it, but that's probably not
the author's fault, and I don't have time to take it further right now.
committer: Tim Ringenbach <marv@pidgin.im>
| 4514 | 1 | /** |
|
7820
06fc9f66d2cb
[gaim-migrate @ 8472]
Mark Doliner <markdoliner@pidgin.im>
parents:
7805
diff
changeset
|
2 | * @file gtkft.c GTK+ File Transfer UI |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5826
diff
changeset
|
3 | * @ingroup gtkui |
| 4514 | 4 | * |
| 5 | * gaim | |
| 6 | * | |
| 8046 | 7 | * Gaim is the legal property of its developers, whose names are too numerous |
| 8 | * to list here. Please refer to the COPYRIGHT file distributed with this | |
| 9 | * source distribution. | |
|
7035
76bca80cd91d
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
10 | * |
| 4514 | 11 | * This program is free software; you can redistribute it and/or modify |
| 12 | * it under the terms of the GNU General Public License as published by | |
| 13 | * the Free Software Foundation; either version 2 of the License, or | |
| 14 | * (at your option) any later version. | |
| 15 | * | |
| 16 | * This program is distributed in the hope that it will be useful, | |
| 17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 19 | * GNU General Public License for more details. | |
| 20 | * | |
| 21 | * You should have received a copy of the GNU General Public License | |
| 22 | * along with this program; if not, write to the Free Software | |
| 23 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| 24 | */ | |
| 9791 | 25 | #include "internal.h" |
| 26 | #include "gtkgaim.h" | |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5826
diff
changeset
|
27 | |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5826
diff
changeset
|
28 | #include "debug.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5826
diff
changeset
|
29 | #include "notify.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5826
diff
changeset
|
30 | #include "ft.h" |
| 4514 | 31 | #include "prpl.h" |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5826
diff
changeset
|
32 | #include "util.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5826
diff
changeset
|
33 | |
| 10299 | 34 | #include "gtkgaim-disclosure.h" |
| 4514 | 35 | #include "gtkcellrendererprogress.h" |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5826
diff
changeset
|
36 | #include "gtkft.h" |
|
5974
00c68435d9f3
[gaim-migrate @ 6421]
Mark Doliner <markdoliner@pidgin.im>
parents:
5966
diff
changeset
|
37 | #include "prefs.h" |
|
5966
91a208b3e979
[gaim-migrate @ 6413]
Mark Doliner <markdoliner@pidgin.im>
parents:
5959
diff
changeset
|
38 | #include "gtkutils.h" |
| 10299 | 39 | #include "gtkstock.h" |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
40 | |
|
4573
a5f392e4a71e
[gaim-migrate @ 4854]
Christian Hammond <chipx86@chipx86.com>
parents:
4570
diff
changeset
|
41 | #define GAIM_GTKXFER(xfer) \ |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
42 | (GaimGtkXferUiData *)(xfer)->ui_data |
| 4514 | 43 | |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
44 | struct _GaimGtkXferDialog |
| 4514 | 45 | { |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
46 | gboolean keep_open; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
47 | gboolean auto_clear; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
48 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
49 | gint num_transfers; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
50 | |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
51 | GaimXfer *selected_xfer; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
52 | |
| 4514 | 53 | GtkWidget *window; |
| 54 | GtkWidget *tree; | |
| 55 | GtkListStore *model; | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
56 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
57 | GtkWidget *disclosure; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
58 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
59 | GtkWidget *table; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
60 | |
| 9785 | 61 | GtkWidget *local_user_desc_label; |
| 62 | GtkWidget *local_user_label; | |
| 63 | GtkWidget *remote_user_desc_label; | |
| 64 | GtkWidget *remote_user_label; | |
| 65 | GtkWidget *protocol_label; | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
66 | GtkWidget *filename_label; |
|
10911
e2cc7dddee17
[gaim-migrate @ 12665]
Daniel Atallah <datallah@pidgin.im>
parents:
10654
diff
changeset
|
67 | GtkWidget *localfile_label; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
68 | GtkWidget *status_label; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
69 | GtkWidget *speed_label; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
70 | GtkWidget *time_elapsed_label; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
71 | GtkWidget *time_remaining_label; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
72 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
73 | GtkWidget *progress; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
74 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
75 | /* Buttons */ |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
76 | GtkWidget *open_button; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
77 | GtkWidget *pause_button; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
78 | GtkWidget *resume_button; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
79 | GtkWidget *remove_button; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
80 | GtkWidget *stop_button; |
|
5608
b78f573998e5
[gaim-migrate @ 6012]
Robert McQueen <robot101@debian.org>
parents:
5498
diff
changeset
|
81 | GtkWidget *close_button; |
| 4514 | 82 | }; |
| 83 | ||
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
84 | typedef struct |
| 4514 | 85 | { |
| 86 | GtkTreeIter iter; | |
| 87 | time_t start_time; | |
| 9017 | 88 | time_t end_time; |
| 7805 | 89 | gboolean in_list; |
| 4514 | 90 | |
| 91 | char *name; | |
| 92 | ||
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
93 | } GaimGtkXferUiData; |
|
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
94 | |
|
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
95 | static GaimGtkXferDialog *xfer_dialog = NULL; |
| 4514 | 96 | |
| 97 | enum | |
| 98 | { | |
| 99 | COLUMN_STATUS = 0, | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
100 | COLUMN_PROGRESS, |
| 4514 | 101 | COLUMN_FILENAME, |
| 102 | COLUMN_SIZE, | |
| 103 | COLUMN_REMAINING, | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
104 | COLUMN_DATA, |
| 4514 | 105 | NUM_COLUMNS |
| 106 | }; | |
| 107 | ||
| 7805 | 108 | |
| 109 | /************************************************************************** | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
110 | * Utility Functions |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
111 | **************************************************************************/ |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
112 | static void |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
113 | get_xfer_info_strings(GaimXfer *xfer, char **kbsec, char **time_elapsed, |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
114 | char **time_remaining) |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
115 | { |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
116 | GaimGtkXferUiData *data; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
117 | double kb_sent, kb_rem; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
118 | double kbps = 0.0; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
119 | time_t elapsed, now; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
120 | |
|
4573
a5f392e4a71e
[gaim-migrate @ 4854]
Christian Hammond <chipx86@chipx86.com>
parents:
4570
diff
changeset
|
121 | data = GAIM_GTKXFER(xfer); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
122 | |
| 9017 | 123 | if (data->end_time == -1 && |
| 124 | (gaim_xfer_is_canceled(xfer) || gaim_xfer_is_completed(xfer))) | |
| 125 | data->end_time = time(NULL); | |
| 126 | ||
| 127 | if (data->end_time != -1) | |
| 128 | now = data->end_time; | |
| 129 | else | |
| 130 | now = time(NULL); | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
131 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
132 | kb_sent = gaim_xfer_get_bytes_sent(xfer) / 1024.0; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
133 | kb_rem = gaim_xfer_get_bytes_remaining(xfer) / 1024.0; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
134 | elapsed = (now - data->start_time); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
135 | kbps = (elapsed > 0 ? (kb_sent / elapsed) : 0); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
136 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
137 | if (kbsec != NULL) { |
|
11406
37ad636a66e3
[gaim-migrate @ 13641]
Peter McCurdy <cpirate@users.sourceforge.net>
parents:
11256
diff
changeset
|
138 | *kbsec = g_strdup_printf(_("%.2f KB/s"), kbps); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
139 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
140 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
141 | if (time_elapsed != NULL) { |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
142 | int h, m, s; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
143 | int secs_elapsed; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
144 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
145 | secs_elapsed = now - data->start_time; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
146 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
147 | h = secs_elapsed / 3600; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
148 | m = (secs_elapsed % 3600) / 60; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
149 | s = secs_elapsed % 60; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
150 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
151 | *time_elapsed = g_strdup_printf("%d:%02d:%02d", h, m, s); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
152 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
153 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
154 | if (time_remaining != NULL) { |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
155 | if (gaim_xfer_get_size(xfer) == 0) { |
| 8351 | 156 | *time_remaining = g_strdup(_("Unknown")); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
157 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
158 | else if (gaim_xfer_is_completed(xfer)) { |
| 8351 | 159 | *time_remaining = g_strdup(_("Finished")); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
160 | } |
| 9017 | 161 | else if (gaim_xfer_is_canceled(xfer)) { |
| 162 | *time_remaining = g_strdup(_("Canceled")); | |
| 163 | } | |
| 164 | else if (kb_sent <= 0) { | |
| 165 | *time_remaining = g_strdup(_("Waiting for transfer to begin")); | |
| 166 | } | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
167 | else { |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
168 | int h, m, s; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
169 | int secs_remaining; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
170 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
171 | secs_remaining = (int)(kb_rem / kbps); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
172 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
173 | h = secs_remaining / 3600; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
174 | m = (secs_remaining % 3600) / 60; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
175 | s = secs_remaining % 60; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
176 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
177 | *time_remaining = g_strdup_printf("%d:%02d:%02d", h, m, s); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
178 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
179 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
180 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
181 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
182 | static void |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
183 | update_detailed_info(GaimGtkXferDialog *dialog, GaimXfer *xfer) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
184 | { |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
185 | GaimGtkXferUiData *data; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
186 | char *kbsec, *time_elapsed, *time_remaining; |
|
10919
22fba24cd16e
[gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10911
diff
changeset
|
187 | char *status, *utf8; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
188 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
189 | if (dialog == NULL || xfer == NULL) |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
190 | return; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
191 | |
|
4573
a5f392e4a71e
[gaim-migrate @ 4854]
Christian Hammond <chipx86@chipx86.com>
parents:
4570
diff
changeset
|
192 | data = GAIM_GTKXFER(xfer); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
193 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
194 | get_xfer_info_strings(xfer, &kbsec, &time_elapsed, &time_remaining); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
195 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
196 | status = g_strdup_printf("%ld of %ld", |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
197 | (unsigned long)gaim_xfer_get_bytes_sent(xfer), |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
198 | (unsigned long)gaim_xfer_get_size(xfer)); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
199 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
200 | if (gaim_xfer_get_size(xfer) >= 0 && |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
201 | gaim_xfer_is_completed(xfer)) { |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
202 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
203 | GdkPixbuf *pixbuf = NULL; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
204 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
205 | pixbuf = gtk_widget_render_icon(xfer_dialog->window, |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
206 | GAIM_STOCK_FILE_DONE, |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
207 | GTK_ICON_SIZE_MENU, NULL); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
208 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
209 | gtk_list_store_set(GTK_LIST_STORE(xfer_dialog->model), &data->iter, |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
210 | COLUMN_STATUS, pixbuf, |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
211 | -1); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
212 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
213 | g_object_unref(pixbuf); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
214 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
215 | |
| 9785 | 216 | if (gaim_xfer_get_type(xfer) == GAIM_XFER_RECEIVE) { |
| 217 | gtk_label_set_markup(GTK_LABEL(dialog->local_user_desc_label), | |
| 218 | _("<b>Receiving As:</b>")); | |
| 219 | gtk_label_set_markup(GTK_LABEL(dialog->remote_user_desc_label), | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
220 | _("<b>Receiving From:</b>")); |
| 9785 | 221 | } |
| 222 | else { | |
| 223 | gtk_label_set_markup(GTK_LABEL(dialog->remote_user_desc_label), | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
224 | _("<b>Sending To:</b>")); |
| 9785 | 225 | gtk_label_set_markup(GTK_LABEL(dialog->local_user_desc_label), |
| 226 | _("<b>Sending As:</b>")); | |
| 227 | } | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
228 | |
| 9785 | 229 | gtk_label_set_text(GTK_LABEL(dialog->local_user_label), |
| 230 | gaim_account_get_username(xfer->account)); | |
| 231 | gtk_label_set_text(GTK_LABEL(dialog->remote_user_label), xfer->who); | |
| 232 | gtk_label_set_text(GTK_LABEL(dialog->protocol_label), | |
| 233 | gaim_account_get_protocol_name(xfer->account)); | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
234 | |
| 7738 | 235 | if (gaim_xfer_get_type(xfer) == GAIM_XFER_RECEIVE) { |
| 236 | gtk_label_set_text(GTK_LABEL(dialog->filename_label), | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
237 | gaim_xfer_get_filename(xfer)); |
| 7738 | 238 | } else { |
| 239 | char *tmp; | |
|
10919
22fba24cd16e
[gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10911
diff
changeset
|
240 | |
| 7738 | 241 | tmp = g_path_get_basename(gaim_xfer_get_local_filename(xfer)); |
|
10919
22fba24cd16e
[gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10911
diff
changeset
|
242 | utf8 = g_filename_to_utf8(tmp, -1, NULL, NULL, NULL); |
| 7738 | 243 | g_free(tmp); |
|
10919
22fba24cd16e
[gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10911
diff
changeset
|
244 | |
|
22fba24cd16e
[gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10911
diff
changeset
|
245 | gtk_label_set_text(GTK_LABEL(dialog->filename_label), utf8); |
|
22fba24cd16e
[gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10911
diff
changeset
|
246 | g_free(utf8); |
| 7738 | 247 | } |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
248 | |
|
10919
22fba24cd16e
[gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10911
diff
changeset
|
249 | utf8 = g_filename_to_utf8((gaim_xfer_get_local_filename(xfer)), -1, NULL, NULL, NULL); |
|
22fba24cd16e
[gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10911
diff
changeset
|
250 | gtk_label_set_text(GTK_LABEL(dialog->localfile_label), utf8); |
|
22fba24cd16e
[gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10911
diff
changeset
|
251 | g_free(utf8); |
|
10911
e2cc7dddee17
[gaim-migrate @ 12665]
Daniel Atallah <datallah@pidgin.im>
parents:
10654
diff
changeset
|
252 | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
253 | gtk_label_set_text(GTK_LABEL(dialog->status_label), status); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
254 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
255 | gtk_label_set_text(GTK_LABEL(dialog->speed_label), kbsec); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
256 | gtk_label_set_text(GTK_LABEL(dialog->time_elapsed_label), time_elapsed); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
257 | gtk_label_set_text(GTK_LABEL(dialog->time_remaining_label), |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
258 | time_remaining); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
259 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
260 | gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(dialog->progress), |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
261 | gaim_xfer_get_progress(xfer)); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
262 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
263 | g_free(kbsec); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
264 | g_free(time_elapsed); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
265 | g_free(time_remaining); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
266 | g_free(status); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
267 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
268 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
269 | static void |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
270 | update_buttons(GaimGtkXferDialog *dialog, GaimXfer *xfer) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
271 | { |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
272 | if (dialog->selected_xfer == NULL) { |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
273 | gtk_widget_set_sensitive(dialog->disclosure, FALSE); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
274 | gtk_widget_set_sensitive(dialog->open_button, FALSE); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
275 | gtk_widget_set_sensitive(dialog->pause_button, FALSE); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
276 | gtk_widget_set_sensitive(dialog->resume_button, FALSE); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
277 | gtk_widget_set_sensitive(dialog->stop_button, FALSE); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
278 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
279 | gtk_widget_show(dialog->stop_button); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
280 | gtk_widget_hide(dialog->remove_button); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
281 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
282 | return; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
283 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
284 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
285 | if (dialog->selected_xfer != xfer) |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
286 | return; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
287 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
288 | if (gaim_xfer_is_completed(xfer)) { |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
289 | gtk_widget_hide(dialog->stop_button); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
290 | gtk_widget_show(dialog->remove_button); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
291 | |
| 11010 | 292 | #ifdef _WIN32 |
| 293 | /* If using Win32... */ | |
|
10923
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
294 | if (gaim_xfer_get_type(xfer) == GAIM_XFER_RECEIVE) { |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
295 | gtk_widget_set_sensitive(dialog->open_button, TRUE); |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
296 | } else { |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
297 | gtk_widget_set_sensitive(dialog->open_button, FALSE); |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
298 | } |
| 11010 | 299 | #else |
| 300 | /* If using GNOME, use gnome-open */ | |
| 301 | if (gaim_xfer_get_type(xfer) == GAIM_XFER_RECEIVE && gaim_running_gnome()) { | |
| 302 | gtk_widget_set_sensitive(dialog->open_button, TRUE); | |
| 303 | } else { | |
| 304 | gtk_widget_set_sensitive (dialog->open_button, FALSE); | |
| 305 | } | |
| 8366 | 306 | #endif |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
307 | gtk_widget_set_sensitive(dialog->pause_button, FALSE); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
308 | gtk_widget_set_sensitive(dialog->resume_button, FALSE); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
309 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
310 | gtk_widget_set_sensitive(dialog->remove_button, TRUE); |
| 7738 | 311 | } else if (gaim_xfer_is_canceled(xfer)) { |
| 312 | gtk_widget_hide(dialog->stop_button); | |
| 313 | gtk_widget_show(dialog->remove_button); | |
| 314 | ||
| 315 | gtk_widget_set_sensitive(dialog->open_button, FALSE); | |
| 316 | gtk_widget_set_sensitive(dialog->pause_button, FALSE); | |
| 317 | gtk_widget_set_sensitive(dialog->resume_button, FALSE); | |
| 318 | ||
| 319 | gtk_widget_set_sensitive(dialog->remove_button, TRUE); | |
| 320 | } else { | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
321 | gtk_widget_show(dialog->stop_button); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
322 | gtk_widget_hide(dialog->remove_button); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
323 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
324 | gtk_widget_set_sensitive(dialog->open_button, FALSE); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
325 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
326 | /* TODO: If the transfer can pause, blah blah */ |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
327 | gtk_widget_set_sensitive(dialog->pause_button, FALSE); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
328 | gtk_widget_set_sensitive(dialog->resume_button, FALSE); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
329 | gtk_widget_set_sensitive(dialog->stop_button, TRUE); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
330 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
331 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
332 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
333 | static void |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
334 | ensure_row_selected(GaimGtkXferDialog *dialog) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
335 | { |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
336 | GtkTreeIter iter; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
337 | GtkTreeSelection *selection; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
338 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
339 | selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->tree)); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
340 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
341 | if (gtk_tree_selection_get_selected(selection, NULL, &iter)) |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
342 | return; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
343 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
344 | if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(dialog->model), &iter)) |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
345 | gtk_tree_selection_select_iter(selection, &iter); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
346 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
347 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
348 | /************************************************************************** |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
349 | * Callbacks |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
350 | **************************************************************************/ |
| 4514 | 351 | static gint |
| 352 | delete_win_cb(GtkWidget *w, GdkEventAny *e, gpointer d) | |
| 353 | { | |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
354 | GaimGtkXferDialog *dialog; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
355 | |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
356 | dialog = (GaimGtkXferDialog *)d; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
357 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
358 | gaim_gtkxfer_dialog_hide(dialog); |
| 4514 | 359 | |
| 360 | return TRUE; | |
| 361 | } | |
| 362 | ||
| 363 | static void | |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
364 | toggle_keep_open_cb(GtkWidget *w, GaimGtkXferDialog *dialog) |
| 4514 | 365 | { |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
366 | dialog->keep_open = !dialog->keep_open; |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
367 | gaim_prefs_set_bool("/gaim/gtk/filetransfer/keep_open", |
|
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
368 | dialog->keep_open); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
369 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
370 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
371 | static void |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
372 | toggle_clear_finished_cb(GtkWidget *w, GaimGtkXferDialog *dialog) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
373 | { |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
374 | dialog->auto_clear = !dialog->auto_clear; |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
375 | gaim_prefs_set_bool("/gaim/gtk/filetransfer/clear_finished", |
|
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
376 | dialog->auto_clear); |
| 4514 | 377 | } |
| 378 | ||
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
379 | static void |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
380 | selection_changed_cb(GtkTreeSelection *selection, GaimGtkXferDialog *dialog) |
| 4514 | 381 | { |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
382 | GtkTreeIter iter; |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
383 | GaimXfer *xfer = NULL; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
384 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
385 | if (gtk_tree_selection_get_selected(selection, NULL, &iter)) { |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
386 | GValue val = {0, }; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
387 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
388 | gtk_widget_set_sensitive(dialog->disclosure, TRUE); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
389 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
390 | gtk_tree_model_get_value(GTK_TREE_MODEL(dialog->model), |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
391 | &iter, COLUMN_DATA, &val); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
392 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
393 | xfer = g_value_get_pointer(&val); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
394 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
395 | update_detailed_info(dialog, xfer); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
396 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
397 | dialog->selected_xfer = xfer; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
398 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
399 | else { |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
400 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->disclosure), |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
401 | FALSE); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
402 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
403 | gtk_widget_set_sensitive(dialog->disclosure, FALSE); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
404 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
405 | dialog->selected_xfer = NULL; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
406 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
407 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
408 | update_buttons(dialog, xfer); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
409 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
410 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
411 | static void |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
412 | open_button_cb(GtkButton *button, GaimGtkXferDialog *dialog) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
413 | { |
| 11010 | 414 | #ifdef _WIN32 |
| 415 | /* If using Win32... */ | |
|
10923
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
416 | int code; |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
417 | if (G_WIN32_HAVE_WIDECHAR_API ()) { |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
418 | wchar_t *wc_filename = g_utf8_to_utf16( |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
419 | gaim_xfer_get_local_filename( |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
420 | dialog->selected_xfer), |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
421 | -1, NULL, NULL, NULL); |
| 11010 | 422 | |
|
10923
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
423 | code = (int) ShellExecuteW(NULL, NULL, wc_filename, NULL, NULL, |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
424 | SW_SHOW); |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
425 | |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
426 | g_free(wc_filename); |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
427 | } else { |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
428 | char *l_filename = g_locale_from_utf8( |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
429 | gaim_xfer_get_local_filename( |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
430 | dialog->selected_xfer), |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
431 | -1, NULL, NULL, NULL); |
| 11010 | 432 | |
|
10923
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
433 | code = (int) ShellExecuteA(NULL, NULL, l_filename, NULL, NULL, |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
434 | SW_SHOW); |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
435 | |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
436 | g_free(l_filename); |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
437 | } |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
438 | |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
439 | if (code == SE_ERR_ASSOCINCOMPLETE || code == SE_ERR_NOASSOC) |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
440 | { |
| 11010 | 441 | gaim_notify_error(dialog, NULL, |
|
10923
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
442 | _("There is no application configured to open this type of file."), NULL); |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
443 | } |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
444 | else if (code < 32) |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
445 | { |
| 11010 | 446 | gaim_notify_error(dialog, NULL, |
|
10923
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
447 | _("An error occurred while opening the file."), NULL); |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
448 | gaim_debug_warning("ft", "filename: %s; code: %d\n", |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
449 | gaim_xfer_get_local_filename(dialog->selected_xfer), code); |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
450 | } |
| 11010 | 451 | #else |
| 452 | /* If using GNOME, use gnome-open */ | |
| 453 | if (gaim_running_gnome()) | |
| 454 | { | |
| 455 | char *command = NULL; | |
| 456 | char *tmp = NULL; | |
| 457 | GError *error = NULL; | |
| 458 | ||
| 459 | command = g_strdup_printf("gnome-open \"%s\"", | |
| 460 | gaim_xfer_get_local_filename(dialog->selected_xfer)); | |
| 461 | ||
| 462 | if (gaim_program_is_valid(command)) | |
| 463 | { | |
| 464 | gint exit_status; | |
| 465 | if (!g_spawn_command_line_sync(command, NULL, NULL, &exit_status, &error)) | |
| 466 | { | |
| 467 | tmp = g_strdup_printf(_("Error launching %s: %s"), | |
| 468 | gaim_xfer_get_local_filename(dialog->selected_xfer), | |
| 469 | error->message); | |
| 470 | gaim_notify_error(dialog, NULL, _("Unable to open file."), tmp); | |
| 471 | g_free(tmp); | |
| 472 | g_error_free(error); | |
| 473 | } | |
| 474 | if (exit_status != 0) | |
| 475 | { | |
| 476 | char *primary = g_strdup_printf(_("Error running %s"), command); | |
| 477 | char *secondary = g_strdup_printf(_("Process returned error code %d"), | |
| 478 | exit_status); | |
| 479 | gaim_notify_error(dialog, NULL, primary, secondary); | |
| 480 | g_free(tmp); | |
| 481 | } | |
| 482 | } | |
| 483 | } | |
| 8366 | 484 | #endif |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
485 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
486 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
487 | static void |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
488 | pause_button_cb(GtkButton *button, GaimGtkXferDialog *dialog) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
489 | { |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
490 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
491 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
492 | static void |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
493 | resume_button_cb(GtkButton *button, GaimGtkXferDialog *dialog) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
494 | { |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
495 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
496 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
497 | static void |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
498 | remove_button_cb(GtkButton *button, GaimGtkXferDialog *dialog) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
499 | { |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
500 | gaim_gtkxfer_dialog_remove_xfer(dialog, dialog->selected_xfer); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
501 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
502 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
503 | static void |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
504 | stop_button_cb(GtkButton *button, GaimGtkXferDialog *dialog) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
505 | { |
|
4675
8e0a7b537ca2
[gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents:
4661
diff
changeset
|
506 | gaim_xfer_cancel_local(dialog->selected_xfer); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
507 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
508 | |
|
5608
b78f573998e5
[gaim-migrate @ 6012]
Robert McQueen <robot101@debian.org>
parents:
5498
diff
changeset
|
509 | static void |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
510 | close_button_cb(GtkButton *button, GaimGtkXferDialog *dialog) |
|
5608
b78f573998e5
[gaim-migrate @ 6012]
Robert McQueen <robot101@debian.org>
parents:
5498
diff
changeset
|
511 | { |
|
b78f573998e5
[gaim-migrate @ 6012]
Robert McQueen <robot101@debian.org>
parents:
5498
diff
changeset
|
512 | gaim_gtkxfer_dialog_hide(dialog); |
|
b78f573998e5
[gaim-migrate @ 6012]
Robert McQueen <robot101@debian.org>
parents:
5498
diff
changeset
|
513 | } |
|
b78f573998e5
[gaim-migrate @ 6012]
Robert McQueen <robot101@debian.org>
parents:
5498
diff
changeset
|
514 | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
515 | /************************************************************************** |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
516 | * Dialog Building Functions |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
517 | **************************************************************************/ |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
518 | static GtkWidget * |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
519 | setup_tree(GaimGtkXferDialog *dialog) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
520 | { |
| 4514 | 521 | GtkWidget *sw; |
| 522 | GtkWidget *tree; | |
| 523 | GtkListStore *model; | |
| 524 | GtkCellRenderer *renderer; | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
525 | GtkTreeViewColumn *column; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
526 | GtkTreeSelection *selection; |
| 4514 | 527 | |
| 528 | /* Create the scrolled window. */ | |
| 529 | sw = gtk_scrolled_window_new(0, 0); | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
530 | gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
531 | GTK_SHADOW_IN); |
| 4514 | 532 | gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), |
| 533 | GTK_POLICY_AUTOMATIC, | |
| 534 | GTK_POLICY_ALWAYS); | |
| 535 | gtk_widget_show(sw); | |
| 536 | ||
| 537 | /* Build the tree model */ | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
538 | /* Transfer type, Progress Bar, Filename, Size, Remaining */ |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
539 | model = gtk_list_store_new(NUM_COLUMNS, GDK_TYPE_PIXBUF, G_TYPE_DOUBLE, |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
540 | G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
541 | G_TYPE_POINTER); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
542 | dialog->model = model; |
| 4514 | 543 | |
| 544 | /* Create the treeview */ | |
| 545 | dialog->tree = tree = gtk_tree_view_new_with_model(GTK_TREE_MODEL(model)); | |
| 546 | gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(tree), TRUE); | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
547 | selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree)); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
548 | /* gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE); */ |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
549 | |
| 4514 | 550 | gtk_widget_show(tree); |
| 551 | ||
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
552 | g_signal_connect(G_OBJECT(selection), "changed", |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
553 | G_CALLBACK(selection_changed_cb), dialog); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
554 | |
| 4514 | 555 | g_object_unref(G_OBJECT(model)); |
| 556 | ||
| 557 | ||
| 558 | /* Columns */ | |
| 559 | ||
| 560 | /* Transfer Type column */ | |
| 561 | renderer = gtk_cell_renderer_pixbuf_new(); | |
| 562 | column = gtk_tree_view_column_new_with_attributes(NULL, renderer, | |
| 563 | "pixbuf", COLUMN_STATUS, NULL); | |
| 564 | gtk_tree_view_column_set_sizing(GTK_TREE_VIEW_COLUMN(column), | |
| 565 | GTK_TREE_VIEW_COLUMN_FIXED); | |
| 566 | gtk_tree_view_column_set_fixed_width(GTK_TREE_VIEW_COLUMN(column), 25); | |
| 567 | gtk_tree_view_column_set_resizable(GTK_TREE_VIEW_COLUMN(column), TRUE); | |
| 568 | gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column); | |
| 569 | ||
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
570 | /* Progress bar column */ |
|
9898
9d8d9e9ef1bc
[gaim-migrate @ 10788]
Mark Doliner <markdoliner@pidgin.im>
parents:
9791
diff
changeset
|
571 | renderer = gaim_gtk_cell_renderer_progress_new(); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
572 | column = gtk_tree_view_column_new_with_attributes(_("Progress"), renderer, |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
573 | "percentage", COLUMN_PROGRESS, NULL); |
| 4514 | 574 | gtk_tree_view_column_set_resizable(GTK_TREE_VIEW_COLUMN(column), TRUE); |
| 575 | gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column); | |
| 576 | ||
| 577 | /* Filename column */ | |
| 578 | renderer = gtk_cell_renderer_text_new(); | |
| 579 | column = gtk_tree_view_column_new_with_attributes(_("Filename"), renderer, | |
| 580 | "text", COLUMN_FILENAME, NULL); | |
| 581 | gtk_tree_view_column_set_resizable(GTK_TREE_VIEW_COLUMN(column), TRUE); | |
| 582 | gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column); | |
| 583 | ||
| 584 | /* File Size column */ | |
| 585 | renderer = gtk_cell_renderer_text_new(); | |
| 586 | column = gtk_tree_view_column_new_with_attributes(_("Size"), renderer, | |
| 587 | "text", COLUMN_SIZE, NULL); | |
| 588 | gtk_tree_view_column_set_resizable(GTK_TREE_VIEW_COLUMN(column), TRUE); | |
| 589 | gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column); | |
| 590 | ||
| 591 | /* Bytes Remaining column */ | |
| 592 | renderer = gtk_cell_renderer_text_new(); | |
| 593 | column = gtk_tree_view_column_new_with_attributes(_("Remaining"), | |
| 594 | renderer, "text", COLUMN_REMAINING, NULL); | |
| 595 | gtk_tree_view_column_set_resizable(GTK_TREE_VIEW_COLUMN(column), TRUE); | |
| 596 | gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column); | |
| 597 | ||
| 598 | gtk_tree_view_columns_autosize(GTK_TREE_VIEW(tree)); | |
| 599 | ||
| 600 | gtk_container_add(GTK_CONTAINER(sw), tree); | |
| 601 | gtk_widget_show(tree); | |
| 602 | ||
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
603 | return sw; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
604 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
605 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
606 | static GtkWidget * |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
607 | make_info_table(GaimGtkXferDialog *dialog) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
608 | { |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
609 | GtkWidget *table; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
610 | GtkWidget *label; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
611 | int i; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
612 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
613 | struct |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
614 | { |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
615 | GtkWidget **desc_label; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
616 | GtkWidget **val_label; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
617 | const char *desc; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
618 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
619 | } labels[] = |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
620 | { |
| 9785 | 621 | { &dialog->local_user_desc_label, &dialog->local_user_label, NULL }, |
| 622 | { &dialog->remote_user_desc_label, &dialog->remote_user_label, NULL }, | |
|
10911
e2cc7dddee17
[gaim-migrate @ 12665]
Daniel Atallah <datallah@pidgin.im>
parents:
10654
diff
changeset
|
623 | { &label, &dialog->protocol_label, _("Protocol:") }, |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
624 | { &label, &dialog->filename_label, _("Filename:") }, |
|
10911
e2cc7dddee17
[gaim-migrate @ 12665]
Daniel Atallah <datallah@pidgin.im>
parents:
10654
diff
changeset
|
625 | { &label, &dialog->localfile_label, _("Local File:") }, |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
626 | { &label, &dialog->status_label, _("Status:") }, |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
627 | { &label, &dialog->speed_label, _("Speed:") }, |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
628 | { &label, &dialog->time_elapsed_label, _("Time Elapsed:") }, |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
629 | { &label, &dialog->time_remaining_label, _("Time Remaining:") } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
630 | }; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
631 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
632 | /* Setup the initial table */ |
|
10591
9fdfd7279217
[gaim-migrate @ 11996]
William Jon McCann <mccannwj@users.sourceforge.net>
parents:
10535
diff
changeset
|
633 | dialog->table = table = gtk_table_new(9, 2, FALSE); |
| 11243 | 634 | gtk_table_set_row_spacings(GTK_TABLE(table), GAIM_HIG_BOX_SPACE); |
| 635 | gtk_table_set_col_spacings(GTK_TABLE(table), GAIM_HIG_BOX_SPACE); | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
636 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
637 | /* Setup the labels */ |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
638 | for (i = 0; i < sizeof(labels) / sizeof(*labels); i++) { |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
639 | GtkWidget *label; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
640 | char buf[256]; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
641 | |
| 4894 | 642 | g_snprintf(buf, sizeof(buf), "<b>%s</b>", |
| 643 | labels[i].desc != NULL ? labels[i].desc : ""); | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
644 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
645 | *labels[i].desc_label = label = gtk_label_new(NULL); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
646 | gtk_label_set_markup(GTK_LABEL(label), buf); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
647 | gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
648 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
649 | gtk_table_attach(GTK_TABLE(table), label, 0, 1, i, i + 1, |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
650 | GTK_FILL, 0, 0, 0); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
651 | gtk_widget_show(label); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
652 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
653 | *labels[i].val_label = label = gtk_label_new(NULL); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
654 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
655 | gtk_table_attach(GTK_TABLE(table), label, 1, 2, i, i + 1, |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
656 | GTK_FILL | GTK_EXPAND, 0, 0, 0); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
657 | gtk_widget_show(label); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
658 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
659 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
660 | /* Setup the progress bar */ |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
661 | dialog->progress = gtk_progress_bar_new(); |
| 9785 | 662 | gtk_table_attach(GTK_TABLE(table), dialog->progress, 0, 2, 8, 9, |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
663 | GTK_FILL, GTK_FILL, 0, 0); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
664 | gtk_widget_show(dialog->progress); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
665 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
666 | return table; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
667 | } |
| 4514 | 668 | |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
669 | GaimGtkXferDialog * |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
670 | gaim_gtkxfer_dialog_new(void) |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
671 | { |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
672 | GaimGtkXferDialog *dialog; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
673 | GtkWidget *window; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
674 | GtkWidget *vbox1, *vbox2; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
675 | GtkWidget *bbox; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
676 | GtkWidget *sw; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
677 | GtkWidget *button; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
678 | GtkWidget *disclosure; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
679 | GtkWidget *table; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
680 | GtkWidget *checkbox; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
681 | |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
682 | dialog = g_new0(GaimGtkXferDialog, 1); |
|
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
683 | dialog->keep_open = |
|
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
684 | gaim_prefs_get_bool("/gaim/gtk/filetransfer/keep_open"); |
|
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
685 | dialog->auto_clear = |
|
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
686 | gaim_prefs_get_bool("/gaim/gtk/filetransfer/clear_finished"); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
687 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
688 | /* Create the window. */ |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
689 | dialog->window = window = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
690 | gtk_window_set_role(GTK_WINDOW(window), "file transfer"); |
|
4570
a5b8bc2edc07
[gaim-migrate @ 4851]
Christian Hammond <chipx86@chipx86.com>
parents:
4566
diff
changeset
|
691 | gtk_window_set_title(GTK_WINDOW(window), _("File Transfers")); |
| 4719 | 692 | gtk_window_set_resizable(GTK_WINDOW(window), FALSE); |
| 11243 | 693 | gtk_container_set_border_width(GTK_CONTAINER(window), GAIM_HIG_BORDER); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
694 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
695 | g_signal_connect(G_OBJECT(window), "delete_event", |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
696 | G_CALLBACK(delete_win_cb), dialog); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
697 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
698 | /* Create the parent vbox for everything. */ |
| 11243 | 699 | vbox1 = gtk_vbox_new(FALSE, GAIM_HIG_BORDER); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
700 | gtk_container_add(GTK_CONTAINER(window), vbox1); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
701 | gtk_widget_show(vbox1); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
702 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
703 | /* Create the main vbox for top half of the window. */ |
| 11243 | 704 | vbox2 = gtk_vbox_new(FALSE, GAIM_HIG_BOX_SPACE); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
705 | gtk_box_pack_start(GTK_BOX(vbox1), vbox2, TRUE, TRUE, 0); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
706 | gtk_widget_show(vbox2); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
707 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
708 | /* Setup the listbox */ |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
709 | sw = setup_tree(dialog); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
710 | gtk_box_pack_start(GTK_BOX(vbox2), sw, TRUE, TRUE, 0); |
| 4719 | 711 | gtk_widget_set_size_request(sw,-1, 140); |
|
7272
f8335b8f1f1c
[gaim-migrate @ 7849]
Christian Hammond <chipx86@chipx86.com>
parents:
7107
diff
changeset
|
712 | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
713 | /* "Keep the dialog open" */ |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
714 | checkbox = gtk_check_button_new_with_mnemonic( |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
715 | _("_Keep the dialog open")); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
716 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbox), |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
717 | dialog->keep_open); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
718 | g_signal_connect(G_OBJECT(checkbox), "toggled", |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
719 | G_CALLBACK(toggle_keep_open_cb), dialog); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
720 | gtk_box_pack_start(GTK_BOX(vbox2), checkbox, FALSE, FALSE, 0); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
721 | gtk_widget_show(checkbox); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
722 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
723 | /* "Clear finished transfers" */ |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
724 | checkbox = gtk_check_button_new_with_mnemonic( |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
725 | _("_Clear finished transfers")); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
726 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbox), |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
727 | dialog->auto_clear); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
728 | g_signal_connect(G_OBJECT(checkbox), "toggled", |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
729 | G_CALLBACK(toggle_clear_finished_cb), dialog); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
730 | gtk_box_pack_start(GTK_BOX(vbox2), checkbox, FALSE, FALSE, 0); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
731 | gtk_widget_show(checkbox); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
732 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
733 | /* "Download Details" arrow */ |
| 7738 | 734 | disclosure = gaim_disclosure_new(_("Show transfer details"), |
| 735 | _("Hide transfer details")); | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
736 | dialog->disclosure = disclosure; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
737 | gtk_box_pack_start(GTK_BOX(vbox2), disclosure, FALSE, FALSE, 0); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
738 | gtk_widget_show(disclosure); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
739 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
740 | gtk_widget_set_sensitive(disclosure, FALSE); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
741 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
742 | #if 0 |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
743 | g_signal_connect(G_OBJECT(disclosure), "toggled", |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
744 | G_CALLBACK(toggle_details_cb), dialog); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
745 | #endif |
| 4514 | 746 | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
747 | /* The table of information. */ |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
748 | table = make_info_table(dialog); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
749 | gtk_box_pack_start(GTK_BOX(vbox2), table, TRUE, TRUE, 0); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
750 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
751 | /* Setup the disclosure for the table. */ |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
752 | gaim_disclosure_set_container(GAIM_DISCLOSURE(disclosure), table); |
| 4514 | 753 | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
754 | /* Now the button box for the buttons */ |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
755 | bbox = gtk_hbutton_box_new(); |
| 11243 | 756 | gtk_box_set_spacing(GTK_BOX(bbox), GAIM_HIG_BOX_SPACE); |
|
4573
a5f392e4a71e
[gaim-migrate @ 4854]
Christian Hammond <chipx86@chipx86.com>
parents:
4570
diff
changeset
|
757 | gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
758 | gtk_box_pack_end(GTK_BOX(vbox1), bbox, FALSE, TRUE, 0); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
759 | gtk_widget_show(bbox); |
| 4514 | 760 | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
761 | /* Open button */ |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
762 | button = gtk_button_new_from_stock(GTK_STOCK_OPEN); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
763 | gtk_widget_set_sensitive(button, FALSE); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
764 | gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
765 | gtk_widget_show(button); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
766 | dialog->open_button = button; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
767 | |
| 4514 | 768 | g_signal_connect(G_OBJECT(button), "clicked", |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
769 | G_CALLBACK(open_button_cb), dialog); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
770 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
771 | /* Pause button */ |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
772 | button = gtk_button_new_with_mnemonic(_("_Pause")); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
773 | gtk_widget_set_sensitive(button, FALSE); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
774 | gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
| 4514 | 775 | gtk_widget_show(button); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
776 | dialog->pause_button = button; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
777 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
778 | g_signal_connect(G_OBJECT(button), "clicked", |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
779 | G_CALLBACK(pause_button_cb), dialog); |
|
7272
f8335b8f1f1c
[gaim-migrate @ 7849]
Christian Hammond <chipx86@chipx86.com>
parents:
7107
diff
changeset
|
780 | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
781 | /* Resume button */ |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
782 | button = gtk_button_new_with_mnemonic(_("_Resume")); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
783 | gtk_widget_set_sensitive(button, FALSE); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
784 | gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
785 | gtk_widget_show(button); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
786 | dialog->resume_button = button; |
| 4514 | 787 | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
788 | g_signal_connect(G_OBJECT(button), "clicked", |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
789 | G_CALLBACK(resume_button_cb), dialog); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
790 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
791 | /* Remove button */ |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
792 | button = gtk_button_new_from_stock(GTK_STOCK_REMOVE); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
793 | gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
794 | gtk_widget_hide(button); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
795 | dialog->remove_button = button; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
796 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
797 | g_signal_connect(G_OBJECT(button), "clicked", |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
798 | G_CALLBACK(remove_button_cb), dialog); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
799 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
800 | /* Stop button */ |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
801 | button = gtk_button_new_from_stock(GTK_STOCK_STOP); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
802 | gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
| 4514 | 803 | gtk_widget_show(button); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
804 | gtk_widget_set_sensitive(button, FALSE); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
805 | dialog->stop_button = button; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
806 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
807 | g_signal_connect(G_OBJECT(button), "clicked", |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
808 | G_CALLBACK(stop_button_cb), dialog); |
| 4514 | 809 | |
|
5608
b78f573998e5
[gaim-migrate @ 6012]
Robert McQueen <robot101@debian.org>
parents:
5498
diff
changeset
|
810 | /* Close button */ |
|
b78f573998e5
[gaim-migrate @ 6012]
Robert McQueen <robot101@debian.org>
parents:
5498
diff
changeset
|
811 | button = gtk_button_new_from_stock(GTK_STOCK_CLOSE); |
|
b78f573998e5
[gaim-migrate @ 6012]
Robert McQueen <robot101@debian.org>
parents:
5498
diff
changeset
|
812 | gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
|
b78f573998e5
[gaim-migrate @ 6012]
Robert McQueen <robot101@debian.org>
parents:
5498
diff
changeset
|
813 | gtk_widget_show(button); |
|
b78f573998e5
[gaim-migrate @ 6012]
Robert McQueen <robot101@debian.org>
parents:
5498
diff
changeset
|
814 | dialog->close_button = button; |
|
b78f573998e5
[gaim-migrate @ 6012]
Robert McQueen <robot101@debian.org>
parents:
5498
diff
changeset
|
815 | |
|
b78f573998e5
[gaim-migrate @ 6012]
Robert McQueen <robot101@debian.org>
parents:
5498
diff
changeset
|
816 | g_signal_connect(G_OBJECT(button), "clicked", |
|
b78f573998e5
[gaim-migrate @ 6012]
Robert McQueen <robot101@debian.org>
parents:
5498
diff
changeset
|
817 | G_CALLBACK(close_button_cb), dialog); |
|
b78f573998e5
[gaim-migrate @ 6012]
Robert McQueen <robot101@debian.org>
parents:
5498
diff
changeset
|
818 | |
| 4514 | 819 | return dialog; |
| 820 | } | |
| 821 | ||
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
822 | void |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
823 | gaim_gtkxfer_dialog_destroy(GaimGtkXferDialog *dialog) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
824 | { |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
825 | g_return_if_fail(dialog != NULL); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
826 | |
| 11010 | 827 | gaim_notify_close_with_handle(dialog); |
| 828 | ||
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
829 | gtk_widget_destroy(dialog->window); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
830 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
831 | g_free(dialog); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
832 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
833 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
834 | void |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
835 | gaim_gtkxfer_dialog_show(GaimGtkXferDialog *dialog) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
836 | { |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
837 | g_return_if_fail(dialog != NULL); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
838 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
839 | gtk_widget_show(dialog->window); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
840 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
841 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
842 | void |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
843 | gaim_gtkxfer_dialog_hide(GaimGtkXferDialog *dialog) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
844 | { |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
845 | g_return_if_fail(dialog != NULL); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
846 | |
| 11010 | 847 | gaim_notify_close_with_handle(dialog); |
| 848 | ||
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
849 | gtk_widget_hide(dialog->window); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
850 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
851 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
852 | void |
| 4698 | 853 | gaim_show_xfer_dialog() |
| 854 | { | |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
855 | GaimGtkXferDialog *dialog; |
|
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
856 | |
|
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
857 | dialog = gaim_get_gtkxfer_dialog(); |
| 4698 | 858 | |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
859 | if (dialog == NULL) { |
|
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
860 | dialog = gaim_gtkxfer_dialog_new(); |
| 4698 | 861 | |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
862 | gaim_set_gtkxfer_dialog(dialog); |
|
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
863 | } |
|
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
864 | |
|
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
865 | gaim_gtkxfer_dialog_show(dialog); |
| 4698 | 866 | } |
| 867 | ||
| 868 | void | |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
869 | gaim_gtkxfer_dialog_add_xfer(GaimGtkXferDialog *dialog, GaimXfer *xfer) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
870 | { |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
871 | GaimGtkXferUiData *data; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
872 | GaimXferType type; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
873 | GdkPixbuf *pixbuf; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
874 | char *size_str, *remaining_str; |
|
10919
22fba24cd16e
[gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10911
diff
changeset
|
875 | char *lfilename, *utf8; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
876 | |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
877 | g_return_if_fail(dialog != NULL); |
|
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
878 | g_return_if_fail(xfer != NULL); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
879 | |
| 7805 | 880 | gaim_xfer_ref(xfer); |
| 881 | ||
|
4573
a5f392e4a71e
[gaim-migrate @ 4854]
Christian Hammond <chipx86@chipx86.com>
parents:
4570
diff
changeset
|
882 | data = GAIM_GTKXFER(xfer); |
| 7805 | 883 | data->in_list = TRUE; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
884 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
885 | gaim_gtkxfer_dialog_show(dialog); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
886 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
887 | data->start_time = time(NULL); |
| 9017 | 888 | data->end_time = -1; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
889 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
890 | type = gaim_xfer_get_type(xfer); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
891 | |
|
7107
903864ff76c3
[gaim-migrate @ 7672]
Christian Hammond <chipx86@chipx86.com>
parents:
7035
diff
changeset
|
892 | size_str = gaim_str_size_to_units(gaim_xfer_get_size(xfer)); |
|
903864ff76c3
[gaim-migrate @ 7672]
Christian Hammond <chipx86@chipx86.com>
parents:
7035
diff
changeset
|
893 | remaining_str = gaim_str_size_to_units(gaim_xfer_get_bytes_remaining(xfer)); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
894 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
895 | pixbuf = gtk_widget_render_icon(dialog->window, |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
896 | (type == GAIM_XFER_RECEIVE |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
897 | ? GAIM_STOCK_DOWNLOAD |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
898 | : GAIM_STOCK_UPLOAD), |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
899 | GTK_ICON_SIZE_MENU, NULL); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
900 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
901 | gtk_list_store_append(dialog->model, &data->iter); |
| 7738 | 902 | lfilename = g_path_get_basename(gaim_xfer_get_local_filename(xfer)); |
|
10919
22fba24cd16e
[gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10911
diff
changeset
|
903 | utf8 = g_filename_to_utf8(lfilename, -1, NULL, NULL, NULL); |
|
22fba24cd16e
[gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10911
diff
changeset
|
904 | g_free(lfilename); |
|
22fba24cd16e
[gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10911
diff
changeset
|
905 | lfilename = utf8; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
906 | gtk_list_store_set(dialog->model, &data->iter, |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
907 | COLUMN_STATUS, pixbuf, |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
908 | COLUMN_PROGRESS, 0.0, |
| 7738 | 909 | COLUMN_FILENAME, (type == GAIM_XFER_RECEIVE) |
| 910 | ? gaim_xfer_get_filename(xfer) | |
| 911 | : lfilename, | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
912 | COLUMN_SIZE, size_str, |
| 9785 | 913 | COLUMN_REMAINING, _("Waiting for transfer to begin"), |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
914 | COLUMN_DATA, xfer, |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
915 | -1); |
| 7738 | 916 | g_free(lfilename); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
917 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
918 | gtk_tree_view_columns_autosize(GTK_TREE_VIEW(dialog->tree)); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
919 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
920 | g_object_unref(pixbuf); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
921 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
922 | g_free(size_str); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
923 | g_free(remaining_str); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
924 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
925 | dialog->num_transfers++; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
926 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
927 | ensure_row_selected(dialog); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
928 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
929 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
930 | void |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
931 | gaim_gtkxfer_dialog_remove_xfer(GaimGtkXferDialog *dialog, |
|
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
932 | GaimXfer *xfer) |
| 4514 | 933 | { |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
934 | GaimGtkXferUiData *data; |
| 4514 | 935 | |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
936 | g_return_if_fail(dialog != NULL); |
|
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
937 | g_return_if_fail(xfer != NULL); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
938 | |
|
4573
a5f392e4a71e
[gaim-migrate @ 4854]
Christian Hammond <chipx86@chipx86.com>
parents:
4570
diff
changeset
|
939 | data = GAIM_GTKXFER(xfer); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
940 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
941 | if (data == NULL) |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
942 | return; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
943 | |
| 7805 | 944 | if (!data->in_list) |
| 945 | return; | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
946 | |
| 7805 | 947 | data->in_list = FALSE; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
948 | |
| 7805 | 949 | gtk_list_store_remove(GTK_LIST_STORE(dialog->model), &data->iter); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
950 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
951 | dialog->num_transfers--; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
952 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
953 | if (dialog->num_transfers == 0 && !dialog->keep_open) |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
954 | gaim_gtkxfer_dialog_hide(dialog); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
955 | else |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
956 | ensure_row_selected(dialog); |
| 7805 | 957 | |
| 958 | gaim_xfer_unref(xfer); | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
959 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
960 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
961 | void |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
962 | gaim_gtkxfer_dialog_cancel_xfer(GaimGtkXferDialog *dialog, |
|
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
963 | GaimXfer *xfer) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
964 | { |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
965 | GaimGtkXferUiData *data; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
966 | GdkPixbuf *pixbuf; |
| 7738 | 967 | gchar *status; |
| 968 | ||
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
969 | g_return_if_fail(dialog != NULL); |
|
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
970 | g_return_if_fail(xfer != NULL); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
971 | |
|
4573
a5f392e4a71e
[gaim-migrate @ 4854]
Christian Hammond <chipx86@chipx86.com>
parents:
4570
diff
changeset
|
972 | data = GAIM_GTKXFER(xfer); |
| 4514 | 973 | |
| 974 | if (data == NULL) | |
| 975 | return; | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
976 | |
| 8282 | 977 | if (!data->in_list) |
| 978 | return; | |
| 7738 | 979 | |
| 7805 | 980 | if ((gaim_xfer_get_status(xfer) == GAIM_XFER_STATUS_CANCEL_LOCAL) && (dialog->auto_clear)) { |
| 981 | gaim_gtkxfer_dialog_remove_xfer(dialog, xfer); | |
| 7738 | 982 | return; |
| 983 | } | |
| 984 | ||
|
4573
a5f392e4a71e
[gaim-migrate @ 4854]
Christian Hammond <chipx86@chipx86.com>
parents:
4570
diff
changeset
|
985 | data = GAIM_GTKXFER(xfer); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
986 | |
| 9017 | 987 | update_detailed_info(dialog, xfer); |
| 988 | ||
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
989 | pixbuf = gtk_widget_render_icon(dialog->window, |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
990 | GAIM_STOCK_FILE_CANCELED, |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
991 | GTK_ICON_SIZE_MENU, NULL); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
992 | |
|
10654
b2dd3be1b087
[gaim-migrate @ 12182]
Richard Laager <rlaager@pidgin.im>
parents:
10591
diff
changeset
|
993 | if (gaim_xfer_is_canceled(xfer)) |
| 7738 | 994 | status = _("Canceled"); |
| 995 | else | |
| 996 | status = _("Failed"); | |
| 997 | ||
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
998 | gtk_list_store_set(dialog->model, &data->iter, |
| 7738 | 999 | COLUMN_STATUS, pixbuf, |
| 1000 | COLUMN_REMAINING, status, | |
| 1001 | -1); | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1002 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1003 | g_object_unref(pixbuf); |
| 7738 | 1004 | |
| 1005 | update_buttons(dialog, xfer); | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1006 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1007 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1008 | void |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
1009 | gaim_gtkxfer_dialog_update_xfer(GaimGtkXferDialog *dialog, |
|
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
1010 | GaimXfer *xfer) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1011 | { |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
1012 | GaimGtkXferUiData *data; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1013 | char *size_str, *remaining_str; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1014 | GtkTreeSelection *selection; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1015 | |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
1016 | g_return_if_fail(dialog != NULL); |
|
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
1017 | g_return_if_fail(xfer != NULL); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1018 | |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
1019 | if ((data = GAIM_GTKXFER(xfer)) == NULL) |
|
4656
b676f986e7e3
[gaim-migrate @ 4967]
Mark Doliner <markdoliner@pidgin.im>
parents:
4646
diff
changeset
|
1020 | return; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1021 | |
| 7805 | 1022 | if (data->in_list == FALSE) |
| 1023 | return; | |
| 1024 | ||
|
7107
903864ff76c3
[gaim-migrate @ 7672]
Christian Hammond <chipx86@chipx86.com>
parents:
7035
diff
changeset
|
1025 | size_str = gaim_str_size_to_units(gaim_xfer_get_size(xfer)); |
|
903864ff76c3
[gaim-migrate @ 7672]
Christian Hammond <chipx86@chipx86.com>
parents:
7035
diff
changeset
|
1026 | remaining_str = gaim_str_size_to_units(gaim_xfer_get_bytes_remaining(xfer)); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1027 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1028 | gtk_list_store_set(xfer_dialog->model, &data->iter, |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1029 | COLUMN_PROGRESS, gaim_xfer_get_progress(xfer), |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1030 | COLUMN_SIZE, size_str, |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1031 | COLUMN_REMAINING, remaining_str, |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1032 | -1); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1033 | |
|
4607
c1a24e3c94f3
[gaim-migrate @ 4895]
Mark Doliner <markdoliner@pidgin.im>
parents:
4604
diff
changeset
|
1034 | if (gaim_xfer_is_completed(xfer)) { |
|
c1a24e3c94f3
[gaim-migrate @ 4895]
Mark Doliner <markdoliner@pidgin.im>
parents:
4604
diff
changeset
|
1035 | GdkPixbuf *pixbuf; |
|
c1a24e3c94f3
[gaim-migrate @ 4895]
Mark Doliner <markdoliner@pidgin.im>
parents:
4604
diff
changeset
|
1036 | |
|
c1a24e3c94f3
[gaim-migrate @ 4895]
Mark Doliner <markdoliner@pidgin.im>
parents:
4604
diff
changeset
|
1037 | pixbuf = gtk_widget_render_icon(dialog->window, |
|
c1a24e3c94f3
[gaim-migrate @ 4895]
Mark Doliner <markdoliner@pidgin.im>
parents:
4604
diff
changeset
|
1038 | GAIM_STOCK_FILE_DONE, |
|
c1a24e3c94f3
[gaim-migrate @ 4895]
Mark Doliner <markdoliner@pidgin.im>
parents:
4604
diff
changeset
|
1039 | GTK_ICON_SIZE_MENU, NULL); |
|
c1a24e3c94f3
[gaim-migrate @ 4895]
Mark Doliner <markdoliner@pidgin.im>
parents:
4604
diff
changeset
|
1040 | |
|
c1a24e3c94f3
[gaim-migrate @ 4895]
Mark Doliner <markdoliner@pidgin.im>
parents:
4604
diff
changeset
|
1041 | gtk_list_store_set(GTK_LIST_STORE(xfer_dialog->model), &data->iter, |
|
c1a24e3c94f3
[gaim-migrate @ 4895]
Mark Doliner <markdoliner@pidgin.im>
parents:
4604
diff
changeset
|
1042 | COLUMN_STATUS, pixbuf, |
| 8351 | 1043 | COLUMN_REMAINING, _("Finished"), |
|
4607
c1a24e3c94f3
[gaim-migrate @ 4895]
Mark Doliner <markdoliner@pidgin.im>
parents:
4604
diff
changeset
|
1044 | -1); |
|
c1a24e3c94f3
[gaim-migrate @ 4895]
Mark Doliner <markdoliner@pidgin.im>
parents:
4604
diff
changeset
|
1045 | |
|
c1a24e3c94f3
[gaim-migrate @ 4895]
Mark Doliner <markdoliner@pidgin.im>
parents:
4604
diff
changeset
|
1046 | g_object_unref(pixbuf); |
| 9785 | 1047 | } |
|
4607
c1a24e3c94f3
[gaim-migrate @ 4895]
Mark Doliner <markdoliner@pidgin.im>
parents:
4604
diff
changeset
|
1048 | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1049 | selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(xfer_dialog->tree)); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1050 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1051 | if (xfer == dialog->selected_xfer) |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1052 | update_detailed_info(xfer_dialog, xfer); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1053 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1054 | if (gaim_xfer_is_completed(xfer) && dialog->auto_clear) |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1055 | gaim_gtkxfer_dialog_remove_xfer(dialog, xfer); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1056 | else |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1057 | update_buttons(dialog, xfer); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1058 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1059 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1060 | /************************************************************************** |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1061 | * File Transfer UI Ops |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1062 | **************************************************************************/ |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1063 | static void |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
1064 | gaim_gtkxfer_new_xfer(GaimXfer *xfer) |
|
5169
091d71968b59
[gaim-migrate @ 5533]
Mark Doliner <markdoliner@pidgin.im>
parents:
5131
diff
changeset
|
1065 | { |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
1066 | GaimGtkXferUiData *data; |
|
5169
091d71968b59
[gaim-migrate @ 5533]
Mark Doliner <markdoliner@pidgin.im>
parents:
5131
diff
changeset
|
1067 | |
|
091d71968b59
[gaim-migrate @ 5533]
Mark Doliner <markdoliner@pidgin.im>
parents:
5131
diff
changeset
|
1068 | /* This is where we're setting xfer->ui_data for the first time. */ |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
1069 | data = g_new0(GaimGtkXferUiData, 1); |
|
5169
091d71968b59
[gaim-migrate @ 5533]
Mark Doliner <markdoliner@pidgin.im>
parents:
5131
diff
changeset
|
1070 | xfer->ui_data = data; |
|
091d71968b59
[gaim-migrate @ 5533]
Mark Doliner <markdoliner@pidgin.im>
parents:
5131
diff
changeset
|
1071 | } |
|
091d71968b59
[gaim-migrate @ 5533]
Mark Doliner <markdoliner@pidgin.im>
parents:
5131
diff
changeset
|
1072 | |
|
091d71968b59
[gaim-migrate @ 5533]
Mark Doliner <markdoliner@pidgin.im>
parents:
5131
diff
changeset
|
1073 | static void |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
1074 | gaim_gtkxfer_destroy(GaimXfer *xfer) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1075 | { |
| 7805 | 1076 | GaimGtkXferUiData *data; |
| 1077 | ||
| 1078 | data = GAIM_GTKXFER(xfer); | |
| 1079 | if (data) { | |
| 1080 | if (data->name) | |
| 1081 | g_free(data->name); | |
| 1082 | g_free(data); | |
| 1083 | xfer->ui_data = NULL; | |
| 1084 | } | |
| 4514 | 1085 | } |
| 1086 | ||
| 1087 | static void | |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
1088 | gaim_gtkxfer_add_xfer(GaimXfer *xfer) |
| 4514 | 1089 | { |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1090 | if (xfer_dialog == NULL) |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1091 | xfer_dialog = gaim_gtkxfer_dialog_new(); |
| 4514 | 1092 | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1093 | gaim_gtkxfer_dialog_add_xfer(xfer_dialog, xfer); |
| 4514 | 1094 | } |
| 1095 | ||
| 1096 | static void | |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
1097 | gaim_gtkxfer_update_progress(GaimXfer *xfer, double percent) |
| 4514 | 1098 | { |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1099 | gaim_gtkxfer_dialog_update_xfer(xfer_dialog, xfer); |
| 4514 | 1100 | } |
| 1101 | ||
| 1102 | static void | |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
1103 | gaim_gtkxfer_cancel_local(GaimXfer *xfer) |
| 4514 | 1104 | { |
| 7805 | 1105 | if (xfer_dialog) |
| 1106 | gaim_gtkxfer_dialog_cancel_xfer(xfer_dialog, xfer); | |
|
4675
8e0a7b537ca2
[gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents:
4661
diff
changeset
|
1107 | } |
| 4514 | 1108 | |
|
4675
8e0a7b537ca2
[gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents:
4661
diff
changeset
|
1109 | static void |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
1110 | gaim_gtkxfer_cancel_remote(GaimXfer *xfer) |
|
4675
8e0a7b537ca2
[gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents:
4661
diff
changeset
|
1111 | { |
| 7805 | 1112 | if (xfer_dialog) |
| 1113 | gaim_gtkxfer_dialog_cancel_xfer(xfer_dialog, xfer); | |
| 4514 | 1114 | } |
| 1115 | ||
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
1116 | static GaimXferUiOps ops = |
| 4514 | 1117 | { |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
1118 | gaim_gtkxfer_new_xfer, |
| 4514 | 1119 | gaim_gtkxfer_destroy, |
| 1120 | gaim_gtkxfer_add_xfer, | |
| 1121 | gaim_gtkxfer_update_progress, | |
|
4675
8e0a7b537ca2
[gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents:
4661
diff
changeset
|
1122 | gaim_gtkxfer_cancel_local, |
|
8e0a7b537ca2
[gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents:
4661
diff
changeset
|
1123 | gaim_gtkxfer_cancel_remote |
| 4514 | 1124 | }; |
| 1125 | ||
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1126 | /************************************************************************** |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1127 | * GTK+ File Transfer API |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1128 | **************************************************************************/ |
| 4514 | 1129 | void |
|
6267
661f20cb749e
[gaim-migrate @ 6764]
Christian Hammond <chipx86@chipx86.com>
parents:
6240
diff
changeset
|
1130 | gaim_gtk_xfers_init(void) |
|
5974
00c68435d9f3
[gaim-migrate @ 6421]
Mark Doliner <markdoliner@pidgin.im>
parents:
5966
diff
changeset
|
1131 | { |
|
00c68435d9f3
[gaim-migrate @ 6421]
Mark Doliner <markdoliner@pidgin.im>
parents:
5966
diff
changeset
|
1132 | gaim_prefs_add_none("/gaim/gtk/filetransfer"); |
|
00c68435d9f3
[gaim-migrate @ 6421]
Mark Doliner <markdoliner@pidgin.im>
parents:
5966
diff
changeset
|
1133 | gaim_prefs_add_bool("/gaim/gtk/filetransfer/clear_finished", TRUE); |
|
00c68435d9f3
[gaim-migrate @ 6421]
Mark Doliner <markdoliner@pidgin.im>
parents:
5966
diff
changeset
|
1134 | gaim_prefs_add_bool("/gaim/gtk/filetransfer/keep_open", FALSE); |
|
00c68435d9f3
[gaim-migrate @ 6421]
Mark Doliner <markdoliner@pidgin.im>
parents:
5966
diff
changeset
|
1135 | } |
|
00c68435d9f3
[gaim-migrate @ 6421]
Mark Doliner <markdoliner@pidgin.im>
parents:
5966
diff
changeset
|
1136 | |
|
00c68435d9f3
[gaim-migrate @ 6421]
Mark Doliner <markdoliner@pidgin.im>
parents:
5966
diff
changeset
|
1137 | void |
| 11010 | 1138 | gaim_gtk_xfers_uninit(void) |
| 1139 | { | |
| 11073 | 1140 | if (xfer_dialog != NULL) |
| 1141 | gaim_gtkxfer_dialog_destroy(xfer_dialog); | |
| 11010 | 1142 | } |
| 1143 | ||
| 1144 | void | |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
1145 | gaim_set_gtkxfer_dialog(GaimGtkXferDialog *dialog) |
| 4514 | 1146 | { |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1147 | xfer_dialog = dialog; |
| 4514 | 1148 | } |
| 1149 | ||
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
1150 | GaimGtkXferDialog * |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1151 | gaim_get_gtkxfer_dialog(void) |
| 4514 | 1152 | { |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1153 | return xfer_dialog; |
| 4514 | 1154 | } |
| 1155 | ||
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
1156 | GaimXferUiOps * |
|
7035
76bca80cd91d
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
1157 | gaim_gtk_xfers_get_ui_ops(void) |
| 4514 | 1158 | { |
| 1159 | return &ops; | |
| 1160 | } |