annotate src/gtkft.c @ 13598:41e40b323dc3

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