diff options
Diffstat (limited to 'src/plugins/fs/helper.c')
-rw-r--r-- | src/plugins/fs/helper.c | 239 |
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 | */ | ||
101 | GtkWidget * | ||
102 | buildSearchTabLabel(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 | |||
214 | GtkWidget * 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 | } | ||