1 2006-04-30 Kristian Rietveld <kris@imendio.com>
3 * gtk/gtkfilesystem.[ch] (gtk_file_info_render_icon): remove the
5 (gtk_file_info_get_icon_name): new function,
6 (gtk_file_system_volume_get_icon_name): new function,
7 (gtk_file_system_volume_render_icon): refactor to use
8 get_icon_name() and render the icon on the fly.
10 * gtk/gtkfilesystemunix.c (gtk_file_system_unix_volume_render_icon),
11 (gtk_file_system_unix_volume_get_icon_name): reflect updates in
12 file system interface,
13 (get_fallback_icon): remove, along with icon caching code.
15 * gtk/gtk.symbols: updated.
17 2006-04-30 Kristian Rietveld <kris@imendio.com>
19 * gtk/gtkfilesystemmodel.c (got_root_folder_cb), (ref_path_cb),
20 (get_children_get_folder_cb): don't leak the handle,
21 (got_root_folder_cb), (get_children_get_folder_cb): emit
22 row-inserted for the newly added nodes.
24 2006-04-30 Kristian Rietveld <kris@imendio.com>
26 * gtk/gtkfilechooserdefault.c (file_list_drag_data_select_uris),
27 (file_list_drag_data_received_get_info_cb),
28 (file_list_drag_data_received_cb): refactor code for selecting
29 multiple uris into file_list_drag_data_select_uris().
31 2006-04-23 Kristian Rietveld <kris@imendio.com>
33 * gtk/gtkfilechooserbutton.c (dnd_select_folder_get_info_cb): don't
35 (change_icon_theme_get_info_cb), (set_info_get_info_cb),
36 (model_add_special_get_info_cb), (update_label_get_info_cb): ditto.
38 * gtk/gtkfilechooserdefault.c (shortcuts_reload_icons_get_info_cb):
39 don't leak the handle,
40 (get_file_info_finished), (edited_idle_create_folder_cb),
41 (file_list_drag_data_received_get_info_cb),
42 (show_and_select_paths_get_folder_cb),
43 (update_current_folder_get_info_cb), (add_shortcut_get_info_cb),
44 (confirmation_confirm_get_info_cb), (action_create_folder_cb),
45 (save_entry_get_info_cb), (shortcuts_activate_volume_mount_cb),
46 (shortcuts_activate_get_info_cb), (update_from_entry_get_info_cb):
49 * gtk/gtkfilechooserentry.c (load_directory_get_folder_callback):
50 don't leak the handle.
52 * gtk/gtkpathbar.c (set_button_image_get_info_cb),
53 (gtk_path_bar_get_info_callback): don't leak the handle.
55 2006-04-23 Kristian Rietveld <kris@imendio.com>
59 * gtk/gtkfilechooserdefault.c (shortcuts_reload_icons_get_info_cb):
60 don't forget to unref data->impl at the end.
62 2006-04-23 Kristian Rietveld <kris@imendio.com>
66 * gtk/gtkfilechooserdialog.c (response_cb): set response_requested
67 to FALSE after stopping emission of the response signal.
69 2006-03-16 Kristian Rietveld <kris@imendio.com>
73 * gtk/gtkfilechooserprivate.h: remove idle_finished_loading_source
74 from GtkFileSystemModel.
76 * gtk/gtkfilesystemmodel.c (gtk_file_system_model_finalize): remove
77 idle_finished_loading_source,
78 (idle_finished_loading_cb), (queue_finished_loading): removed,
79 (got_root_folder_cb): save a list walk, immediately emit
80 finished-loading and don't queue it, since we are already in an
81 idle here, always list_children() so the children the folder already
83 (_gtk_file_system_model_new): handle the case where NULL is
84 returned by _get_folder(),
85 (_gtk_file_system_model_path_do): remove comment, and append the
86 new handle to the list, don't try to remove,
87 (get_children_get_folder_cb): save a list walk, remove the dummy
88 child if the _get_folder() call fails or is cancelled.
90 2006-03-14 Kristian Rietveld <kris@imendio.com>
92 More suggestions from Federico.
94 * gtk/gtkfilesystemunix.c (gtk_file_system_unix_create_folder):
95 remove check for filename_is_root(), since we never hit that code
96 and else mkdir will fail anyway,
97 (gtk_file_system_unix_create_folder): fixup parent folder refresh
100 2006-03-14 Kristian Rietveld <kris@imendio.com>
102 * gtk/gtkfilesystemunix.c (read_hidden_file), (fill_in_hidden),
103 (get_is_hidden_for_file): factor out g_file_get_contents() code
104 in read_hidden_file(). (Federico Mena Quintero).
106 2006-03-14 Kristian Rietveld <kris@imendio.com>
108 Icon name code suggestions by Federico Mena Quintero.
110 * gtk/gtkfilesystemunix.c: add GTK_FILE_INFO_ICON to
112 (get_fallback_icon_name), (get_fallback_icon),
113 (get_icon_name_for_directory), (get_special_icon_name): get rid
115 (get_icon_type_from_path): add a statbuf argument and use the
116 statbuf when folder_unix is NULL,
117 (create_file_info): adapt to work with above changes.
119 2006-03-14 Kristian Rietveld <kris@imendio.com>
121 * gtk/gtkfilesystemunix.c (gtk_file_system_unix_get_info): path
122 is NULL is an error here (gtk_file_system_get_info() already guards
124 (gtk_file_system_unix_get_info): move basename creation to just
125 before create_file_info(). (Federico Mena Quintero).
127 2006-03-14 Kristian Rietveld <kris@imendio.com>
129 * gtk/gtkfilesystemunix.c (struct _GtkFileFolderUnix): add
130 load_folder_id field,
131 (load_folder): add thread enter/leave construct, set load_folder_id
132 to zero since we have the idle removed when we return,
133 (gtk_file_system_unix_get_folder): initialize load_folder_id to 0
134 and store the source id of the load_folder idle,
135 (gtk_file_folder_unix_finalize): remove the load_folder idle
136 if necessary. (Federico Mena Quintero).
138 2006-03-14 Kristian Rietveld <kris@imendio.com>
140 * gtk/gtkfilechooser.c (gtk_file_chooser_get_current_folder): return
141 NULL if there is no current folder path.
143 * gtk/gtkfilechooserdefault.c (gtk_file_chooser_default_map): we
144 reload the current folder if there is one, else we continue the
147 2006-03-14 Kristian Rietveld <kris@imendio.com>
149 Couple of fixes from Markku Vire.
151 * gtk/gtkfilesystem.c (gtk_file_info_copy): also strdup icon_name
154 * gtk/gtkfilesystemunix.c (gtk_file_system_unix_create_folder):
155 initialize error to NULL,
156 (gtk_file_folder_unix_list_children): return an empty list for now if
157 we couldn't read the directory.
159 2005-12-23 Kristian Rietveld <kris@imendio.com>
161 * gtk/gtkfilechooserdefault.c (update_current_folder_get_info_cb),
162 (gtk_file_chooser_default_update_current_folder): set and unset
163 busy cursor while checking whether the given path is a folder.
165 2005-12-23 Kristian Rietveld <kris@imendio.com>
167 * gtk/gtkfilesystem.h: change the GtkFileInfo argument of the
168 GetInfoCallback to be const.
170 * gtk/gtkfilechooserbutton.c, gtk/gtkfilechooserdefault.c,
171 gtk/gtkpathbar.c: changes functions to reflect the above change.
173 2005-12-23 Kristian Rietveld <kris@imendio.com>
175 * gtk/gtkfilechooserdefault.c, gtk/gtkfilechooserprivate.h: keep track
176 of handles, cancel all pending operations on dispose.
178 2005-12-23 Kristian Rietveld <kris@imendio.com>
180 * gtk/gtkfilechooserprivate.h (struct _GtkFileSystemModel): add
181 pending_handles field,
182 (struct _FileModelNode): add load_pending flag.
184 * gtk/gtkfilesystemmodel.c (gtk_file_system_model_dispose): introduce,
185 cancel all pending operations here,
186 (got_root_folder_cb), (_gtk_file_system_model_new), (ref_path_cb),
187 (_gtk_file_system_model_path_do): keep track of all pending
188 operations, handle cancelled operations.
190 2005-12-23 Kristian Rietveld <kris@imendio.com>
192 * gtk/gtkfilechooserbutton.c (gtk_file_chooser_button_finalize),
193 (gtk_file_chooser_button_destroy): move all handle cancellations
194 and object unrefs to destroy.
196 * gtk/gtkpathbar.c (gtk_path_bar_finalize), (gtk_path_bar_dispose):
199 * gtk/gtkfilechooserentry.c (gtk_file_chooser_entry_class_init):
201 (gtk_file_chooser_entry_dispose): cancel handles and unrefs
202 objects here instead of finalize.
204 2005-12-23 Kristian Rietveld <kris@imendio.com>
206 * gtk/gtkfilesystem.c (get_cached_icon): check if "name" is an
207 absolute path, if so load the icon from that file.
209 * gtk/gtkfilesystemunix.c (gtk_file_system_unix_get_folder): fix
212 2005-12-21 Kristian Rietveld <kris@imendio.com>
214 * gtk/gtkfilesystemunix.c (gtk_file_system_unix_get_folder): remove
215 the FIXME since it doesn't make sense, when we return a cached
216 folder we won't emit finished-loading either,
217 (gtk_file_system_unix_create_folder): remove unused variable,
218 (gtk_file_folder_unix_list_children): remove unused code,
219 (get_is_hidden_for_file): new function,
220 (create_file_info): also handle getting is_hidden when called
221 without a folder unix (from _system_get_info() for example).
223 2005-12-20 Kristian Rietveld <kris@imendio.com>
225 * gtk/gtkfilechooserdefault.c (check_is_folder): fully removed!
227 (check_save_entry): add is_folder argument,
228 (gtk_file_chooser_default_get_paths): update check_save_entry() call,
229 (get_display_name_for_folder): removed,
230 (confirmation_confirm_get_info_cb): new function which will
231 handle the confirmation dialog now we have all information for it,
232 (should_respond_after_confirm_overwrite): replace the call to
233 get_display_name_for_folder() with an asynchronous solution,
234 (action_create_folder_cb): request dialog response on successfull
236 (gtk_file_chooser_default_should_respond): update call to
237 check_save_entry(); replace the check is folder call for "path"
238 by just using the is_folder return value from check_save_entry();
239 replaced the check is folder call for "parent_path" with an
240 asynchronous setup, remainder of that work is now done in
241 save_entry_get_info_cb(),
242 (save_entry_get_info_cb): new function.
244 * gtk/gtkfilechoosermebed.[ch]: add response-requested signal.
246 * gtk/gtkfilechooserdialog.c, gtk/gtkfilechooserprivate.h: handle
247 response_requested signal.
249 * gtk/gtkfilechooserentry.[ch]
250 (_gtk_file_chooser_entry_get_is_folder): new function.
252 2005-12-20 Kristian Rietveld <kris@imendio.com>
254 * gtk/gtkfilechooserdefault.c (ref_path_cb): when called with
255 !folder, check if node is the node we are looking for (can be
256 triggered when we call ref_path_cb ourselves after a find_child_node),
257 (_gtk_file_system_model_path_do): introduce parent_node field;
258 after finding a child node in a loaded parent node, don't forget
260 (get_children_get_folder_cb): don't forget to set data->node->folder
261 to the newly acquired folder.
263 2005-12-20 Kristian Rietveld <kris@imendio.com>
265 * gtk/gtkfilechooserdefault.c (show_and_select_paths_get_folder_cb):
266 handle case where the folder we get already finished loading.
268 * gtk/gtkfilesystemmodel.c (ref_path_cb),
269 (_gtk_file_system_model_path_do): make this work.
271 2005-12-19 Kristian Rietveld <kris@imendio.com>
273 * gtk/gtkfilechooserdefault.c (shortcuts_update_count): modify
274 in such a way that it can also negatively update the count on
276 (get_file_info_finished): handle failures, update save folder
277 combo box on success,
278 (shortcuts_insert_path): change the boolean return value into a
279 void one, also refilter the model and update the save folder combo
280 box for the non-asynchronous case,
281 (shortcuts_append_home), (shortcuts_append_desktop),
282 (shortcuts_add_volumes), (shortcuts_add_current_folder),
283 (add_shortcuts_get_info_cb): adapt to shortcuts_insert_path() updates.
285 2005-12-19 Kristian Rietveld <kris@imendio.com>
287 * gtk/gtkpathbar.[ch]: add handle fields to ButtonData and
288 GtkPathBar; do correct handle bookkeeping.
290 * gtk/gtkfilesystemunix.c (load_folder),
291 (gtk_file_system_unix_get_folder),
292 (gtk_file_folder_unix_is_finished_loading): add is_finished_loading
293 field to GtkFileFolderUnix, which is set to true once we are
294 really finished with loading (previous assumption that we are
295 always finshed loading is not true anymore).
297 * gtk/gtkfilesystemmodel.c (got_root_folder_cb): if the folder is
298 finished loading, list the children and update the root level.
300 * gtk/gtkfilechooserdefault.c (update_current_folder_get_info_cb):
303 2005-12-16 Kristian Rietveld <kris@imendio.com>
305 * gtk/gtkfilesystemunix.c: always call the callback, even when
306 cancelled; ref handles passed to the callback queue functions;
307 don't set cancelled to TRUE in _cancel_operation(), since operations
308 in this backend are always completed,
309 (get_special_icon_name): don't strdup the value of
310 get_icon_name_for_directory() again.
312 * gtk/gtkfilechooserbutton.c: adapt to new cancellation policy;
313 reference all objects which are passed as callback arguments; in the
314 callback check if the handles match.
316 * gtk/gtkfilechooserentry.c: likewise.
318 * gtk/gtkfilechooserdefault.c: likewise. Also changed the shortcut
319 loading code to be more like the code in GtkFileChooserButton, where
320 we store all handles in the model and have model_row_free_data
321 cancel any pending operations,
322 (shortcuts_model_create): copy the error.
324 * gtk/gtkfilechooserprivate.h (struct _GtkFileChooserDefault): remove
325 loading_volumes and loading_bookmarks fields.
327 * gtk/gtkfilesystem.c (gtk_file_info_free): free icon_name here...
329 2005-12-13 Kristian Rietveld <kris@imendio.com>
331 * gtk/gtkfilechooserdefault.c (edited_idle_create_folder_cb): fix
334 * gtk/gtkfilesystemunix.c (dispatch_create_folder_callback),
335 (queue_create_folder_callback): need to copy/free the path,
336 (gtk_file_system_unix_create_folder): put the "reget folder" hack
337 back in, though it's working different now.
339 2005-12-13 Kristian Rietveld <kris@imendio.com>
341 * gtk/gtkfilechooserbutton.c (gtk_file_chooser_button_finalize),
342 (dnd_select_folder_get_info_cb), (gtk_file_chooser_drag_data_received),
343 (change_icon_theme_get_info_cb), (change_icon_theme),
344 (model_add_special_get_info_cb), (model_add_special),
345 (update_label_get_info_cb), (update_label_and_image): cancel existing
346 operations, if any; added apprioriate fields to
347 GtkFileChooserButtonPrivate.
349 2005-12-13 Kristian Rietveld <kris@imendio.com>
351 * gtk/gtkfilechooserentry.c (gtk_file_chooser_entry_finalize): if
352 there's a folder loading, cancel the operation,
353 (load_directory_get_folder_callback): set the loading folder handle
355 (load_directory_callback): cancel any currently loading folders
356 before starting a new get folder operation.
358 2005-12-13 Kristian Rietveld <kris@imendio.com>
360 * gtk/gtkfilechooserdefault.c (shortcuts_insert_path): don't overwrite
361 data if it's already set (for example by the "is volume" case).
363 2005-12-13 Kristian Rietveld <kris@imendio.com>
365 * gtk/gtkfilechooserbutton.c (set_info_get_info_cb),
366 (set_info_for_path_at_iter): store a row reference in the temporary
367 data structure and not an iter,
368 (model_add_special), (model_update_current_folder),
369 (gtk_file_chooser_button_add_shorcut_folder): remove unused pixbuf
372 2005-12-13 Kristian Rietveld <kris@imendio.com>
374 * gtk/gtkfilechooserdefault.c (get_file_info_finished),
375 (shortcuts_insert_path): replace gtk_file_system_render_icon() call
376 with gtk_file_system_get_file_info(),
377 (gtk_file_chooser_default_add_shortcut_folder),
378 (gtk_file_chooser_default_remove_shortcut_folder): handle shortcuts
379 which are still loading.
381 * gtk/gtkfilechooserprivate.h: add shortcuts_loading field to
382 struct _GtkFileChooserDefault.
384 * gtk/gtkfilechooserbutton.c (set_info_get_info_cb),
385 (set_info_for_path_at_iter), (model_free_row_data): keep handle
386 and path together; now supports adding/removing shortcuts
387 which are still loading.
389 2005-12-13 Kristian Rietveld <kris@imendio.com>
391 * gtk/gtkfilesystem.c: make the cancelled field an GObject property.
393 2005-12-13 Kristian Rietveld <kris@imendio.com>
395 * gtk/gtkfilesystem.h: make the GError argument in the callbacks
398 * gtk/gtkfilechooserbutton.c: update callbacks,
399 * gtk/gtkfilechooserentry.c: likewise,
400 * gtk/gtkfilechooserdefault.c: likewise,
401 * gtk/gtkfilesystemmodel.c: likewise,
402 * gtk/gtkpathbar.c: likewise.
404 * gtk/gtkfilechooserdefault.c (edited_idle_create_folder_cb): copy
405 the error which will be passed to error_creating_folder_dialog(),
406 (action_create_folder_cb): likewise,
407 (file_list_drag_data_received_get_info_cb): add forgotten GError
410 2005-12-13 Kristian Rietveld <kris@imendio.com>
412 * gtk/gtkpathbar.c (get_button_image), (set_button_image),
413 (set_button_image_get_info_cb),
414 (gtk_path_bar_update_button_appearance): update to new icon
417 2005-12-09 Kristian Rietveld <kris@imendio.com>
419 * gtk/gtkfilechooserdefault.c (file_list_drag_data_received),
420 (gtk_file_chooser_default_add_shortcut_folder),
421 (shortcuts_activate_get_info_cb): replace synchronous check_is_folder
422 calls with an async gtk_file_system_get_info() solution.
424 2005-12-09 Kristian Rietveld <kris@imendio.com>
426 * gtk/gtkfilesystem.c (icon_cache_element_free), (icon_theme_changed),
427 (get_cached_icon), (gtk_file_info_render_icon): implement pixbuf
428 caching as found in the file system backends.
430 2005-12-09 Kristian Rietveld <kris@imendio.com>
432 * gtk/gtk.symbols: updated.
434 * gtk/gtkfilesystem.[ch] (struct GtkFileInfo): added icon_name field,
435 (enum GtkFileInfoType): added GTK_FILE_INFO_ICON,
436 (gtk_file_info_set_icon_name): new function,
437 (gtk_file_info_render_icon): new function,
438 (gtk_file_system_render_icon): removed.
440 * gtk/gtkfilesystemunix.c (gtk_file_system_unix_render_icon): removed,
441 (create_file_info): fill icon_name field if required,
442 (get_*_icon): modified to suit create_file_info() better.
444 * gtk/gtkfilechooserbutton.c: modified to use
445 gtk_file_info_render_icon() instead of gtk_file_system_render_icon().
447 * gtk/gtkfilechooserdefault.c: likewise.
449 2005-12-06 Kristian Rietveld <kris@imendio.com>
451 * gtk/gtkfilechooserdefault.c (get_file_info_finished),
452 (update_current_folder_get_info_cb): fix mem leaks.
454 * gtk/gtkfilesystemunix.c (gtk_file_system_unix_get_info): ditto.
456 * gtk/gtkpathbar.c (gtk_path_bar_set_path_finish): ditto.
458 2005-12-06 Kristian Rietveld <kris@imendio.com>
460 * gtk/gtkfilechooserbutton.c (dnd_select_folder_get_info_cb),
461 (gtk_file_chooser_button_drag_data_received): make asynchronous,
462 (update_label_and_image): remove unused variable.
464 * gtk/gtkfilechooserdefault.c
465 (gtk_file_chooser_default_update_current_folder): split in two
466 functions, so we can have the is_folder check back.
467 * gtk/gtkfilechooserprivate.h: add update_current_folder_handle
470 2005-12-06 Kristian Rietveld <kris@imendio.com>
472 * gtk/gtkfilechooserdefault.c (show_and_select_paths): fixed a typo.
474 2005-12-05 Federico Mena Quintero <federico@ximian.com>
478 * gtk/gtkfilechooserdefault.c (trap_activate_cb): "event->state &
479 modifiers", not "event->state && modifiers". Patch by Sadrul
480 Habib Chowdhury <imadil@gmail.com>. Fixes bug #323073.
482 2005-12-06 Kristian Rietveld <kris@imendio.com>
484 Beginnings of an asynchronous file chooser.
486 * gtk/gtkfilechooserbutton.c: display name and the is folder property
487 are now asynchronously set using set_info_for_at_path_iter(), the
488 is folder property is now also stored in the tree model.
490 * gtk/gtkfilechooserdefault.c: lots of changes to the shortcuts
491 model code to make it operate asynchronously, check_is_folder() has
492 been "disabled" for now, all other synchronous calls were
493 replaced with asychronous ones.
495 * gtk/gtkfilechooserentry.c: update call to
496 gtk_file_system_get_folder().
498 * gtk/gtkfilechooserprivate.h: added two fields.
500 * gtk/gtkfilesystem.[ch]: for about 85% changed to the changes
501 outlined in the proposal discussed on gtk-devel-list.
503 * gtk/gtkfilesystemmodel.[ch]: updated all asynchronous calls,
504 _gtk_file_system_model_path_do() basically had to be rewritten
505 (and I still need to finish that).
507 * gtk/gtkfilesystemunix.c: changed to be compatible with the new
508 GtkFileSystem interface.
510 * gtk/gtkpathbar.c (button_clicked_cb): block/unblock the
511 button_clicked_cb callback around the call to
512 gtk_toggle_button_set_active(), avoids button_clicked_cb getting
514 (_gtk_path_bar_set_path): refactored to be asynchronous.