summaryrefslogtreecommitdiff
path: root/ChangeLog.gtk-async-file-chooser
diff options
context:
space:
mode:
Diffstat (limited to 'ChangeLog.gtk-async-file-chooser')
-rw-r--r--ChangeLog.gtk-async-file-chooser514
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.