Mon, 09 Jun 2008 19:31:43 +0000
Do not disable default smileys with dupliate shortcuts if custom smileys
are not supported by the prpl. Also, show the text of the disabled smiley
in the tooltip.
And use _prepend and _reverse, instead of _append for GLists, since some
people apparently have hundreds of custom smileys.
Closes #6057.
committer: Sadrul Habib Chowdhury <sadrul@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 |
|
16254
eeb2bba4dc94
Rename the Doxygen group from gtkui to pidgin.
Richard Laager <rlaager@pidgin.im>
parents:
16123
diff
changeset
|
3 | * @ingroup pidgin |
|
20147
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19859
diff
changeset
|
4 | */ |
|
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19859
diff
changeset
|
5 | |
|
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19859
diff
changeset
|
6 | /* pidgin |
| 4514 | 7 | * |
|
15931
716b5fac1895
Re-sed the copyright notices so they don't all talk about Purple.
Richard Laager <rlaager@pidgin.im>
parents:
15884
diff
changeset
|
8 | * Pidgin is the legal property of its developers, whose names are too numerous |
| 8046 | 9 | * to list here. Please refer to the COPYRIGHT file distributed with this |
| 10 | * source distribution. | |
|
7035
76bca80cd91d
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
11 | * |
| 4514 | 12 | * This program is free software; you can redistribute it and/or modify |
| 13 | * it under the terms of the GNU General Public License as published by | |
| 14 | * the Free Software Foundation; either version 2 of the License, or | |
| 15 | * (at your option) any later version. | |
| 16 | * | |
| 17 | * This program is distributed in the hope that it will be useful, | |
| 18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 20 | * GNU General Public License for more details. | |
| 21 | * | |
| 22 | * You should have received a copy of the GNU General Public License | |
| 23 | * along with this program; if not, write to the Free Software | |
|
19859
71d37b57eff2
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
18203
diff
changeset
|
24 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
| 4514 | 25 | */ |
| 9791 | 26 | #include "internal.h" |
| 15577 | 27 | #include "pidgin.h" |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5826
diff
changeset
|
28 | |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5826
diff
changeset
|
29 | #include "debug.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5826
diff
changeset
|
30 | #include "notify.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5826
diff
changeset
|
31 | #include "ft.h" |
| 4514 | 32 | #include "prpl.h" |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5826
diff
changeset
|
33 | #include "util.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5826
diff
changeset
|
34 | |
| 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" |
|
11735
a1d2afa9b4e9
[gaim-migrate @ 14026]
Mark Doliner <markdoliner@pidgin.im>
parents:
11639
diff
changeset
|
38 | #include "gtkexpander.h" |
|
15883
969b74a3e27a
According to etags, pidgin/ should be completely clean of references to 'gaim' as a client
Sean Egan <seanegan@pidgin.im>
parents:
15882
diff
changeset
|
39 | #include "pidginstock.h" |
|
5966
91a208b3e979
[gaim-migrate @ 6413]
Mark Doliner <markdoliner@pidgin.im>
parents:
5959
diff
changeset
|
40 | #include "gtkutils.h" |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
41 | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
42 | #define PIDGINXFER(xfer) \ |
|
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
43 | (PidginXferUiData *)(xfer)->ui_data |
| 4514 | 44 | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
45 | struct _PidginXferDialog |
| 4514 | 46 | { |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
47 | gboolean keep_open; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
48 | gboolean auto_clear; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
49 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
50 | gint num_transfers; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
51 | |
| 15884 | 52 | PurpleXfer *selected_xfer; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
53 | |
| 4514 | 54 | GtkWidget *window; |
| 55 | GtkWidget *tree; | |
| 56 | GtkListStore *model; | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
57 | |
|
11735
a1d2afa9b4e9
[gaim-migrate @ 14026]
Mark Doliner <markdoliner@pidgin.im>
parents:
11639
diff
changeset
|
58 | GtkWidget *expander; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
59 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
60 | GtkWidget *table; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
61 | |
| 9785 | 62 | GtkWidget *local_user_desc_label; |
| 63 | GtkWidget *local_user_label; | |
| 64 | GtkWidget *remote_user_desc_label; | |
| 65 | GtkWidget *remote_user_label; | |
| 66 | GtkWidget *protocol_label; | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
67 | GtkWidget *filename_label; |
|
10911
e2cc7dddee17
[gaim-migrate @ 12665]
Daniel Atallah <datallah@pidgin.im>
parents:
10654
diff
changeset
|
68 | GtkWidget *localfile_label; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
69 | GtkWidget *status_label; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
70 | GtkWidget *speed_label; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
71 | GtkWidget *time_elapsed_label; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
72 | GtkWidget *time_remaining_label; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
73 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
74 | GtkWidget *progress; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
75 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
76 | /* Buttons */ |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
77 | GtkWidget *open_button; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
78 | GtkWidget *pause_button; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
79 | GtkWidget *resume_button; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
80 | GtkWidget *remove_button; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
81 | GtkWidget *stop_button; |
|
5608
b78f573998e5
[gaim-migrate @ 6012]
Robert McQueen <robot101@debian.org>
parents:
5498
diff
changeset
|
82 | GtkWidget *close_button; |
| 4514 | 83 | }; |
| 84 | ||
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
85 | typedef struct |
| 4514 | 86 | { |
| 87 | GtkTreeIter iter; | |
| 11925 | 88 | time_t last_updated_time; |
| 7805 | 89 | gboolean in_list; |
| 4514 | 90 | |
| 91 | char *name; | |
| 92 | ||
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
93 | } PidginXferUiData; |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
94 | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
95 | static PidginXferDialog *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 |
| 15884 | 113 | get_xfer_info_strings(PurpleXfer *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 | { |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
116 | PidginXferUiData *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 | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
121 | data = PIDGINXFER(xfer); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
122 | |
|
13599
b6369e541654
[gaim-migrate @ 15984]
Mark Doliner <markdoliner@pidgin.im>
parents:
13107
diff
changeset
|
123 | if (xfer->end_time != 0) |
|
b6369e541654
[gaim-migrate @ 15984]
Mark Doliner <markdoliner@pidgin.im>
parents:
13107
diff
changeset
|
124 | now = xfer->end_time; |
| 9017 | 125 | else |
| 126 | now = time(NULL); | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
127 | |
| 15884 | 128 | kb_sent = purple_xfer_get_bytes_sent(xfer) / 1024.0; |
| 129 | kb_rem = purple_xfer_get_bytes_remaining(xfer) / 1024.0; | |
|
13599
b6369e541654
[gaim-migrate @ 15984]
Mark Doliner <markdoliner@pidgin.im>
parents:
13107
diff
changeset
|
130 | elapsed = (xfer->start_time > 0 ? now - xfer->start_time : 0); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
131 | kbps = (elapsed > 0 ? (kb_sent / elapsed) : 0); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
132 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
133 | if (kbsec != NULL) { |
|
18203
4f191741c0f4
Use the IEC binary units to match our math.
Richard Laager <rlaager@pidgin.im>
parents:
18178
diff
changeset
|
134 | *kbsec = g_strdup_printf(_("%.2f KiB/s"), kbps); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
135 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
136 | |
|
13599
b6369e541654
[gaim-migrate @ 15984]
Mark Doliner <markdoliner@pidgin.im>
parents:
13107
diff
changeset
|
137 | if (time_elapsed != NULL) |
|
b6369e541654
[gaim-migrate @ 15984]
Mark Doliner <markdoliner@pidgin.im>
parents:
13107
diff
changeset
|
138 | { |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
139 | int h, m, s; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
140 | int secs_elapsed; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
141 | |
|
13599
b6369e541654
[gaim-migrate @ 15984]
Mark Doliner <markdoliner@pidgin.im>
parents:
13107
diff
changeset
|
142 | if (xfer->start_time > 0) |
|
b6369e541654
[gaim-migrate @ 15984]
Mark Doliner <markdoliner@pidgin.im>
parents:
13107
diff
changeset
|
143 | { |
|
b6369e541654
[gaim-migrate @ 15984]
Mark Doliner <markdoliner@pidgin.im>
parents:
13107
diff
changeset
|
144 | secs_elapsed = now - xfer->start_time; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
145 | |
|
13599
b6369e541654
[gaim-migrate @ 15984]
Mark Doliner <markdoliner@pidgin.im>
parents:
13107
diff
changeset
|
146 | h = secs_elapsed / 3600; |
|
b6369e541654
[gaim-migrate @ 15984]
Mark Doliner <markdoliner@pidgin.im>
parents:
13107
diff
changeset
|
147 | m = (secs_elapsed % 3600) / 60; |
|
b6369e541654
[gaim-migrate @ 15984]
Mark Doliner <markdoliner@pidgin.im>
parents:
13107
diff
changeset
|
148 | s = secs_elapsed % 60; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
149 | |
|
13599
b6369e541654
[gaim-migrate @ 15984]
Mark Doliner <markdoliner@pidgin.im>
parents:
13107
diff
changeset
|
150 | *time_elapsed = g_strdup_printf("%d:%02d:%02d", h, m, s); |
|
b6369e541654
[gaim-migrate @ 15984]
Mark Doliner <markdoliner@pidgin.im>
parents:
13107
diff
changeset
|
151 | } |
|
b6369e541654
[gaim-migrate @ 15984]
Mark Doliner <markdoliner@pidgin.im>
parents:
13107
diff
changeset
|
152 | else |
|
b6369e541654
[gaim-migrate @ 15984]
Mark Doliner <markdoliner@pidgin.im>
parents:
13107
diff
changeset
|
153 | { |
|
b6369e541654
[gaim-migrate @ 15984]
Mark Doliner <markdoliner@pidgin.im>
parents:
13107
diff
changeset
|
154 | *time_elapsed = g_strdup(_("Not started")); |
|
b6369e541654
[gaim-migrate @ 15984]
Mark Doliner <markdoliner@pidgin.im>
parents:
13107
diff
changeset
|
155 | } |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
156 | } |
|
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 | if (time_remaining != NULL) { |
|
22063
857aa10338af
Prevent a divide by zero. Fixes #4490.
Daniel Atallah <datallah@pidgin.im>
parents:
22005
diff
changeset
|
159 | if (purple_xfer_is_completed(xfer)) { |
| 8351 | 160 | *time_remaining = g_strdup(_("Finished")); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
161 | } |
| 15884 | 162 | else if (purple_xfer_is_canceled(xfer)) { |
| 9017 | 163 | *time_remaining = g_strdup(_("Canceled")); |
| 164 | } | |
|
22063
857aa10338af
Prevent a divide by zero. Fixes #4490.
Daniel Atallah <datallah@pidgin.im>
parents:
22005
diff
changeset
|
165 | else if (purple_xfer_get_size(xfer) == 0 || (kb_sent > 0 && kbps == 0)) { |
|
857aa10338af
Prevent a divide by zero. Fixes #4490.
Daniel Atallah <datallah@pidgin.im>
parents:
22005
diff
changeset
|
166 | *time_remaining = g_strdup(_("Unknown")); |
|
857aa10338af
Prevent a divide by zero. Fixes #4490.
Daniel Atallah <datallah@pidgin.im>
parents:
22005
diff
changeset
|
167 | } |
| 9017 | 168 | else if (kb_sent <= 0) { |
| 169 | *time_remaining = g_strdup(_("Waiting for transfer to begin")); | |
| 170 | } | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
171 | else { |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
172 | int h, m, s; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
173 | int secs_remaining; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
174 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
175 | secs_remaining = (int)(kb_rem / kbps); |
|
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 | h = secs_remaining / 3600; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
178 | m = (secs_remaining % 3600) / 60; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
179 | s = secs_remaining % 60; |
|
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 | *time_remaining = g_strdup_printf("%d:%02d:%02d", h, m, s); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
182 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
183 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
184 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
185 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
186 | static void |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
187 | update_title_progress(PidginXferDialog *dialog) |
|
14535
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
188 | { |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
189 | gboolean valid; |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
190 | GtkTreeIter iter; |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
191 | int num_active_xfers = 0; |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
192 | guint64 total_bytes_xferred = 0; |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
193 | guint64 total_file_size = 0; |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
194 | |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
195 | if (dialog->window == NULL) |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
196 | return; |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
197 | |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
198 | valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(dialog->model), &iter); |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
199 | |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
200 | /* Find all active transfers */ |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
201 | while (valid) { |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
202 | GValue val; |
| 15884 | 203 | PurpleXfer *xfer = NULL; |
|
14535
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
204 | |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
205 | val.g_type = 0; |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
206 | gtk_tree_model_get_value(GTK_TREE_MODEL(dialog->model), |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
207 | &iter, COLUMN_DATA, &val); |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
208 | |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
209 | xfer = g_value_get_pointer(&val); |
| 15884 | 210 | if (purple_xfer_get_status(xfer) == PURPLE_XFER_STATUS_STARTED) { |
|
14535
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
211 | num_active_xfers++; |
| 15884 | 212 | total_bytes_xferred += purple_xfer_get_bytes_sent(xfer); |
| 213 | total_file_size += purple_xfer_get_size(xfer); | |
|
14535
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
214 | } |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
215 | |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
216 | valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(dialog->model), &iter); |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
217 | } |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
218 | |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
219 | /* Update the title */ |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
220 | if (num_active_xfers > 0) |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
221 | { |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
222 | gchar *title; |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
223 | int total_pct = 0; |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
224 | |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
225 | if (total_file_size > 0) { |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
226 | total_pct = 100 * total_bytes_xferred / total_file_size; |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
227 | } |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
228 | |
|
23475
fbc70a80d0e7
"This patch pluralizes a few strings that should be pluralized for
Laurynas Biveinis <laurynas.biveinis@gmail.com>
parents:
22590
diff
changeset
|
229 | title = g_strdup_printf(ngettext("File Transfers - %d%% of %d file", |
|
fbc70a80d0e7
"This patch pluralizes a few strings that should be pluralized for
Laurynas Biveinis <laurynas.biveinis@gmail.com>
parents:
22590
diff
changeset
|
230 | "File Transfers - %d%% of %d files", |
|
fbc70a80d0e7
"This patch pluralizes a few strings that should be pluralized for
Laurynas Biveinis <laurynas.biveinis@gmail.com>
parents:
22590
diff
changeset
|
231 | num_active_xfers), |
|
fbc70a80d0e7
"This patch pluralizes a few strings that should be pluralized for
Laurynas Biveinis <laurynas.biveinis@gmail.com>
parents:
22590
diff
changeset
|
232 | total_pct, num_active_xfers); |
|
14535
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
233 | gtk_window_set_title(GTK_WINDOW(dialog->window), title); |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
234 | g_free(title); |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
235 | } else { |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
236 | gtk_window_set_title(GTK_WINDOW(dialog->window), _("File Transfers")); |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
237 | } |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
238 | } |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
239 | |
|
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
240 | static void |
| 15884 | 241 | update_detailed_info(PidginXferDialog *dialog, PurpleXfer *xfer) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
242 | { |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
243 | PidginXferUiData *data; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
244 | char *kbsec, *time_elapsed, *time_remaining; |
|
10919
22fba24cd16e
[gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10911
diff
changeset
|
245 | char *status, *utf8; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
246 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
247 | if (dialog == NULL || xfer == NULL) |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
248 | return; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
249 | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
250 | data = PIDGINXFER(xfer); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
251 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
252 | get_xfer_info_strings(xfer, &kbsec, &time_elapsed, &time_remaining); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
253 | |
|
17685
4d7e292274ec
Use G_GSIZE_FORMAT when formatting strings containing size_t values in
Mark Doliner <markdoliner@pidgin.im>
parents:
16752
diff
changeset
|
254 | status = g_strdup_printf("%d%% (%" G_GSIZE_FORMAT " of %" G_GSIZE_FORMAT " bytes)", |
|
4d7e292274ec
Use G_GSIZE_FORMAT when formatting strings containing size_t values in
Mark Doliner <markdoliner@pidgin.im>
parents:
16752
diff
changeset
|
255 | (int)(purple_xfer_get_progress(xfer)*100), |
|
17696
61059ed5d4a9
These casts were causing warnings for Stu but not me.
Mark Doliner <markdoliner@pidgin.im>
parents:
17685
diff
changeset
|
256 | purple_xfer_get_bytes_sent(xfer), |
|
61059ed5d4a9
These casts were causing warnings for Stu but not me.
Mark Doliner <markdoliner@pidgin.im>
parents:
17685
diff
changeset
|
257 | purple_xfer_get_size(xfer)); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
258 | |
| 15884 | 259 | if (purple_xfer_is_completed(xfer)) { |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
260 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
261 | GdkPixbuf *pixbuf = NULL; |
|
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 | pixbuf = gtk_widget_render_icon(xfer_dialog->window, |
| 15570 | 264 | PIDGIN_STOCK_FILE_DONE, |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
265 | GTK_ICON_SIZE_MENU, NULL); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
266 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
267 | 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
|
268 | COLUMN_STATUS, pixbuf, |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
269 | -1); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
270 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
271 | g_object_unref(pixbuf); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
272 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
273 | |
| 15884 | 274 | if (purple_xfer_get_type(xfer) == PURPLE_XFER_RECEIVE) { |
| 9785 | 275 | gtk_label_set_markup(GTK_LABEL(dialog->local_user_desc_label), |
| 276 | _("<b>Receiving As:</b>")); | |
| 277 | 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
|
278 | _("<b>Receiving From:</b>")); |
| 9785 | 279 | } |
| 280 | else { | |
| 281 | 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
|
282 | _("<b>Sending To:</b>")); |
| 9785 | 283 | gtk_label_set_markup(GTK_LABEL(dialog->local_user_desc_label), |
| 284 | _("<b>Sending As:</b>")); | |
| 285 | } | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
286 | |
|
13599
b6369e541654
[gaim-migrate @ 15984]
Mark Doliner <markdoliner@pidgin.im>
parents:
13107
diff
changeset
|
287 | gtk_label_set_text(GTK_LABEL(dialog->local_user_label), |
| 15884 | 288 | purple_account_get_username(xfer->account)); |
| 9785 | 289 | gtk_label_set_text(GTK_LABEL(dialog->remote_user_label), xfer->who); |
|
13599
b6369e541654
[gaim-migrate @ 15984]
Mark Doliner <markdoliner@pidgin.im>
parents:
13107
diff
changeset
|
290 | gtk_label_set_text(GTK_LABEL(dialog->protocol_label), |
| 15884 | 291 | purple_account_get_protocol_name(xfer->account)); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
292 | |
| 15884 | 293 | if (purple_xfer_get_type(xfer) == PURPLE_XFER_RECEIVE) { |
| 7738 | 294 | gtk_label_set_text(GTK_LABEL(dialog->filename_label), |
| 15884 | 295 | purple_xfer_get_filename(xfer)); |
| 7738 | 296 | } else { |
| 297 | char *tmp; | |
|
10919
22fba24cd16e
[gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10911
diff
changeset
|
298 | |
| 15884 | 299 | tmp = g_path_get_basename(purple_xfer_get_local_filename(xfer)); |
|
10919
22fba24cd16e
[gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10911
diff
changeset
|
300 | utf8 = g_filename_to_utf8(tmp, -1, NULL, NULL, NULL); |
| 7738 | 301 | g_free(tmp); |
|
10919
22fba24cd16e
[gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10911
diff
changeset
|
302 | |
|
22fba24cd16e
[gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10911
diff
changeset
|
303 | gtk_label_set_text(GTK_LABEL(dialog->filename_label), utf8); |
|
22fba24cd16e
[gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10911
diff
changeset
|
304 | g_free(utf8); |
| 7738 | 305 | } |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
306 | |
| 15884 | 307 | utf8 = g_filename_to_utf8((purple_xfer_get_local_filename(xfer)), -1, NULL, NULL, NULL); |
|
10919
22fba24cd16e
[gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10911
diff
changeset
|
308 | gtk_label_set_text(GTK_LABEL(dialog->localfile_label), utf8); |
|
22fba24cd16e
[gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10911
diff
changeset
|
309 | g_free(utf8); |
|
10911
e2cc7dddee17
[gaim-migrate @ 12665]
Daniel Atallah <datallah@pidgin.im>
parents:
10654
diff
changeset
|
310 | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
311 | gtk_label_set_text(GTK_LABEL(dialog->status_label), status); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
312 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
313 | gtk_label_set_text(GTK_LABEL(dialog->speed_label), kbsec); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
314 | 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
|
315 | gtk_label_set_text(GTK_LABEL(dialog->time_remaining_label), |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
316 | time_remaining); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
317 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
318 | gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(dialog->progress), |
| 15884 | 319 | purple_xfer_get_progress(xfer)); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
320 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
321 | g_free(kbsec); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
322 | g_free(time_elapsed); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
323 | g_free(time_remaining); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
324 | g_free(status); |
|
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 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
327 | static void |
| 15884 | 328 | update_buttons(PidginXferDialog *dialog, PurpleXfer *xfer) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
329 | { |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
330 | if (dialog->selected_xfer == NULL) { |
|
11735
a1d2afa9b4e9
[gaim-migrate @ 14026]
Mark Doliner <markdoliner@pidgin.im>
parents:
11639
diff
changeset
|
331 | gtk_widget_set_sensitive(dialog->expander, FALSE); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
332 | gtk_widget_set_sensitive(dialog->open_button, FALSE); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
333 | gtk_widget_set_sensitive(dialog->pause_button, FALSE); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
334 | gtk_widget_set_sensitive(dialog->resume_button, FALSE); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
335 | gtk_widget_set_sensitive(dialog->stop_button, FALSE); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
336 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
337 | gtk_widget_show(dialog->stop_button); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
338 | gtk_widget_hide(dialog->remove_button); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
339 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
340 | return; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
341 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
342 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
343 | if (dialog->selected_xfer != xfer) |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
344 | return; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
345 | |
| 15884 | 346 | if (purple_xfer_is_completed(xfer)) { |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
347 | gtk_widget_hide(dialog->stop_button); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
348 | gtk_widget_show(dialog->remove_button); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
349 | |
| 11010 | 350 | #ifdef _WIN32 |
| 351 | /* If using Win32... */ | |
| 15884 | 352 | if (purple_xfer_get_type(xfer) == PURPLE_XFER_RECEIVE) { |
|
10923
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
353 | gtk_widget_set_sensitive(dialog->open_button, TRUE); |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
354 | } else { |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
355 | gtk_widget_set_sensitive(dialog->open_button, FALSE); |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
356 | } |
| 11010 | 357 | #else |
| 15884 | 358 | if (purple_xfer_get_type(xfer) == PURPLE_XFER_RECEIVE) { |
| 11010 | 359 | gtk_widget_set_sensitive(dialog->open_button, TRUE); |
| 360 | } else { | |
| 361 | gtk_widget_set_sensitive (dialog->open_button, FALSE); | |
| 362 | } | |
| 8366 | 363 | #endif |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
364 | gtk_widget_set_sensitive(dialog->pause_button, FALSE); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
365 | gtk_widget_set_sensitive(dialog->resume_button, FALSE); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
366 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
367 | gtk_widget_set_sensitive(dialog->remove_button, TRUE); |
| 15884 | 368 | } else if (purple_xfer_is_canceled(xfer)) { |
| 7738 | 369 | gtk_widget_hide(dialog->stop_button); |
| 370 | gtk_widget_show(dialog->remove_button); | |
| 371 | ||
| 372 | gtk_widget_set_sensitive(dialog->open_button, FALSE); | |
| 373 | gtk_widget_set_sensitive(dialog->pause_button, FALSE); | |
| 374 | gtk_widget_set_sensitive(dialog->resume_button, FALSE); | |
| 375 | ||
| 376 | gtk_widget_set_sensitive(dialog->remove_button, TRUE); | |
| 377 | } else { | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
378 | gtk_widget_show(dialog->stop_button); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
379 | gtk_widget_hide(dialog->remove_button); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
380 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
381 | gtk_widget_set_sensitive(dialog->open_button, FALSE); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
382 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
383 | /* TODO: If the transfer can pause, blah blah */ |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
384 | gtk_widget_set_sensitive(dialog->pause_button, FALSE); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
385 | gtk_widget_set_sensitive(dialog->resume_button, FALSE); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
386 | gtk_widget_set_sensitive(dialog->stop_button, TRUE); |
|
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 | } |
|
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 | static void |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
391 | ensure_row_selected(PidginXferDialog *dialog) |
|
4553
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 | GtkTreeIter iter; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
394 | GtkTreeSelection *selection; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
395 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
396 | selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->tree)); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
397 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
398 | if (gtk_tree_selection_get_selected(selection, NULL, &iter)) |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
399 | return; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
400 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
401 | 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
|
402 | gtk_tree_selection_select_iter(selection, &iter); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
403 | } |
|
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 | /************************************************************************** |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
406 | * Callbacks |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
407 | **************************************************************************/ |
| 4514 | 408 | static gint |
| 409 | delete_win_cb(GtkWidget *w, GdkEventAny *e, gpointer d) | |
| 410 | { | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
411 | PidginXferDialog *dialog; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
412 | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
413 | dialog = (PidginXferDialog *)d; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
414 | |
|
16263
27e0ef0f38e6
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents:
16254
diff
changeset
|
415 | pidgin_xfer_dialog_hide(dialog); |
| 4514 | 416 | |
| 417 | return TRUE; | |
| 418 | } | |
| 419 | ||
| 420 | static void | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
421 | toggle_keep_open_cb(GtkWidget *w, PidginXferDialog *dialog) |
| 4514 | 422 | { |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
423 | dialog->keep_open = !dialog->keep_open; |
|
16123
8b98683319e7
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15931
diff
changeset
|
424 | purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/filetransfer/keep_open", |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
425 | dialog->keep_open); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
426 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
427 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
428 | static void |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
429 | toggle_clear_finished_cb(GtkWidget *w, PidginXferDialog *dialog) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
430 | { |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
431 | dialog->auto_clear = !dialog->auto_clear; |
|
16123
8b98683319e7
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15931
diff
changeset
|
432 | purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/filetransfer/clear_finished", |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
433 | dialog->auto_clear); |
| 4514 | 434 | } |
| 435 | ||
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
436 | static void |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
437 | selection_changed_cb(GtkTreeSelection *selection, PidginXferDialog *dialog) |
| 4514 | 438 | { |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
439 | GtkTreeIter iter; |
| 15884 | 440 | PurpleXfer *xfer = NULL; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
441 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
442 | if (gtk_tree_selection_get_selected(selection, NULL, &iter)) { |
|
12600
7ecd4441fdc7
[gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents:
12483
diff
changeset
|
443 | GValue val; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
444 | |
|
11735
a1d2afa9b4e9
[gaim-migrate @ 14026]
Mark Doliner <markdoliner@pidgin.im>
parents:
11639
diff
changeset
|
445 | gtk_widget_set_sensitive(dialog->expander, TRUE); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
446 | |
|
12600
7ecd4441fdc7
[gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents:
12483
diff
changeset
|
447 | val.g_type = 0; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
448 | gtk_tree_model_get_value(GTK_TREE_MODEL(dialog->model), |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
449 | &iter, COLUMN_DATA, &val); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
450 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
451 | xfer = g_value_get_pointer(&val); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
452 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
453 | update_detailed_info(dialog, xfer); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
454 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
455 | dialog->selected_xfer = xfer; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
456 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
457 | else { |
|
12906
0ef3f629f00f
[gaim-migrate @ 15259]
Daniel Atallah <datallah@pidgin.im>
parents:
12774
diff
changeset
|
458 | gtk_expander_set_expanded(GTK_EXPANDER(dialog->expander), |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
459 | FALSE); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
460 | |
|
11735
a1d2afa9b4e9
[gaim-migrate @ 14026]
Mark Doliner <markdoliner@pidgin.im>
parents:
11639
diff
changeset
|
461 | gtk_widget_set_sensitive(dialog->expander, FALSE); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
462 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
463 | dialog->selected_xfer = NULL; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
464 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
465 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
466 | update_buttons(dialog, xfer); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
467 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
468 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
469 | static void |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
470 | open_button_cb(GtkButton *button, PidginXferDialog *dialog) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
471 | { |
| 11010 | 472 | #ifdef _WIN32 |
| 473 | /* If using Win32... */ | |
|
10923
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
474 | int code; |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
475 | if (G_WIN32_HAVE_WIDECHAR_API ()) { |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
476 | wchar_t *wc_filename = g_utf8_to_utf16( |
| 15884 | 477 | purple_xfer_get_local_filename( |
|
10923
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
478 | dialog->selected_xfer), |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
479 | -1, NULL, NULL, NULL); |
| 11010 | 480 | |
|
10923
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
481 | code = (int) ShellExecuteW(NULL, NULL, wc_filename, NULL, NULL, |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
482 | SW_SHOW); |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
483 | |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
484 | g_free(wc_filename); |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
485 | } else { |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
486 | char *l_filename = g_locale_from_utf8( |
| 15884 | 487 | purple_xfer_get_local_filename( |
|
10923
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
488 | dialog->selected_xfer), |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
489 | -1, NULL, NULL, NULL); |
| 11010 | 490 | |
|
10923
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
491 | code = (int) ShellExecuteA(NULL, NULL, l_filename, NULL, NULL, |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
492 | SW_SHOW); |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
493 | |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
494 | g_free(l_filename); |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
495 | } |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
496 | |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
497 | if (code == SE_ERR_ASSOCINCOMPLETE || code == SE_ERR_NOASSOC) |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
498 | { |
| 15884 | 499 | purple_notify_error(dialog, NULL, |
|
10923
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
500 | _("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
|
501 | } |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
502 | else if (code < 32) |
|
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
503 | { |
| 15884 | 504 | purple_notify_error(dialog, NULL, |
|
10923
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
505 | _("An error occurred while opening the file."), NULL); |
| 15884 | 506 | purple_debug_warning("ft", "filename: %s; code: %d\n", |
| 507 | purple_xfer_get_local_filename(dialog->selected_xfer), code); | |
|
10923
f50de29e14a3
[gaim-migrate @ 12693]
Daniel Atallah <datallah@pidgin.im>
parents:
10919
diff
changeset
|
508 | } |
| 11010 | 509 | #else |
| 15884 | 510 | const char *filename = purple_xfer_get_local_filename(dialog->selected_xfer); |
|
12483
38fc67810cdb
[gaim-migrate @ 14795]
Richard Laager <rlaager@pidgin.im>
parents:
12421
diff
changeset
|
511 | char *command = NULL; |
|
38fc67810cdb
[gaim-migrate @ 14795]
Richard Laager <rlaager@pidgin.im>
parents:
12421
diff
changeset
|
512 | char *tmp = NULL; |
|
38fc67810cdb
[gaim-migrate @ 14795]
Richard Laager <rlaager@pidgin.im>
parents:
12421
diff
changeset
|
513 | GError *error = NULL; |
|
38fc67810cdb
[gaim-migrate @ 14795]
Richard Laager <rlaager@pidgin.im>
parents:
12421
diff
changeset
|
514 | |
| 15884 | 515 | if (purple_running_gnome()) |
| 11010 | 516 | { |
|
12483
38fc67810cdb
[gaim-migrate @ 14795]
Richard Laager <rlaager@pidgin.im>
parents:
12421
diff
changeset
|
517 | char *escaped = g_shell_quote(filename); |
|
38fc67810cdb
[gaim-migrate @ 14795]
Richard Laager <rlaager@pidgin.im>
parents:
12421
diff
changeset
|
518 | command = g_strdup_printf("gnome-open %s", escaped); |
|
38fc67810cdb
[gaim-migrate @ 14795]
Richard Laager <rlaager@pidgin.im>
parents:
12421
diff
changeset
|
519 | g_free(escaped); |
|
38fc67810cdb
[gaim-migrate @ 14795]
Richard Laager <rlaager@pidgin.im>
parents:
12421
diff
changeset
|
520 | } |
| 15884 | 521 | else if (purple_running_kde()) |
|
12483
38fc67810cdb
[gaim-migrate @ 14795]
Richard Laager <rlaager@pidgin.im>
parents:
12421
diff
changeset
|
522 | { |
|
38fc67810cdb
[gaim-migrate @ 14795]
Richard Laager <rlaager@pidgin.im>
parents:
12421
diff
changeset
|
523 | char *escaped = g_shell_quote(filename); |
| 11010 | 524 | |
| 15884 | 525 | if (purple_str_has_suffix(filename, ".desktop")) |
|
12483
38fc67810cdb
[gaim-migrate @ 14795]
Richard Laager <rlaager@pidgin.im>
parents:
12421
diff
changeset
|
526 | command = g_strdup_printf("kfmclient openURL %s 'text/plain'", escaped); |
|
38fc67810cdb
[gaim-migrate @ 14795]
Richard Laager <rlaager@pidgin.im>
parents:
12421
diff
changeset
|
527 | else |
|
38fc67810cdb
[gaim-migrate @ 14795]
Richard Laager <rlaager@pidgin.im>
parents:
12421
diff
changeset
|
528 | command = g_strdup_printf("kfmclient openURL %s", escaped); |
|
38fc67810cdb
[gaim-migrate @ 14795]
Richard Laager <rlaager@pidgin.im>
parents:
12421
diff
changeset
|
529 | g_free(escaped); |
|
38fc67810cdb
[gaim-migrate @ 14795]
Richard Laager <rlaager@pidgin.im>
parents:
12421
diff
changeset
|
530 | } |
|
38fc67810cdb
[gaim-migrate @ 14795]
Richard Laager <rlaager@pidgin.im>
parents:
12421
diff
changeset
|
531 | else |
|
38fc67810cdb
[gaim-migrate @ 14795]
Richard Laager <rlaager@pidgin.im>
parents:
12421
diff
changeset
|
532 | { |
| 15884 | 533 | purple_notify_uri(NULL, filename); |
|
12483
38fc67810cdb
[gaim-migrate @ 14795]
Richard Laager <rlaager@pidgin.im>
parents:
12421
diff
changeset
|
534 | return; |
|
38fc67810cdb
[gaim-migrate @ 14795]
Richard Laager <rlaager@pidgin.im>
parents:
12421
diff
changeset
|
535 | } |
| 11010 | 536 | |
| 15884 | 537 | if (purple_program_is_valid(command)) |
|
12483
38fc67810cdb
[gaim-migrate @ 14795]
Richard Laager <rlaager@pidgin.im>
parents:
12421
diff
changeset
|
538 | { |
|
38fc67810cdb
[gaim-migrate @ 14795]
Richard Laager <rlaager@pidgin.im>
parents:
12421
diff
changeset
|
539 | gint exit_status; |
|
38fc67810cdb
[gaim-migrate @ 14795]
Richard Laager <rlaager@pidgin.im>
parents:
12421
diff
changeset
|
540 | if (!g_spawn_command_line_sync(command, NULL, NULL, &exit_status, &error)) |
| 11010 | 541 | { |
|
12483
38fc67810cdb
[gaim-migrate @ 14795]
Richard Laager <rlaager@pidgin.im>
parents:
12421
diff
changeset
|
542 | tmp = g_strdup_printf(_("Error launching %s: %s"), |
| 15884 | 543 | purple_xfer_get_local_filename(dialog->selected_xfer), |
|
12483
38fc67810cdb
[gaim-migrate @ 14795]
Richard Laager <rlaager@pidgin.im>
parents:
12421
diff
changeset
|
544 | error->message); |
| 15884 | 545 | purple_notify_error(dialog, NULL, _("Unable to open file."), tmp); |
|
12483
38fc67810cdb
[gaim-migrate @ 14795]
Richard Laager <rlaager@pidgin.im>
parents:
12421
diff
changeset
|
546 | g_free(tmp); |
|
38fc67810cdb
[gaim-migrate @ 14795]
Richard Laager <rlaager@pidgin.im>
parents:
12421
diff
changeset
|
547 | g_error_free(error); |
|
38fc67810cdb
[gaim-migrate @ 14795]
Richard Laager <rlaager@pidgin.im>
parents:
12421
diff
changeset
|
548 | } |
|
38fc67810cdb
[gaim-migrate @ 14795]
Richard Laager <rlaager@pidgin.im>
parents:
12421
diff
changeset
|
549 | if (exit_status != 0) |
|
38fc67810cdb
[gaim-migrate @ 14795]
Richard Laager <rlaager@pidgin.im>
parents:
12421
diff
changeset
|
550 | { |
|
38fc67810cdb
[gaim-migrate @ 14795]
Richard Laager <rlaager@pidgin.im>
parents:
12421
diff
changeset
|
551 | char *primary = g_strdup_printf(_("Error running %s"), command); |
|
38fc67810cdb
[gaim-migrate @ 14795]
Richard Laager <rlaager@pidgin.im>
parents:
12421
diff
changeset
|
552 | char *secondary = g_strdup_printf(_("Process returned error code %d"), |
|
38fc67810cdb
[gaim-migrate @ 14795]
Richard Laager <rlaager@pidgin.im>
parents:
12421
diff
changeset
|
553 | exit_status); |
| 15884 | 554 | purple_notify_error(dialog, NULL, primary, secondary); |
|
12483
38fc67810cdb
[gaim-migrate @ 14795]
Richard Laager <rlaager@pidgin.im>
parents:
12421
diff
changeset
|
555 | g_free(tmp); |
| 11010 | 556 | } |
| 557 | } | |
| 8366 | 558 | #endif |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
559 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
560 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
561 | static void |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
562 | pause_button_cb(GtkButton *button, PidginXferDialog *dialog) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
563 | { |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
564 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
565 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
566 | static void |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
567 | resume_button_cb(GtkButton *button, PidginXferDialog *dialog) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
568 | { |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
569 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
570 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
571 | static void |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
572 | remove_button_cb(GtkButton *button, PidginXferDialog *dialog) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
573 | { |
|
16263
27e0ef0f38e6
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents:
16254
diff
changeset
|
574 | pidgin_xfer_dialog_remove_xfer(dialog, dialog->selected_xfer); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
575 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
576 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
577 | static void |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
578 | stop_button_cb(GtkButton *button, PidginXferDialog *dialog) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
579 | { |
| 15884 | 580 | purple_xfer_cancel_local(dialog->selected_xfer); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
581 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
582 | |
|
5608
b78f573998e5
[gaim-migrate @ 6012]
Robert McQueen <robot101@debian.org>
parents:
5498
diff
changeset
|
583 | static void |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
584 | close_button_cb(GtkButton *button, PidginXferDialog *dialog) |
|
5608
b78f573998e5
[gaim-migrate @ 6012]
Robert McQueen <robot101@debian.org>
parents:
5498
diff
changeset
|
585 | { |
|
16263
27e0ef0f38e6
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents:
16254
diff
changeset
|
586 | pidgin_xfer_dialog_hide(dialog); |
|
5608
b78f573998e5
[gaim-migrate @ 6012]
Robert McQueen <robot101@debian.org>
parents:
5498
diff
changeset
|
587 | } |
|
b78f573998e5
[gaim-migrate @ 6012]
Robert McQueen <robot101@debian.org>
parents:
5498
diff
changeset
|
588 | |
|
14535
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
589 | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
590 | /************************************************************************** |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
591 | * Dialog Building Functions |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
592 | **************************************************************************/ |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
593 | static GtkWidget * |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
594 | setup_tree(PidginXferDialog *dialog) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
595 | { |
| 4514 | 596 | GtkWidget *sw; |
| 597 | GtkWidget *tree; | |
| 598 | GtkListStore *model; | |
| 599 | GtkCellRenderer *renderer; | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
600 | GtkTreeViewColumn *column; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
601 | GtkTreeSelection *selection; |
| 4514 | 602 | |
| 603 | /* Create the scrolled window. */ | |
| 604 | sw = gtk_scrolled_window_new(0, 0); | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
605 | gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), |
| 13775 | 606 | GTK_SHADOW_IN); |
| 4514 | 607 | gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), |
| 13775 | 608 | GTK_POLICY_AUTOMATIC, |
| 609 | GTK_POLICY_AUTOMATIC); | |
| 4514 | 610 | gtk_widget_show(sw); |
| 611 | ||
| 612 | /* Build the tree model */ | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
613 | /* Transfer type, Progress Bar, Filename, Size, Remaining */ |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
614 | 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
|
615 | G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
616 | G_TYPE_POINTER); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
617 | dialog->model = model; |
| 4514 | 618 | |
| 619 | /* Create the treeview */ | |
| 620 | dialog->tree = tree = gtk_tree_view_new_with_model(GTK_TREE_MODEL(model)); | |
| 621 | 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
|
622 | selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree)); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
623 | /* gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE); */ |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
624 | |
| 4514 | 625 | gtk_widget_show(tree); |
| 626 | ||
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
627 | g_signal_connect(G_OBJECT(selection), "changed", |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
628 | G_CALLBACK(selection_changed_cb), dialog); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
629 | |
| 4514 | 630 | g_object_unref(G_OBJECT(model)); |
| 631 | ||
| 632 | ||
| 633 | /* Columns */ | |
| 634 | ||
| 635 | /* Transfer Type column */ | |
| 636 | renderer = gtk_cell_renderer_pixbuf_new(); | |
| 637 | column = gtk_tree_view_column_new_with_attributes(NULL, renderer, | |
| 638 | "pixbuf", COLUMN_STATUS, NULL); | |
| 639 | gtk_tree_view_column_set_sizing(GTK_TREE_VIEW_COLUMN(column), | |
| 640 | GTK_TREE_VIEW_COLUMN_FIXED); | |
| 641 | gtk_tree_view_column_set_fixed_width(GTK_TREE_VIEW_COLUMN(column), 25); | |
| 642 | gtk_tree_view_column_set_resizable(GTK_TREE_VIEW_COLUMN(column), TRUE); | |
| 643 | gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column); | |
| 644 | ||
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
645 | /* Progress bar column */ |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
646 | renderer = pidgin_cell_renderer_progress_new(); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
647 | column = gtk_tree_view_column_new_with_attributes(_("Progress"), renderer, |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
648 | "percentage", COLUMN_PROGRESS, NULL); |
| 4514 | 649 | gtk_tree_view_column_set_resizable(GTK_TREE_VIEW_COLUMN(column), TRUE); |
| 650 | gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column); | |
| 651 | ||
| 652 | /* Filename column */ | |
| 653 | renderer = gtk_cell_renderer_text_new(); | |
| 654 | column = gtk_tree_view_column_new_with_attributes(_("Filename"), renderer, | |
| 655 | "text", COLUMN_FILENAME, NULL); | |
| 656 | gtk_tree_view_column_set_resizable(GTK_TREE_VIEW_COLUMN(column), TRUE); | |
| 657 | gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column); | |
| 658 | ||
| 659 | /* File Size column */ | |
| 660 | renderer = gtk_cell_renderer_text_new(); | |
| 661 | column = gtk_tree_view_column_new_with_attributes(_("Size"), renderer, | |
| 662 | "text", COLUMN_SIZE, NULL); | |
| 663 | gtk_tree_view_column_set_resizable(GTK_TREE_VIEW_COLUMN(column), TRUE); | |
| 664 | gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column); | |
| 665 | ||
| 666 | /* Bytes Remaining column */ | |
| 667 | renderer = gtk_cell_renderer_text_new(); | |
| 668 | column = gtk_tree_view_column_new_with_attributes(_("Remaining"), | |
| 669 | renderer, "text", COLUMN_REMAINING, NULL); | |
| 670 | gtk_tree_view_column_set_resizable(GTK_TREE_VIEW_COLUMN(column), TRUE); | |
| 671 | gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column); | |
| 672 | ||
| 673 | gtk_tree_view_columns_autosize(GTK_TREE_VIEW(tree)); | |
| 674 | ||
| 675 | gtk_container_add(GTK_CONTAINER(sw), tree); | |
| 676 | gtk_widget_show(tree); | |
| 677 | ||
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
678 | return sw; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
679 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
680 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
681 | static GtkWidget * |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
682 | make_info_table(PidginXferDialog *dialog) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
683 | { |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
684 | GtkWidget *table; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
685 | GtkWidget *label; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
686 | int i; |
|
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 | struct |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
689 | { |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
690 | GtkWidget **desc_label; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
691 | GtkWidget **val_label; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
692 | const char *desc; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
693 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
694 | } labels[] = |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
695 | { |
| 9785 | 696 | { &dialog->local_user_desc_label, &dialog->local_user_label, NULL }, |
| 697 | { &dialog->remote_user_desc_label, &dialog->remote_user_label, NULL }, | |
|
10911
e2cc7dddee17
[gaim-migrate @ 12665]
Daniel Atallah <datallah@pidgin.im>
parents:
10654
diff
changeset
|
698 | { &label, &dialog->protocol_label, _("Protocol:") }, |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
699 | { &label, &dialog->filename_label, _("Filename:") }, |
|
10911
e2cc7dddee17
[gaim-migrate @ 12665]
Daniel Atallah <datallah@pidgin.im>
parents:
10654
diff
changeset
|
700 | { &label, &dialog->localfile_label, _("Local File:") }, |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
701 | { &label, &dialog->status_label, _("Status:") }, |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
702 | { &label, &dialog->speed_label, _("Speed:") }, |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
703 | { &label, &dialog->time_elapsed_label, _("Time Elapsed:") }, |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
704 | { &label, &dialog->time_remaining_label, _("Time Remaining:") } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
705 | }; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
706 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
707 | /* Setup the initial table */ |
|
10591
9fdfd7279217
[gaim-migrate @ 11996]
William Jon McCann <mccannwj@users.sourceforge.net>
parents:
10535
diff
changeset
|
708 | dialog->table = table = gtk_table_new(9, 2, FALSE); |
| 15882 | 709 | gtk_table_set_row_spacings(GTK_TABLE(table), PIDGIN_HIG_BOX_SPACE); |
| 710 | gtk_table_set_col_spacings(GTK_TABLE(table), PIDGIN_HIG_BOX_SPACE); | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
711 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
712 | /* Setup the labels */ |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
713 | for (i = 0; i < sizeof(labels) / sizeof(*labels); i++) { |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
714 | GtkWidget *label; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
715 | char buf[256]; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
716 | |
| 4894 | 717 | g_snprintf(buf, sizeof(buf), "<b>%s</b>", |
| 718 | labels[i].desc != NULL ? labels[i].desc : ""); | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
719 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
720 | *labels[i].desc_label = label = gtk_label_new(NULL); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
721 | gtk_label_set_markup(GTK_LABEL(label), buf); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
722 | gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
723 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
724 | 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
|
725 | GTK_FILL, 0, 0, 0); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
726 | gtk_widget_show(label); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
727 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
728 | *labels[i].val_label = label = gtk_label_new(NULL); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
729 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
730 | 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
|
731 | GTK_FILL | GTK_EXPAND, 0, 0, 0); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
732 | gtk_widget_show(label); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
733 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
734 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
735 | /* Setup the progress bar */ |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
736 | dialog->progress = gtk_progress_bar_new(); |
| 9785 | 737 | 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
|
738 | GTK_FILL, GTK_FILL, 0, 0); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
739 | gtk_widget_show(dialog->progress); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
740 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
741 | return table; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
742 | } |
| 4514 | 743 | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
744 | PidginXferDialog * |
|
16263
27e0ef0f38e6
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents:
16254
diff
changeset
|
745 | pidgin_xfer_dialog_new(void) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
746 | { |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
747 | PidginXferDialog *dialog; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
748 | GtkWidget *window; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
749 | GtkWidget *vbox1, *vbox2; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
750 | GtkWidget *sw; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
751 | GtkWidget *button; |
|
11735
a1d2afa9b4e9
[gaim-migrate @ 14026]
Mark Doliner <markdoliner@pidgin.im>
parents:
11639
diff
changeset
|
752 | GtkWidget *expander; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
753 | GtkWidget *table; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
754 | GtkWidget *checkbox; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
755 | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
756 | dialog = g_new0(PidginXferDialog, 1); |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
757 | dialog->keep_open = |
|
16123
8b98683319e7
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15931
diff
changeset
|
758 | purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/filetransfer/keep_open"); |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
759 | dialog->auto_clear = |
|
16123
8b98683319e7
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15931
diff
changeset
|
760 | purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/filetransfer/clear_finished"); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
761 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
762 | /* Create the window. */ |
|
22000
5e7708f58d3d
Patch from fmoo. This makes a lot of the windows closeable with Escape. There
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20248
diff
changeset
|
763 | dialog->window = window = pidgin_create_dialog(_("File Transfers"), PIDGIN_HIG_BORDER, "file transfer", TRUE); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
764 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
765 | g_signal_connect(G_OBJECT(window), "delete_event", |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
766 | G_CALLBACK(delete_win_cb), dialog); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
767 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
768 | /* Create the parent vbox for everything. */ |
|
22000
5e7708f58d3d
Patch from fmoo. This makes a lot of the windows closeable with Escape. There
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20248
diff
changeset
|
769 | vbox1 = pidgin_dialog_get_vbox_with_properties(GTK_DIALOG(window), FALSE, PIDGIN_HIG_BORDER); |
|
4553
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 | /* Create the main vbox for top half of the window. */ |
| 15882 | 772 | vbox2 = gtk_vbox_new(FALSE, PIDGIN_HIG_BOX_SPACE); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
773 | gtk_box_pack_start(GTK_BOX(vbox1), vbox2, TRUE, TRUE, 0); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
774 | gtk_widget_show(vbox2); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
775 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
776 | /* Setup the listbox */ |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
777 | sw = setup_tree(dialog); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
778 | gtk_box_pack_start(GTK_BOX(vbox2), sw, TRUE, TRUE, 0); |
| 4719 | 779 | gtk_widget_set_size_request(sw,-1, 140); |
|
7272
f8335b8f1f1c
[gaim-migrate @ 7849]
Christian Hammond <chipx86@chipx86.com>
parents:
7107
diff
changeset
|
780 | |
|
11896
2c70e36de614
[gaim-migrate @ 14187]
Richard Laager <rlaager@pidgin.im>
parents:
11735
diff
changeset
|
781 | /* "Close this window when all transfers finish" */ |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
782 | checkbox = gtk_check_button_new_with_mnemonic( |
|
12331
c6881a883c0f
[gaim-migrate @ 14635]
Mark Doliner <markdoliner@pidgin.im>
parents:
11994
diff
changeset
|
783 | _("Close this window when all transfers _finish")); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
784 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbox), |
|
11896
2c70e36de614
[gaim-migrate @ 14187]
Richard Laager <rlaager@pidgin.im>
parents:
11735
diff
changeset
|
785 | !dialog->keep_open); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
786 | g_signal_connect(G_OBJECT(checkbox), "toggled", |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
787 | G_CALLBACK(toggle_keep_open_cb), dialog); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
788 | gtk_box_pack_start(GTK_BOX(vbox2), checkbox, FALSE, FALSE, 0); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
789 | gtk_widget_show(checkbox); |
|
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 | /* "Clear finished transfers" */ |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
792 | checkbox = gtk_check_button_new_with_mnemonic( |
| 11639 | 793 | _("C_lear finished transfers")); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
794 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbox), |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
795 | dialog->auto_clear); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
796 | g_signal_connect(G_OBJECT(checkbox), "toggled", |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
797 | G_CALLBACK(toggle_clear_finished_cb), dialog); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
798 | gtk_box_pack_start(GTK_BOX(vbox2), checkbox, FALSE, FALSE, 0); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
799 | gtk_widget_show(checkbox); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
800 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
801 | /* "Download Details" arrow */ |
|
11735
a1d2afa9b4e9
[gaim-migrate @ 14026]
Mark Doliner <markdoliner@pidgin.im>
parents:
11639
diff
changeset
|
802 | expander = gtk_expander_new_with_mnemonic(_("File transfer _details")); |
|
a1d2afa9b4e9
[gaim-migrate @ 14026]
Mark Doliner <markdoliner@pidgin.im>
parents:
11639
diff
changeset
|
803 | dialog->expander = expander; |
|
a1d2afa9b4e9
[gaim-migrate @ 14026]
Mark Doliner <markdoliner@pidgin.im>
parents:
11639
diff
changeset
|
804 | gtk_box_pack_start(GTK_BOX(vbox2), expander, FALSE, FALSE, 0); |
|
a1d2afa9b4e9
[gaim-migrate @ 14026]
Mark Doliner <markdoliner@pidgin.im>
parents:
11639
diff
changeset
|
805 | gtk_widget_show(expander); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
806 | |
|
11735
a1d2afa9b4e9
[gaim-migrate @ 14026]
Mark Doliner <markdoliner@pidgin.im>
parents:
11639
diff
changeset
|
807 | gtk_widget_set_sensitive(expander, FALSE); |
| 4514 | 808 | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
809 | /* The table of information. */ |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
810 | table = make_info_table(dialog); |
|
11735
a1d2afa9b4e9
[gaim-migrate @ 14026]
Mark Doliner <markdoliner@pidgin.im>
parents:
11639
diff
changeset
|
811 | gtk_container_add(GTK_CONTAINER(expander), table); |
|
a1d2afa9b4e9
[gaim-migrate @ 14026]
Mark Doliner <markdoliner@pidgin.im>
parents:
11639
diff
changeset
|
812 | gtk_widget_show(table); |
| 4514 | 813 | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
814 | /* Open button */ |
|
22005
0183020ba2cc
Add a utility function pidgin_dialog_add_button to add buttons to a dialog
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22000
diff
changeset
|
815 | button = pidgin_dialog_add_button(GTK_DIALOG(window), GTK_STOCK_OPEN, G_CALLBACK(open_button_cb), dialog); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
816 | gtk_widget_set_sensitive(button, FALSE); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
817 | dialog->open_button = button; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
818 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
819 | /* Pause button */ |
|
22005
0183020ba2cc
Add a utility function pidgin_dialog_add_button to add buttons to a dialog
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22000
diff
changeset
|
820 | button = pidgin_dialog_add_button(GTK_DIALOG(window), _("_Pause"), G_CALLBACK(pause_button_cb), dialog); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
821 | gtk_widget_set_sensitive(button, FALSE); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
822 | dialog->pause_button = button; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
823 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
824 | /* Resume button */ |
|
22005
0183020ba2cc
Add a utility function pidgin_dialog_add_button to add buttons to a dialog
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22000
diff
changeset
|
825 | button = pidgin_dialog_add_button(GTK_DIALOG(window), _("_Resume"), G_CALLBACK(resume_button_cb), dialog); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
826 | gtk_widget_set_sensitive(button, FALSE); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
827 | dialog->resume_button = button; |
| 4514 | 828 | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
829 | /* Remove button */ |
|
22005
0183020ba2cc
Add a utility function pidgin_dialog_add_button to add buttons to a dialog
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22000
diff
changeset
|
830 | button = pidgin_dialog_add_button(GTK_DIALOG(window), GTK_STOCK_REMOVE, G_CALLBACK(remove_button_cb), dialog); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
831 | gtk_widget_hide(button); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
832 | dialog->remove_button = button; |
|
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 | /* Stop button */ |
|
22005
0183020ba2cc
Add a utility function pidgin_dialog_add_button to add buttons to a dialog
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22000
diff
changeset
|
835 | button = pidgin_dialog_add_button(GTK_DIALOG(window), GTK_STOCK_STOP, G_CALLBACK(stop_button_cb), dialog); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
836 | gtk_widget_set_sensitive(button, FALSE); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
837 | dialog->stop_button = button; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
838 | |
|
5608
b78f573998e5
[gaim-migrate @ 6012]
Robert McQueen <robot101@debian.org>
parents:
5498
diff
changeset
|
839 | /* Close button */ |
|
22005
0183020ba2cc
Add a utility function pidgin_dialog_add_button to add buttons to a dialog
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22000
diff
changeset
|
840 | button = pidgin_dialog_add_button(GTK_DIALOG(window), GTK_STOCK_CLOSE, G_CALLBACK(close_button_cb), dialog); |
|
5608
b78f573998e5
[gaim-migrate @ 6012]
Robert McQueen <robot101@debian.org>
parents:
5498
diff
changeset
|
841 | dialog->close_button = button; |
|
b78f573998e5
[gaim-migrate @ 6012]
Robert McQueen <robot101@debian.org>
parents:
5498
diff
changeset
|
842 | |
|
14726
d8a663833430
[gaim-migrate @ 17410]
Daniel Atallah <datallah@pidgin.im>
parents:
14535
diff
changeset
|
843 | #ifdef _WIN32 |
|
d8a663833430
[gaim-migrate @ 17410]
Daniel Atallah <datallah@pidgin.im>
parents:
14535
diff
changeset
|
844 | g_signal_connect(G_OBJECT(dialog->window), "show", |
|
15574
18d9d1c05994
Win32 de-gaimification of pidgin
Daniel Atallah <datallah@pidgin.im>
parents:
15570
diff
changeset
|
845 | G_CALLBACK(winpidgin_ensure_onscreen), dialog->window); |
|
14726
d8a663833430
[gaim-migrate @ 17410]
Daniel Atallah <datallah@pidgin.im>
parents:
14535
diff
changeset
|
846 | #endif |
|
d8a663833430
[gaim-migrate @ 17410]
Daniel Atallah <datallah@pidgin.im>
parents:
14535
diff
changeset
|
847 | |
| 4514 | 848 | return dialog; |
| 849 | } | |
| 850 | ||
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
851 | void |
|
16263
27e0ef0f38e6
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents:
16254
diff
changeset
|
852 | pidgin_xfer_dialog_destroy(PidginXferDialog *dialog) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
853 | { |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
854 | g_return_if_fail(dialog != NULL); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
855 | |
| 15884 | 856 | purple_notify_close_with_handle(dialog); |
| 11010 | 857 | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
858 | gtk_widget_destroy(dialog->window); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
859 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
860 | g_free(dialog); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
861 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
862 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
863 | void |
|
16263
27e0ef0f38e6
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents:
16254
diff
changeset
|
864 | pidgin_xfer_dialog_show(PidginXferDialog *dialog) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
865 | { |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
866 | PidginXferDialog *tmp; |
| 14456 | 867 | |
| 868 | if (dialog == NULL) { | |
|
15692
ecda27df58b9
Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents:
15578
diff
changeset
|
869 | tmp = pidgin_get_xfer_dialog(); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
870 | |
| 14456 | 871 | if (tmp == NULL) { |
|
16263
27e0ef0f38e6
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents:
16254
diff
changeset
|
872 | tmp = pidgin_xfer_dialog_new(); |
|
15692
ecda27df58b9
Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents:
15578
diff
changeset
|
873 | pidgin_set_xfer_dialog(tmp); |
| 14456 | 874 | } |
| 875 | ||
| 876 | gtk_widget_show(tmp->window); | |
| 877 | } else { | |
|
20248
fdafd57b1d99
applied changes from e82ae16ed445d6896fec536a492fcc17bc6098e4
Luke Schierer <lschiere@pidgin.im>
parents:
20147
diff
changeset
|
878 | gtk_window_present(GTK_WINDOW(dialog->window)); |
| 14456 | 879 | } |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
880 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
881 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
882 | void |
|
16263
27e0ef0f38e6
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents:
16254
diff
changeset
|
883 | pidgin_xfer_dialog_hide(PidginXferDialog *dialog) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
884 | { |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
885 | g_return_if_fail(dialog != NULL); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
886 | |
| 15884 | 887 | purple_notify_close_with_handle(dialog); |
| 11010 | 888 | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
889 | gtk_widget_hide(dialog->window); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
890 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
891 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
892 | void |
|
16263
27e0ef0f38e6
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents:
16254
diff
changeset
|
893 | pidgin_xfer_dialog_add_xfer(PidginXferDialog *dialog, PurpleXfer *xfer) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
894 | { |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
895 | PidginXferUiData *data; |
| 15884 | 896 | PurpleXferType type; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
897 | GdkPixbuf *pixbuf; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
898 | char *size_str, *remaining_str; |
|
10919
22fba24cd16e
[gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10911
diff
changeset
|
899 | char *lfilename, *utf8; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
900 | |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
901 | g_return_if_fail(dialog != NULL); |
|
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
902 | g_return_if_fail(xfer != NULL); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
903 | |
| 15884 | 904 | purple_xfer_ref(xfer); |
| 7805 | 905 | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
906 | data = PIDGINXFER(xfer); |
| 7805 | 907 | data->in_list = TRUE; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
908 | |
|
16263
27e0ef0f38e6
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents:
16254
diff
changeset
|
909 | pidgin_xfer_dialog_show(dialog); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
910 | |
| 11925 | 911 | data->last_updated_time = 0; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
912 | |
| 15884 | 913 | type = purple_xfer_get_type(xfer); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
914 | |
| 15884 | 915 | size_str = purple_str_size_to_units(purple_xfer_get_size(xfer)); |
| 916 | remaining_str = purple_str_size_to_units(purple_xfer_get_bytes_remaining(xfer)); | |
|
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 | pixbuf = gtk_widget_render_icon(dialog->window, |
| 15884 | 919 | (type == PURPLE_XFER_RECEIVE |
| 15570 | 920 | ? PIDGIN_STOCK_DOWNLOAD |
| 921 | : PIDGIN_STOCK_UPLOAD), | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
922 | GTK_ICON_SIZE_MENU, NULL); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
923 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
924 | gtk_list_store_append(dialog->model, &data->iter); |
| 15884 | 925 | lfilename = g_path_get_basename(purple_xfer_get_local_filename(xfer)); |
|
10919
22fba24cd16e
[gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10911
diff
changeset
|
926 | utf8 = g_filename_to_utf8(lfilename, -1, NULL, NULL, NULL); |
|
22fba24cd16e
[gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10911
diff
changeset
|
927 | g_free(lfilename); |
|
22fba24cd16e
[gaim-migrate @ 12683]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10911
diff
changeset
|
928 | lfilename = utf8; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
929 | gtk_list_store_set(dialog->model, &data->iter, |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
930 | COLUMN_STATUS, pixbuf, |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
931 | COLUMN_PROGRESS, 0.0, |
| 15884 | 932 | COLUMN_FILENAME, (type == PURPLE_XFER_RECEIVE) |
| 933 | ? purple_xfer_get_filename(xfer) | |
| 7738 | 934 | : lfilename, |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
935 | COLUMN_SIZE, size_str, |
| 9785 | 936 | COLUMN_REMAINING, _("Waiting for transfer to begin"), |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
937 | COLUMN_DATA, xfer, |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
938 | -1); |
| 7738 | 939 | g_free(lfilename); |
|
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 | gtk_tree_view_columns_autosize(GTK_TREE_VIEW(dialog->tree)); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
942 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
943 | g_object_unref(pixbuf); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
944 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
945 | g_free(size_str); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
946 | g_free(remaining_str); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
947 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
948 | dialog->num_transfers++; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
949 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
950 | ensure_row_selected(dialog); |
|
14535
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
951 | update_title_progress(dialog); |
|
4553
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 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
954 | void |
|
16263
27e0ef0f38e6
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents:
16254
diff
changeset
|
955 | pidgin_xfer_dialog_remove_xfer(PidginXferDialog *dialog, |
| 15884 | 956 | PurpleXfer *xfer) |
| 4514 | 957 | { |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
958 | PidginXferUiData *data; |
| 4514 | 959 | |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
960 | g_return_if_fail(dialog != NULL); |
|
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
961 | g_return_if_fail(xfer != NULL); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
962 | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
963 | data = PIDGINXFER(xfer); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
964 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
965 | if (data == NULL) |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
966 | return; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
967 | |
| 7805 | 968 | if (!data->in_list) |
| 969 | return; | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
970 | |
| 7805 | 971 | data->in_list = FALSE; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
972 | |
| 7805 | 973 | 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
|
974 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
975 | dialog->num_transfers--; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
976 | |
|
15398
b0f483f13f01
[gaim-migrate @ 18128]
Mark Doliner <markdoliner@pidgin.im>
parents:
14726
diff
changeset
|
977 | ensure_row_selected(dialog); |
| 7805 | 978 | |
|
14535
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
979 | update_title_progress(dialog); |
| 15884 | 980 | purple_xfer_unref(xfer); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
981 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
982 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
983 | void |
|
16263
27e0ef0f38e6
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents:
16254
diff
changeset
|
984 | pidgin_xfer_dialog_cancel_xfer(PidginXferDialog *dialog, |
| 15884 | 985 | PurpleXfer *xfer) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
986 | { |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
987 | PidginXferUiData *data; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
988 | GdkPixbuf *pixbuf; |
|
13107
704041197f4d
[gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents:
12906
diff
changeset
|
989 | const gchar *status; |
| 7738 | 990 | |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
991 | g_return_if_fail(dialog != NULL); |
|
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
992 | g_return_if_fail(xfer != NULL); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
993 | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
994 | data = PIDGINXFER(xfer); |
| 4514 | 995 | |
| 996 | if (data == NULL) | |
| 997 | return; | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
998 | |
| 8282 | 999 | if (!data->in_list) |
| 1000 | return; | |
| 7738 | 1001 | |
| 15884 | 1002 | if ((purple_xfer_get_status(xfer) == PURPLE_XFER_STATUS_CANCEL_LOCAL) && (dialog->auto_clear)) { |
|
16263
27e0ef0f38e6
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents:
16254
diff
changeset
|
1003 | pidgin_xfer_dialog_remove_xfer(dialog, xfer); |
| 7738 | 1004 | return; |
| 1005 | } | |
| 1006 | ||
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
1007 | data = PIDGINXFER(xfer); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1008 | |
| 9017 | 1009 | update_detailed_info(dialog, xfer); |
|
14535
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
1010 | update_title_progress(dialog); |
| 9017 | 1011 | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1012 | pixbuf = gtk_widget_render_icon(dialog->window, |
| 15570 | 1013 | PIDGIN_STOCK_FILE_CANCELED, |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1014 | GTK_ICON_SIZE_MENU, NULL); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1015 | |
| 15884 | 1016 | if (purple_xfer_is_canceled(xfer)) |
| 7738 | 1017 | status = _("Canceled"); |
| 1018 | else | |
| 1019 | status = _("Failed"); | |
| 1020 | ||
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1021 | gtk_list_store_set(dialog->model, &data->iter, |
| 7738 | 1022 | COLUMN_STATUS, pixbuf, |
| 1023 | COLUMN_REMAINING, status, | |
| 1024 | -1); | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1025 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1026 | g_object_unref(pixbuf); |
| 7738 | 1027 | |
| 1028 | update_buttons(dialog, xfer); | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1029 | } |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1030 | |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1031 | void |
|
16263
27e0ef0f38e6
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents:
16254
diff
changeset
|
1032 | pidgin_xfer_dialog_update_xfer(PidginXferDialog *dialog, |
| 15884 | 1033 | PurpleXfer *xfer) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1034 | { |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
1035 | PidginXferUiData *data; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1036 | char *size_str, *remaining_str; |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1037 | GtkTreeSelection *selection; |
| 11925 | 1038 | time_t current_time; |
|
15398
b0f483f13f01
[gaim-migrate @ 18128]
Mark Doliner <markdoliner@pidgin.im>
parents:
14726
diff
changeset
|
1039 | GtkTreeIter iter; |
|
b0f483f13f01
[gaim-migrate @ 18128]
Mark Doliner <markdoliner@pidgin.im>
parents:
14726
diff
changeset
|
1040 | gboolean valid; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1041 | |
|
6240
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
1042 | g_return_if_fail(dialog != NULL); |
|
0390b27fe09d
[gaim-migrate @ 6734]
Christian Hammond <chipx86@chipx86.com>
parents:
5974
diff
changeset
|
1043 | g_return_if_fail(xfer != NULL); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1044 | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
1045 | if ((data = PIDGINXFER(xfer)) == NULL) |
|
4656
b676f986e7e3
[gaim-migrate @ 4967]
Mark Doliner <markdoliner@pidgin.im>
parents:
4646
diff
changeset
|
1046 | return; |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1047 | |
| 7805 | 1048 | if (data->in_list == FALSE) |
| 1049 | return; | |
| 1050 | ||
| 11925 | 1051 | current_time = time(NULL); |
| 1052 | if (((current_time - data->last_updated_time) == 0) && | |
| 15884 | 1053 | (!purple_xfer_is_completed(xfer))) |
| 11925 | 1054 | { |
| 1055 | /* Don't update the window more than once per second */ | |
| 1056 | return; | |
| 1057 | } | |
| 1058 | data->last_updated_time = current_time; | |
| 1059 | ||
| 15884 | 1060 | size_str = purple_str_size_to_units(purple_xfer_get_size(xfer)); |
| 1061 | remaining_str = purple_str_size_to_units(purple_xfer_get_bytes_remaining(xfer)); | |
|
4553
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 | gtk_list_store_set(xfer_dialog->model, &data->iter, |
| 15884 | 1064 | COLUMN_PROGRESS, purple_xfer_get_progress(xfer), |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1065 | COLUMN_SIZE, size_str, |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1066 | COLUMN_REMAINING, remaining_str, |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1067 | -1); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1068 | |
|
22590
174fe7103cbd
some memleak fixes from Andrew Gaul again:
Andrew Gaul <andrew@gaul.org>
parents:
22063
diff
changeset
|
1069 | g_free(size_str); |
|
174fe7103cbd
some memleak fixes from Andrew Gaul again:
Andrew Gaul <andrew@gaul.org>
parents:
22063
diff
changeset
|
1070 | g_free(remaining_str); |
|
174fe7103cbd
some memleak fixes from Andrew Gaul again:
Andrew Gaul <andrew@gaul.org>
parents:
22063
diff
changeset
|
1071 | |
| 15884 | 1072 | if (purple_xfer_is_completed(xfer)) |
| 11925 | 1073 | { |
|
4607
c1a24e3c94f3
[gaim-migrate @ 4895]
Mark Doliner <markdoliner@pidgin.im>
parents:
4604
diff
changeset
|
1074 | GdkPixbuf *pixbuf; |
|
c1a24e3c94f3
[gaim-migrate @ 4895]
Mark Doliner <markdoliner@pidgin.im>
parents:
4604
diff
changeset
|
1075 | |
|
c1a24e3c94f3
[gaim-migrate @ 4895]
Mark Doliner <markdoliner@pidgin.im>
parents:
4604
diff
changeset
|
1076 | pixbuf = gtk_widget_render_icon(dialog->window, |
| 15570 | 1077 | PIDGIN_STOCK_FILE_DONE, |
|
4607
c1a24e3c94f3
[gaim-migrate @ 4895]
Mark Doliner <markdoliner@pidgin.im>
parents:
4604
diff
changeset
|
1078 | GTK_ICON_SIZE_MENU, NULL); |
|
c1a24e3c94f3
[gaim-migrate @ 4895]
Mark Doliner <markdoliner@pidgin.im>
parents:
4604
diff
changeset
|
1079 | |
|
c1a24e3c94f3
[gaim-migrate @ 4895]
Mark Doliner <markdoliner@pidgin.im>
parents:
4604
diff
changeset
|
1080 | 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
|
1081 | COLUMN_STATUS, pixbuf, |
| 8351 | 1082 | COLUMN_REMAINING, _("Finished"), |
|
4607
c1a24e3c94f3
[gaim-migrate @ 4895]
Mark Doliner <markdoliner@pidgin.im>
parents:
4604
diff
changeset
|
1083 | -1); |
|
c1a24e3c94f3
[gaim-migrate @ 4895]
Mark Doliner <markdoliner@pidgin.im>
parents:
4604
diff
changeset
|
1084 | |
|
c1a24e3c94f3
[gaim-migrate @ 4895]
Mark Doliner <markdoliner@pidgin.im>
parents:
4604
diff
changeset
|
1085 | g_object_unref(pixbuf); |
| 11925 | 1086 | } |
|
4607
c1a24e3c94f3
[gaim-migrate @ 4895]
Mark Doliner <markdoliner@pidgin.im>
parents:
4604
diff
changeset
|
1087 | |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1088 | 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
|
1089 | |
|
14535
c39c8159eb84
[gaim-migrate @ 17189]
Mark Doliner <markdoliner@pidgin.im>
parents:
14456
diff
changeset
|
1090 | update_title_progress(dialog); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1091 | if (xfer == dialog->selected_xfer) |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1092 | update_detailed_info(xfer_dialog, xfer); |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1093 | |
| 15884 | 1094 | if (purple_xfer_is_completed(xfer) && dialog->auto_clear) |
|
16263
27e0ef0f38e6
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents:
16254
diff
changeset
|
1095 | pidgin_xfer_dialog_remove_xfer(dialog, xfer); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1096 | else |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1097 | update_buttons(dialog, xfer); |
|
15398
b0f483f13f01
[gaim-migrate @ 18128]
Mark Doliner <markdoliner@pidgin.im>
parents:
14726
diff
changeset
|
1098 | |
|
b0f483f13f01
[gaim-migrate @ 18128]
Mark Doliner <markdoliner@pidgin.im>
parents:
14726
diff
changeset
|
1099 | /* |
|
b0f483f13f01
[gaim-migrate @ 18128]
Mark Doliner <markdoliner@pidgin.im>
parents:
14726
diff
changeset
|
1100 | * If all transfers are finished, and the pref is set, then |
|
b0f483f13f01
[gaim-migrate @ 18128]
Mark Doliner <markdoliner@pidgin.im>
parents:
14726
diff
changeset
|
1101 | * close the dialog. Otherwise just exit this function. |
|
b0f483f13f01
[gaim-migrate @ 18128]
Mark Doliner <markdoliner@pidgin.im>
parents:
14726
diff
changeset
|
1102 | */ |
|
b0f483f13f01
[gaim-migrate @ 18128]
Mark Doliner <markdoliner@pidgin.im>
parents:
14726
diff
changeset
|
1103 | if (dialog->keep_open) |
|
b0f483f13f01
[gaim-migrate @ 18128]
Mark Doliner <markdoliner@pidgin.im>
parents:
14726
diff
changeset
|
1104 | return; |
|
b0f483f13f01
[gaim-migrate @ 18128]
Mark Doliner <markdoliner@pidgin.im>
parents:
14726
diff
changeset
|
1105 | |
|
b0f483f13f01
[gaim-migrate @ 18128]
Mark Doliner <markdoliner@pidgin.im>
parents:
14726
diff
changeset
|
1106 | valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(dialog->model), &iter); |
|
b0f483f13f01
[gaim-migrate @ 18128]
Mark Doliner <markdoliner@pidgin.im>
parents:
14726
diff
changeset
|
1107 | while (valid) |
|
b0f483f13f01
[gaim-migrate @ 18128]
Mark Doliner <markdoliner@pidgin.im>
parents:
14726
diff
changeset
|
1108 | { |
|
b0f483f13f01
[gaim-migrate @ 18128]
Mark Doliner <markdoliner@pidgin.im>
parents:
14726
diff
changeset
|
1109 | GValue val; |
| 15884 | 1110 | PurpleXfer *next; |
|
15398
b0f483f13f01
[gaim-migrate @ 18128]
Mark Doliner <markdoliner@pidgin.im>
parents:
14726
diff
changeset
|
1111 | |
|
b0f483f13f01
[gaim-migrate @ 18128]
Mark Doliner <markdoliner@pidgin.im>
parents:
14726
diff
changeset
|
1112 | val.g_type = 0; |
|
b0f483f13f01
[gaim-migrate @ 18128]
Mark Doliner <markdoliner@pidgin.im>
parents:
14726
diff
changeset
|
1113 | gtk_tree_model_get_value(GTK_TREE_MODEL(dialog->model), |
|
b0f483f13f01
[gaim-migrate @ 18128]
Mark Doliner <markdoliner@pidgin.im>
parents:
14726
diff
changeset
|
1114 | &iter, COLUMN_DATA, &val); |
|
b0f483f13f01
[gaim-migrate @ 18128]
Mark Doliner <markdoliner@pidgin.im>
parents:
14726
diff
changeset
|
1115 | |
|
b0f483f13f01
[gaim-migrate @ 18128]
Mark Doliner <markdoliner@pidgin.im>
parents:
14726
diff
changeset
|
1116 | next = g_value_get_pointer(&val); |
| 15884 | 1117 | if (!purple_xfer_is_completed(next)) |
|
15398
b0f483f13f01
[gaim-migrate @ 18128]
Mark Doliner <markdoliner@pidgin.im>
parents:
14726
diff
changeset
|
1118 | return; |
|
b0f483f13f01
[gaim-migrate @ 18128]
Mark Doliner <markdoliner@pidgin.im>
parents:
14726
diff
changeset
|
1119 | |
|
b0f483f13f01
[gaim-migrate @ 18128]
Mark Doliner <markdoliner@pidgin.im>
parents:
14726
diff
changeset
|
1120 | valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(dialog->model), &iter); |
|
b0f483f13f01
[gaim-migrate @ 18128]
Mark Doliner <markdoliner@pidgin.im>
parents:
14726
diff
changeset
|
1121 | } |
|
b0f483f13f01
[gaim-migrate @ 18128]
Mark Doliner <markdoliner@pidgin.im>
parents:
14726
diff
changeset
|
1122 | |
|
b0f483f13f01
[gaim-migrate @ 18128]
Mark Doliner <markdoliner@pidgin.im>
parents:
14726
diff
changeset
|
1123 | /* If we got to this point then we know everything is finished */ |
|
16263
27e0ef0f38e6
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents:
16254
diff
changeset
|
1124 | pidgin_xfer_dialog_hide(dialog); |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1125 | } |
|
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 | /************************************************************************** |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1128 | * File Transfer UI Ops |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1129 | **************************************************************************/ |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1130 | static void |
|
16263
27e0ef0f38e6
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents:
16254
diff
changeset
|
1131 | pidgin_xfer_new_xfer(PurpleXfer *xfer) |
|
5169
091d71968b59
[gaim-migrate @ 5533]
Mark Doliner <markdoliner@pidgin.im>
parents:
5131
diff
changeset
|
1132 | { |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
1133 | PidginXferUiData *data; |
|
5169
091d71968b59
[gaim-migrate @ 5533]
Mark Doliner <markdoliner@pidgin.im>
parents:
5131
diff
changeset
|
1134 | |
|
091d71968b59
[gaim-migrate @ 5533]
Mark Doliner <markdoliner@pidgin.im>
parents:
5131
diff
changeset
|
1135 | /* This is where we're setting xfer->ui_data for the first time. */ |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
1136 | data = g_new0(PidginXferUiData, 1); |
|
5169
091d71968b59
[gaim-migrate @ 5533]
Mark Doliner <markdoliner@pidgin.im>
parents:
5131
diff
changeset
|
1137 | xfer->ui_data = data; |
|
091d71968b59
[gaim-migrate @ 5533]
Mark Doliner <markdoliner@pidgin.im>
parents:
5131
diff
changeset
|
1138 | } |
|
091d71968b59
[gaim-migrate @ 5533]
Mark Doliner <markdoliner@pidgin.im>
parents:
5131
diff
changeset
|
1139 | |
|
091d71968b59
[gaim-migrate @ 5533]
Mark Doliner <markdoliner@pidgin.im>
parents:
5131
diff
changeset
|
1140 | static void |
|
16263
27e0ef0f38e6
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents:
16254
diff
changeset
|
1141 | pidgin_xfer_destroy(PurpleXfer *xfer) |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1142 | { |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
1143 | PidginXferUiData *data; |
| 7805 | 1144 | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
1145 | data = PIDGINXFER(xfer); |
| 7805 | 1146 | if (data) { |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
13775
diff
changeset
|
1147 | g_free(data->name); |
| 7805 | 1148 | g_free(data); |
| 1149 | xfer->ui_data = NULL; | |
| 1150 | } | |
| 4514 | 1151 | } |
| 1152 | ||
| 1153 | static void | |
|
16263
27e0ef0f38e6
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents:
16254
diff
changeset
|
1154 | pidgin_xfer_add_xfer(PurpleXfer *xfer) |
| 4514 | 1155 | { |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1156 | if (xfer_dialog == NULL) |
|
16263
27e0ef0f38e6
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents:
16254
diff
changeset
|
1157 | xfer_dialog = pidgin_xfer_dialog_new(); |
| 4514 | 1158 | |
|
16263
27e0ef0f38e6
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents:
16254
diff
changeset
|
1159 | pidgin_xfer_dialog_add_xfer(xfer_dialog, xfer); |
| 4514 | 1160 | } |
| 1161 | ||
| 1162 | static void | |
|
16263
27e0ef0f38e6
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents:
16254
diff
changeset
|
1163 | pidgin_xfer_update_progress(PurpleXfer *xfer, double percent) |
| 4514 | 1164 | { |
|
16263
27e0ef0f38e6
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents:
16254
diff
changeset
|
1165 | pidgin_xfer_dialog_update_xfer(xfer_dialog, xfer); |
| 4514 | 1166 | } |
| 1167 | ||
| 1168 | static void | |
|
16263
27e0ef0f38e6
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents:
16254
diff
changeset
|
1169 | pidgin_xfer_cancel_local(PurpleXfer *xfer) |
| 4514 | 1170 | { |
| 7805 | 1171 | if (xfer_dialog) |
|
16263
27e0ef0f38e6
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents:
16254
diff
changeset
|
1172 | pidgin_xfer_dialog_cancel_xfer(xfer_dialog, xfer); |
|
4675
8e0a7b537ca2
[gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents:
4661
diff
changeset
|
1173 | } |
| 4514 | 1174 | |
|
4675
8e0a7b537ca2
[gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents:
4661
diff
changeset
|
1175 | static void |
|
16263
27e0ef0f38e6
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents:
16254
diff
changeset
|
1176 | pidgin_xfer_cancel_remote(PurpleXfer *xfer) |
|
4675
8e0a7b537ca2
[gaim-migrate @ 4986]
Christian Hammond <chipx86@chipx86.com>
parents:
4661
diff
changeset
|
1177 | { |
| 7805 | 1178 | if (xfer_dialog) |
|
16263
27e0ef0f38e6
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents:
16254
diff
changeset
|
1179 | pidgin_xfer_dialog_cancel_xfer(xfer_dialog, xfer); |
| 4514 | 1180 | } |
| 1181 | ||
| 15884 | 1182 | static PurpleXferUiOps ops = |
| 4514 | 1183 | { |
|
16263
27e0ef0f38e6
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents:
16254
diff
changeset
|
1184 | pidgin_xfer_new_xfer, |
|
27e0ef0f38e6
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents:
16254
diff
changeset
|
1185 | pidgin_xfer_destroy, |
|
27e0ef0f38e6
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents:
16254
diff
changeset
|
1186 | pidgin_xfer_add_xfer, |
|
27e0ef0f38e6
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents:
16254
diff
changeset
|
1187 | pidgin_xfer_update_progress, |
|
27e0ef0f38e6
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents:
16254
diff
changeset
|
1188 | pidgin_xfer_cancel_local, |
|
16752
e6bcb1628c57
Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
16263
diff
changeset
|
1189 | pidgin_xfer_cancel_remote, |
|
e6bcb1628c57
Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
16263
diff
changeset
|
1190 | NULL, |
|
e6bcb1628c57
Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
16263
diff
changeset
|
1191 | NULL, |
|
e6bcb1628c57
Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
16263
diff
changeset
|
1192 | NULL, |
|
e6bcb1628c57
Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
16263
diff
changeset
|
1193 | NULL |
| 4514 | 1194 | }; |
| 1195 | ||
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1196 | /************************************************************************** |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1197 | * GTK+ File Transfer API |
|
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1198 | **************************************************************************/ |
| 4514 | 1199 | void |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
1200 | pidgin_xfers_init(void) |
|
5974
00c68435d9f3
[gaim-migrate @ 6421]
Mark Doliner <markdoliner@pidgin.im>
parents:
5966
diff
changeset
|
1201 | { |
|
16123
8b98683319e7
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15931
diff
changeset
|
1202 | purple_prefs_add_none(PIDGIN_PREFS_ROOT "/filetransfer"); |
|
8b98683319e7
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15931
diff
changeset
|
1203 | purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/filetransfer/clear_finished", TRUE); |
|
8b98683319e7
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15931
diff
changeset
|
1204 | purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/filetransfer/keep_open", FALSE); |
|
5974
00c68435d9f3
[gaim-migrate @ 6421]
Mark Doliner <markdoliner@pidgin.im>
parents:
5966
diff
changeset
|
1205 | } |
|
00c68435d9f3
[gaim-migrate @ 6421]
Mark Doliner <markdoliner@pidgin.im>
parents:
5966
diff
changeset
|
1206 | |
|
00c68435d9f3
[gaim-migrate @ 6421]
Mark Doliner <markdoliner@pidgin.im>
parents:
5966
diff
changeset
|
1207 | void |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
1208 | pidgin_xfers_uninit(void) |
| 11010 | 1209 | { |
| 11073 | 1210 | if (xfer_dialog != NULL) |
|
16263
27e0ef0f38e6
Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents:
16254
diff
changeset
|
1211 | pidgin_xfer_dialog_destroy(xfer_dialog); |
| 11010 | 1212 | } |
| 1213 | ||
| 1214 | void | |
|
15692
ecda27df58b9
Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents:
15578
diff
changeset
|
1215 | pidgin_set_xfer_dialog(PidginXferDialog *dialog) |
| 4514 | 1216 | { |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1217 | xfer_dialog = dialog; |
| 4514 | 1218 | } |
| 1219 | ||
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
1220 | PidginXferDialog * |
|
15692
ecda27df58b9
Some more pidgininfication
Daniel Atallah <datallah@pidgin.im>
parents:
15578
diff
changeset
|
1221 | pidgin_get_xfer_dialog(void) |
| 4514 | 1222 | { |
|
4553
3c1735b36327
[gaim-migrate @ 4833]
Christian Hammond <chipx86@chipx86.com>
parents:
4541
diff
changeset
|
1223 | return xfer_dialog; |
| 4514 | 1224 | } |
| 1225 | ||
| 15884 | 1226 | PurpleXferUiOps * |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
1227 | pidgin_xfers_get_ui_ops(void) |
| 4514 | 1228 | { |
| 1229 | return &ops; | |
| 1230 | } |