aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/fs/helper.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/fs/helper.c')
-rw-r--r--src/plugins/fs/helper.c239
1 files changed, 0 insertions, 239 deletions
diff --git a/src/plugins/fs/helper.c b/src/plugins/fs/helper.c
index db35ea03..54110e76 100644
--- a/src/plugins/fs/helper.c
+++ b/src/plugins/fs/helper.c
@@ -95,243 +95,4 @@ int parseTime(const char * t,
95 return OK; 95 return OK;
96} 96}
97 97
98/**
99 * FIXME: convert this into a glade widget!
100 */
101GtkWidget *
102buildSearchTabLabel(GtkWidget *searchPage,
103 const char *title) {
104 GtkWidget *hbox;
105 GtkWidget *label_hbox;
106 GtkWidget *label_ebox;
107 GtkWidget *label;
108 GtkWidget *dummy_label;
109 GtkWidget *close_button;
110 GtkRcStyle *rcstyle;
111 GtkRequisition size;
112 GtkWidget *image;
113 char *short_title;
114 char *orig_title;
115 char *final_title;
116 char *short_title_end;
117 char *tip_title;
118 int short_title_len;
119 static GtkTooltips *searchTabLabelTooltip = NULL;
120 unsigned int *file_count;
121
122 if(!searchTabLabelTooltip)
123 searchTabLabelTooltip = gtk_tooltips_new();
124
125 hbox = gtk_hbox_new (FALSE, 2);
126
127 label_ebox = gtk_event_box_new ();
128 gtk_event_box_set_visible_window (GTK_EVENT_BOX (label_ebox), FALSE);
129 gtk_box_pack_start (GTK_BOX (hbox), label_ebox, TRUE, TRUE, 0);
130
131 label_hbox = gtk_hbox_new (FALSE, 2);
132 gtk_container_add (GTK_CONTAINER (label_ebox), label_hbox);
133
134 /* setup close button */
135 close_button = gtk_button_new ();
136 gtk_button_set_relief (GTK_BUTTON (close_button),
137 GTK_RELIEF_NONE);
138 /* don't allow focus on the close button */
139 gtk_button_set_focus_on_click (GTK_BUTTON (close_button), FALSE);
140
141 /* make it as small as possible */
142 rcstyle = gtk_rc_style_new ();
143 rcstyle->xthickness = 0;
144 rcstyle->ythickness = 0;
145 gtk_widget_modify_style (close_button, rcstyle);
146 gtk_rc_style_unref (rcstyle),
147
148 image = gtk_image_new_from_stock (GTK_STOCK_CLOSE,
149 GTK_ICON_SIZE_MENU);
150 gtk_widget_size_request (image, &size);
151 gtk_widget_set_size_request (close_button, size.width, size.height);
152 gtk_container_add (GTK_CONTAINER (close_button), image);
153 gtk_box_pack_start (GTK_BOX (hbox), close_button, FALSE, FALSE, 0);
154
155 g_signal_connect_swapped(close_button,
156 "clicked",
157 G_CALLBACK (on_closeSearchButton_clicked_fs),
158 searchPage);
159
160 /* truncate the description if needed */
161 if(g_utf8_strlen(title, 16) > 15) {
162 short_title_end = g_utf8_offset_to_pointer (title, 15);
163 short_title_len = short_title_end - title;
164 short_title = g_strndup(title, short_title_len);
165 orig_title = g_strconcat(short_title, "...", NULL);
166 FREE(short_title);
167 } else {
168 orig_title = STRDUP(title);
169 }
170
171 /* setup label */
172 final_title = g_strconcat(orig_title, " (0)", NULL);
173 label = gtk_label_new (final_title);
174 FREE(final_title);
175 98
176 gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
177 gtk_misc_set_padding (GTK_MISC (label), 0, 0);
178 gtk_box_pack_start (GTK_BOX (label_hbox), label, FALSE, FALSE, 0);
179
180 /* add a forced space before the button */
181 dummy_label = gtk_label_new ("");
182 gtk_box_pack_start (GTK_BOX (label_hbox), dummy_label, TRUE, TRUE, 0);
183
184 /* tooltips */
185 gtk_tooltips_set_tip(searchTabLabelTooltip, close_button,
186 _("Close this search"), NULL);
187 tip_title = g_strconcat (_("Search: "), title, NULL);
188 gtk_tooltips_set_tip(searchTabLabelTooltip, label_ebox,
189 tip_title, NULL);
190
191 /* store some references to access count & title later */
192 file_count = malloc(sizeof(unsigned int));
193 *file_count = 0;
194 g_object_set_data(G_OBJECT(searchPage),
195 "file_count", (gpointer) file_count);
196 g_object_set_data(G_OBJECT(searchPage),
197 "label", (gpointer) label);
198 g_object_set_data(G_OBJECT(searchPage),
199 "title", (gpointer) orig_title);
200
201 gtk_widget_show (hbox);
202 gtk_widget_show (label_ebox);
203 gtk_widget_show (label_hbox);
204 gtk_widget_show (label);
205 gtk_widget_show (dummy_label);
206 gtk_widget_show (image);
207 gtk_widget_show (close_button);
208
209 return hbox;
210}
211
212
213
214GtkWidget * makeSearchResultFrame(struct GC_Configuration * cfg,
215 GtkWidget ** treeview,
216 GtkWidget ** anonSpin) {
217 GtkWidget * window;
218 GtkWidget * child;
219 GtkWidget * resultList;
220 GtkTreeViewColumn * column;
221 GtkCellRenderer * renderer;
222 GtkTreeStore * tree;
223 GladeXML * searchXML;
224 int col;
225
226 searchXML
227 = glade_xml_new(getGladeFileName(),
228 "searchResultsFrame",
229 PACKAGE_NAME);
230 connectGladeWithPlugins(searchXML);
231 window = glade_xml_get_widget(searchXML,
232 "searchResultsFrame");
233 resultList = glade_xml_get_widget(searchXML,
234 "searchResults");
235 *anonSpin = glade_xml_get_widget(searchXML,
236 "downloadAnonymitySpinButton");
237 if (treeview != NULL)
238 (*treeview) = GTK_WIDGET(GTK_TREE_VIEW(resultList));
239 tree =
240 gtk_tree_store_new(SEARCH_NUM,
241 G_TYPE_STRING, /* name */
242 G_TYPE_UINT64, /* size */
243 G_TYPE_STRING, /* human-readable size */
244 G_TYPE_STRING, /* mime-type */
245 G_TYPE_STRING, /* meta-data (some) */
246 GDK_TYPE_PIXBUF, /* preview */
247 G_TYPE_POINTER, /* url */
248 G_TYPE_POINTER, /* meta */
249 G_TYPE_POINTER); /* internal: download info/NULL */
250 gtk_tree_view_set_model(GTK_TREE_VIEW(resultList),
251 GTK_TREE_MODEL(tree));
252 renderer = gtk_cell_renderer_text_new();
253 col = gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(resultList),
254 -1,
255 _("Name"),
256 renderer,
257 "text", SEARCH_NAME,
258 NULL);
259 column = gtk_tree_view_get_column(GTK_TREE_VIEW(resultList),
260 col - 1);
261 gtk_tree_view_column_set_resizable(column, TRUE);
262 gtk_tree_view_column_set_clickable(column, TRUE);
263 gtk_tree_view_column_set_reorderable(column, TRUE);
264 gtk_tree_view_column_set_sort_column_id(column, SEARCH_NAME);
265 /*gtk_tree_view_column_set_sort_indicator(column, TRUE);*/
266 renderer = gtk_cell_renderer_text_new();
267 g_object_set (renderer, "xalign", 1.00, NULL);
268 col = gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(resultList),
269 -1,
270 _("Size"),
271 renderer,
272 "text", SEARCH_HSIZE,
273 NULL);
274 column = gtk_tree_view_get_column(GTK_TREE_VIEW(resultList),
275 col - 1);
276 gtk_tree_view_column_set_resizable(column, TRUE);
277 gtk_tree_view_column_set_clickable(column, TRUE);
278 gtk_tree_view_column_set_reorderable(column, TRUE);
279 gtk_tree_view_column_set_sort_column_id(column, SEARCH_SIZE);
280 /*gtk_tree_view_column_set_sort_indicator(column, TRUE);*/
281
282 renderer = gtk_cell_renderer_text_new();
283 col = gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(resultList),
284 -1,
285 _("Mime-type"),
286 renderer,
287 "text", SEARCH_MIME,
288 NULL);
289 column = gtk_tree_view_get_column(GTK_TREE_VIEW(resultList),
290 col - 1);
291 gtk_tree_view_column_set_resizable(column, TRUE);
292 gtk_tree_view_column_set_clickable(column, TRUE);
293 gtk_tree_view_column_set_reorderable(column, TRUE);
294 gtk_tree_view_column_set_sort_column_id(column, SEARCH_MIME);
295 /*gtk_tree_view_column_set_sort_indicator(column, TRUE);*/
296
297 renderer = gtk_cell_renderer_text_new();
298 col = gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(resultList),
299 -1,
300 _("Meta-data"),
301 renderer,
302 "text", SEARCH_DESC,
303 NULL);
304 column = gtk_tree_view_get_column(GTK_TREE_VIEW(resultList),
305 col - 1);
306 gtk_tree_view_column_set_resizable(column, TRUE);
307 gtk_tree_view_column_set_clickable(column, TRUE);
308 gtk_tree_view_column_set_reorderable(column, TRUE);
309 gtk_tree_view_column_set_sort_column_id(column, SEARCH_DESC);
310 /*gtk_tree_view_column_set_sort_indicator(column, TRUE);*/
311 if (YES != GC_get_configuration_value_yesno(cfg,
312 "GNUNET-GTK",
313 "DISABLE-PREVIEWS",
314 NO)) {
315 renderer = gtk_cell_renderer_pixbuf_new();
316 col = gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(resultList),
317 -1,
318 _("Preview"),
319 renderer,
320 "pixbuf", SEARCH_PIXBUF,
321 NULL);
322 column = gtk_tree_view_get_column(GTK_TREE_VIEW(resultList),
323 col - 1);
324 gtk_tree_view_column_set_resizable(column, TRUE);
325 gtk_tree_view_column_set_reorderable(column, TRUE);
326 gtk_tree_view_column_set_resizable(gtk_tree_view_get_column(GTK_TREE_VIEW(resultList),
327 col - 1),
328 TRUE);
329 }
330 child = gtk_bin_get_child(GTK_BIN(window));
331 gtk_widget_ref(GTK_WIDGET(child));
332 gtk_container_remove(GTK_CONTAINER(window),
333 child);
334 gtk_widget_destroy(window);
335 UNREF(searchXML);
336 return child;
337}