diff options
Diffstat (limited to 'ChangeLog.gtk-async-file-chooser')
-rw-r--r-- | ChangeLog.gtk-async-file-chooser | 514 |
1 files changed, 514 insertions, 0 deletions
diff --git a/ChangeLog.gtk-async-file-chooser b/ChangeLog.gtk-async-file-chooser new file mode 100644 index 000000000..916042269 --- /dev/null +++ b/ChangeLog.gtk-async-file-chooser @@ -0,0 +1,514 @@ +2006-04-30 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkfilesystem.[ch] (gtk_file_info_render_icon): remove the + caching code, + (gtk_file_info_get_icon_name): new function, + (gtk_file_system_volume_get_icon_name): new function, + (gtk_file_system_volume_render_icon): refactor to use + get_icon_name() and render the icon on the fly. + + * gtk/gtkfilesystemunix.c (gtk_file_system_unix_volume_render_icon), + (gtk_file_system_unix_volume_get_icon_name): reflect updates in + file system interface, + (get_fallback_icon): remove, along with icon caching code. + + * gtk/gtk.symbols: updated. + +2006-04-30 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkfilesystemmodel.c (got_root_folder_cb), (ref_path_cb), + (get_children_get_folder_cb): don't leak the handle, + (got_root_folder_cb), (get_children_get_folder_cb): emit + row-inserted for the newly added nodes. + +2006-04-30 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkfilechooserdefault.c (file_list_drag_data_select_uris), + (file_list_drag_data_received_get_info_cb), + (file_list_drag_data_received_cb): refactor code for selecting + multiple uris into file_list_drag_data_select_uris(). + +2006-04-23 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkfilechooserbutton.c (dnd_select_folder_get_info_cb): don't + leak handle, + (change_icon_theme_get_info_cb), (set_info_get_info_cb), + (model_add_special_get_info_cb), (update_label_get_info_cb): ditto. + + * gtk/gtkfilechooserdefault.c (shortcuts_reload_icons_get_info_cb): + don't leak the handle, + (get_file_info_finished), (edited_idle_create_folder_cb), + (file_list_drag_data_received_get_info_cb), + (show_and_select_paths_get_folder_cb), + (update_current_folder_get_info_cb), (add_shortcut_get_info_cb), + (confirmation_confirm_get_info_cb), (action_create_folder_cb), + (save_entry_get_info_cb), (shortcuts_activate_volume_mount_cb), + (shortcuts_activate_get_info_cb), (update_from_entry_get_info_cb): + ditto. + + * gtk/gtkfilechooserentry.c (load_directory_get_folder_callback): + don't leak the handle. + + * gtk/gtkpathbar.c (set_button_image_get_info_cb), + (gtk_path_bar_get_info_callback): don't leak the handle. + +2006-04-23 Kristian Rietveld <kris@imendio.com> + + Review. + + * gtk/gtkfilechooserdefault.c (shortcuts_reload_icons_get_info_cb): + don't forget to unref data->impl at the end. + +2006-04-23 Kristian Rietveld <kris@imendio.com> + + Review, continued. + + * gtk/gtkfilechooserdialog.c (response_cb): set response_requested + to FALSE after stopping emission of the response signal. + +2006-03-16 Kristian Rietveld <kris@imendio.com> + + More review work. + + * gtk/gtkfilechooserprivate.h: remove idle_finished_loading_source + from GtkFileSystemModel. + + * gtk/gtkfilesystemmodel.c (gtk_file_system_model_finalize): remove + idle_finished_loading_source, + (idle_finished_loading_cb), (queue_finished_loading): removed, + (got_root_folder_cb): save a list walk, immediately emit + finished-loading and don't queue it, since we are already in an + idle here, always list_children() so the children the folder already + has are returned, + (_gtk_file_system_model_new): handle the case where NULL is + returned by _get_folder(), + (_gtk_file_system_model_path_do): remove comment, and append the + new handle to the list, don't try to remove, + (get_children_get_folder_cb): save a list walk, remove the dummy + child if the _get_folder() call fails or is cancelled. + +2006-03-14 Kristian Rietveld <kris@imendio.com> + + More suggestions from Federico. + + * gtk/gtkfilesystemunix.c (gtk_file_system_unix_create_folder): + remove check for filename_is_root(), since we never hit that code + and else mkdir will fail anyway, + (gtk_file_system_unix_create_folder): fixup parent folder refresh + code. + +2006-03-14 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkfilesystemunix.c (read_hidden_file), (fill_in_hidden), + (get_is_hidden_for_file): factor out g_file_get_contents() code + in read_hidden_file(). (Federico Mena Quintero). + +2006-03-14 Kristian Rietveld <kris@imendio.com> + + Icon name code suggestions by Federico Mena Quintero. + + * gtk/gtkfilesystemunix.c: add GTK_FILE_INFO_ICON to + STAT_NEEDED_MASK, + (get_fallback_icon_name), (get_fallback_icon), + (get_icon_name_for_directory), (get_special_icon_name): get rid + of strdups, + (get_icon_type_from_path): add a statbuf argument and use the + statbuf when folder_unix is NULL, + (create_file_info): adapt to work with above changes. + +2006-03-14 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkfilesystemunix.c (gtk_file_system_unix_get_info): path + is NULL is an error here (gtk_file_system_get_info() already guards + path = NULL), + (gtk_file_system_unix_get_info): move basename creation to just + before create_file_info(). (Federico Mena Quintero). + +2006-03-14 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkfilesystemunix.c (struct _GtkFileFolderUnix): add + load_folder_id field, + (load_folder): add thread enter/leave construct, set load_folder_id + to zero since we have the idle removed when we return, + (gtk_file_system_unix_get_folder): initialize load_folder_id to 0 + and store the source id of the load_folder idle, + (gtk_file_folder_unix_finalize): remove the load_folder idle + if necessary. (Federico Mena Quintero). + +2006-03-14 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkfilechooser.c (gtk_file_chooser_get_current_folder): return + NULL if there is no current folder path. + + * gtk/gtkfilechooserdefault.c (gtk_file_chooser_default_map): we + reload the current folder if there is one, else we continue the + still pending load. + +2006-03-14 Kristian Rietveld <kris@imendio.com> + + Couple of fixes from Markku Vire. + + * gtk/gtkfilesystem.c (gtk_file_info_copy): also strdup icon_name + and display_key. + + * gtk/gtkfilesystemunix.c (gtk_file_system_unix_create_folder): + initialize error to NULL, + (gtk_file_folder_unix_list_children): return an empty list for now if + we couldn't read the directory. + +2005-12-23 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkfilechooserdefault.c (update_current_folder_get_info_cb), + (gtk_file_chooser_default_update_current_folder): set and unset + busy cursor while checking whether the given path is a folder. + +2005-12-23 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkfilesystem.h: change the GtkFileInfo argument of the + GetInfoCallback to be const. + + * gtk/gtkfilechooserbutton.c, gtk/gtkfilechooserdefault.c, + gtk/gtkpathbar.c: changes functions to reflect the above change. + +2005-12-23 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkfilechooserdefault.c, gtk/gtkfilechooserprivate.h: keep track + of handles, cancel all pending operations on dispose. + +2005-12-23 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkfilechooserprivate.h (struct _GtkFileSystemModel): add + pending_handles field, + (struct _FileModelNode): add load_pending flag. + + * gtk/gtkfilesystemmodel.c (gtk_file_system_model_dispose): introduce, + cancel all pending operations here, + (got_root_folder_cb), (_gtk_file_system_model_new), (ref_path_cb), + (_gtk_file_system_model_path_do): keep track of all pending + operations, handle cancelled operations. + +2005-12-23 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkfilechooserbutton.c (gtk_file_chooser_button_finalize), + (gtk_file_chooser_button_destroy): move all handle cancellations + and object unrefs to destroy. + + * gtk/gtkpathbar.c (gtk_path_bar_finalize), (gtk_path_bar_dispose): + likewise. + + * gtk/gtkfilechooserentry.c (gtk_file_chooser_entry_class_init): + add dispose, + (gtk_file_chooser_entry_dispose): cancel handles and unrefs + objects here instead of finalize. + +2005-12-23 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkfilesystem.c (get_cached_icon): check if "name" is an + absolute path, if so load the icon from that file. + + * gtk/gtkfilesystemunix.c (gtk_file_system_unix_get_folder): fix + the build. + +2005-12-21 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkfilesystemunix.c (gtk_file_system_unix_get_folder): remove + the FIXME since it doesn't make sense, when we return a cached + folder we won't emit finished-loading either, + (gtk_file_system_unix_create_folder): remove unused variable, + (gtk_file_folder_unix_list_children): remove unused code, + (get_is_hidden_for_file): new function, + (create_file_info): also handle getting is_hidden when called + without a folder unix (from _system_get_info() for example). + +2005-12-20 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkfilechooserdefault.c (check_is_folder): fully removed! + woo!, + (check_save_entry): add is_folder argument, + (gtk_file_chooser_default_get_paths): update check_save_entry() call, + (get_display_name_for_folder): removed, + (confirmation_confirm_get_info_cb): new function which will + handle the confirmation dialog now we have all information for it, + (should_respond_after_confirm_overwrite): replace the call to + get_display_name_for_folder() with an asynchronous solution, + (action_create_folder_cb): request dialog response on successfull + folder creation, + (gtk_file_chooser_default_should_respond): update call to + check_save_entry(); replace the check is folder call for "path" + by just using the is_folder return value from check_save_entry(); + replaced the check is folder call for "parent_path" with an + asynchronous setup, remainder of that work is now done in + save_entry_get_info_cb(), + (save_entry_get_info_cb): new function. + + * gtk/gtkfilechoosermebed.[ch]: add response-requested signal. + + * gtk/gtkfilechooserdialog.c, gtk/gtkfilechooserprivate.h: handle + response_requested signal. + + * gtk/gtkfilechooserentry.[ch] + (_gtk_file_chooser_entry_get_is_folder): new function. + +2005-12-20 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkfilechooserdefault.c (ref_path_cb): when called with + !folder, check if node is the node we are looking for (can be + triggered when we call ref_path_cb ourselves after a find_child_node), + (_gtk_file_system_model_path_do): introduce parent_node field; + after finding a child node in a loaded parent node, don't forget + to call ref_path_cb, + (get_children_get_folder_cb): don't forget to set data->node->folder + to the newly acquired folder. + +2005-12-20 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkfilechooserdefault.c (show_and_select_paths_get_folder_cb): + handle case where the folder we get already finished loading. + + * gtk/gtkfilesystemmodel.c (ref_path_cb), + (_gtk_file_system_model_path_do): make this work. + +2005-12-19 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkfilechooserdefault.c (shortcuts_update_count): modify + in such a way that it can also negatively update the count on + failures, + (get_file_info_finished): handle failures, update save folder + combo box on success, + (shortcuts_insert_path): change the boolean return value into a + void one, also refilter the model and update the save folder combo + box for the non-asynchronous case, + (shortcuts_append_home), (shortcuts_append_desktop), + (shortcuts_add_volumes), (shortcuts_add_current_folder), + (add_shortcuts_get_info_cb): adapt to shortcuts_insert_path() updates. + +2005-12-19 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkpathbar.[ch]: add handle fields to ButtonData and + GtkPathBar; do correct handle bookkeeping. + + * gtk/gtkfilesystemunix.c (load_folder), + (gtk_file_system_unix_get_folder), + (gtk_file_folder_unix_is_finished_loading): add is_finished_loading + field to GtkFileFolderUnix, which is set to true once we are + really finished with loading (previous assumption that we are + always finshed loading is not true anymore). + + * gtk/gtkfilesystemmodel.c (got_root_folder_cb): if the folder is + finished loading, list the children and update the root level. + + * gtk/gtkfilechooserdefault.c (update_current_folder_get_info_cb): + handle cancellation. + +2005-12-16 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkfilesystemunix.c: always call the callback, even when + cancelled; ref handles passed to the callback queue functions; + don't set cancelled to TRUE in _cancel_operation(), since operations + in this backend are always completed, + (get_special_icon_name): don't strdup the value of + get_icon_name_for_directory() again. + + * gtk/gtkfilechooserbutton.c: adapt to new cancellation policy; + reference all objects which are passed as callback arguments; in the + callback check if the handles match. + + * gtk/gtkfilechooserentry.c: likewise. + + * gtk/gtkfilechooserdefault.c: likewise. Also changed the shortcut + loading code to be more like the code in GtkFileChooserButton, where + we store all handles in the model and have model_row_free_data + cancel any pending operations, + (shortcuts_model_create): copy the error. + + * gtk/gtkfilechooserprivate.h (struct _GtkFileChooserDefault): remove + loading_volumes and loading_bookmarks fields. + + * gtk/gtkfilesystem.c (gtk_file_info_free): free icon_name here... + +2005-12-13 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkfilechooserdefault.c (edited_idle_create_folder_cb): fix + thinko. + + * gtk/gtkfilesystemunix.c (dispatch_create_folder_callback), + (queue_create_folder_callback): need to copy/free the path, + (gtk_file_system_unix_create_folder): put the "reget folder" hack + back in, though it's working different now. + +2005-12-13 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkfilechooserbutton.c (gtk_file_chooser_button_finalize), + (dnd_select_folder_get_info_cb), (gtk_file_chooser_drag_data_received), + (change_icon_theme_get_info_cb), (change_icon_theme), + (model_add_special_get_info_cb), (model_add_special), + (update_label_get_info_cb), (update_label_and_image): cancel existing + operations, if any; added apprioriate fields to + GtkFileChooserButtonPrivate. + +2005-12-13 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkfilechooserentry.c (gtk_file_chooser_entry_finalize): if + there's a folder loading, cancel the operation, + (load_directory_get_folder_callback): set the loading folder handle + to NULL, + (load_directory_callback): cancel any currently loading folders + before starting a new get folder operation. + +2005-12-13 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkfilechooserdefault.c (shortcuts_insert_path): don't overwrite + data if it's already set (for example by the "is volume" case). + +2005-12-13 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkfilechooserbutton.c (set_info_get_info_cb), + (set_info_for_path_at_iter): store a row reference in the temporary + data structure and not an iter, + (model_add_special), (model_update_current_folder), + (gtk_file_chooser_button_add_shorcut_folder): remove unused pixbuf + variable. + +2005-12-13 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkfilechooserdefault.c (get_file_info_finished), + (shortcuts_insert_path): replace gtk_file_system_render_icon() call + with gtk_file_system_get_file_info(), + (gtk_file_chooser_default_add_shortcut_folder), + (gtk_file_chooser_default_remove_shortcut_folder): handle shortcuts + which are still loading. + + * gtk/gtkfilechooserprivate.h: add shortcuts_loading field to + struct _GtkFileChooserDefault. + + * gtk/gtkfilechooserbutton.c (set_info_get_info_cb), + (set_info_for_path_at_iter), (model_free_row_data): keep handle + and path together; now supports adding/removing shortcuts + which are still loading. + +2005-12-13 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkfilesystem.c: make the cancelled field an GObject property. + +2005-12-13 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkfilesystem.h: make the GError argument in the callbacks + const. + + * gtk/gtkfilechooserbutton.c: update callbacks, + * gtk/gtkfilechooserentry.c: likewise, + * gtk/gtkfilechooserdefault.c: likewise, + * gtk/gtkfilesystemmodel.c: likewise, + * gtk/gtkpathbar.c: likewise. + + * gtk/gtkfilechooserdefault.c (edited_idle_create_folder_cb): copy + the error which will be passed to error_creating_folder_dialog(), + (action_create_folder_cb): likewise, + (file_list_drag_data_received_get_info_cb): add forgotten GError + declaration. + +2005-12-13 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkpathbar.c (get_button_image), (set_button_image), + (set_button_image_get_info_cb), + (gtk_path_bar_update_button_appearance): update to new icon + rendering call. + +2005-12-09 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkfilechooserdefault.c (file_list_drag_data_received), + (gtk_file_chooser_default_add_shortcut_folder), + (shortcuts_activate_get_info_cb): replace synchronous check_is_folder + calls with an async gtk_file_system_get_info() solution. + +2005-12-09 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkfilesystem.c (icon_cache_element_free), (icon_theme_changed), + (get_cached_icon), (gtk_file_info_render_icon): implement pixbuf + caching as found in the file system backends. + +2005-12-09 Kristian Rietveld <kris@imendio.com> + + * gtk/gtk.symbols: updated. + + * gtk/gtkfilesystem.[ch] (struct GtkFileInfo): added icon_name field, + (enum GtkFileInfoType): added GTK_FILE_INFO_ICON, + (gtk_file_info_set_icon_name): new function, + (gtk_file_info_render_icon): new function, + (gtk_file_system_render_icon): removed. + + * gtk/gtkfilesystemunix.c (gtk_file_system_unix_render_icon): removed, + (create_file_info): fill icon_name field if required, + (get_*_icon): modified to suit create_file_info() better. + + * gtk/gtkfilechooserbutton.c: modified to use + gtk_file_info_render_icon() instead of gtk_file_system_render_icon(). + + * gtk/gtkfilechooserdefault.c: likewise. + +2005-12-06 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkfilechooserdefault.c (get_file_info_finished), + (update_current_folder_get_info_cb): fix mem leaks. + + * gtk/gtkfilesystemunix.c (gtk_file_system_unix_get_info): ditto. + + * gtk/gtkpathbar.c (gtk_path_bar_set_path_finish): ditto. + +2005-12-06 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkfilechooserbutton.c (dnd_select_folder_get_info_cb), + (gtk_file_chooser_button_drag_data_received): make asynchronous, + (update_label_and_image): remove unused variable. + + * gtk/gtkfilechooserdefault.c + (gtk_file_chooser_default_update_current_folder): split in two + functions, so we can have the is_folder check back. + * gtk/gtkfilechooserprivate.h: add update_current_folder_handle + field. + +2005-12-06 Kristian Rietveld <kris@imendio.com> + + * gtk/gtkfilechooserdefault.c (show_and_select_paths): fixed a typo. + +2005-12-05 Federico Mena Quintero <federico@ximian.com> + + (merge from HEAD) + + * gtk/gtkfilechooserdefault.c (trap_activate_cb): "event->state & + modifiers", not "event->state && modifiers". Patch by Sadrul + Habib Chowdhury <imadil@gmail.com>. Fixes bug #323073. + +2005-12-06 Kristian Rietveld <kris@imendio.com> + + Beginnings of an asynchronous file chooser. + + * gtk/gtkfilechooserbutton.c: display name and the is folder property + are now asynchronously set using set_info_for_at_path_iter(), the + is folder property is now also stored in the tree model. + + * gtk/gtkfilechooserdefault.c: lots of changes to the shortcuts + model code to make it operate asynchronously, check_is_folder() has + been "disabled" for now, all other synchronous calls were + replaced with asychronous ones. + + * gtk/gtkfilechooserentry.c: update call to + gtk_file_system_get_folder(). + + * gtk/gtkfilechooserprivate.h: added two fields. + + * gtk/gtkfilesystem.[ch]: for about 85% changed to the changes + outlined in the proposal discussed on gtk-devel-list. + + * gtk/gtkfilesystemmodel.[ch]: updated all asynchronous calls, + _gtk_file_system_model_path_do() basically had to be rewritten + (and I still need to finish that). + + * gtk/gtkfilesystemunix.c: changed to be compatible with the new + GtkFileSystem interface. + + * gtk/gtkpathbar.c (button_clicked_cb): block/unblock the + button_clicked_cb callback around the call to + gtk_toggle_button_set_active(), avoids button_clicked_cb getting + called twice. + (_gtk_path_bar_set_path): refactored to be asynchronous. |